docs: AG Native bundle reverse engineering analysis — plannerResponse/Whi renderer structure, V8 cache fix, known-issues update
This commit is contained in:
63
scratch_bundle_deep.py
Normal file
63
scratch_bundle_deep.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""Find exact data-testid values and step-index context in AG bundle."""
|
||||
import re, 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()
|
||||
|
||||
# Find all data-testid literal values
|
||||
print("=== data-testid values ===")
|
||||
for m in re.finditer(r'"data-testid"\s*[,:]\s*["`]([^"`]+)["`]', content):
|
||||
print(f" {m.group(1)}")
|
||||
# Also try template literal pattern
|
||||
for m in re.finditer(r"'data-testid'\s*[,:]\s*'([^']+)'", content):
|
||||
print(f" {m.group(1)}")
|
||||
# JSX pattern: data-testid="xxx" or data-testid={xxx}
|
||||
for m in re.finditer(r'data-testid[=:]["\'`]([^"\'`]{2,60})["\'`]', content):
|
||||
print(f" {m.group(1)}")
|
||||
|
||||
# Find data-step-index context
|
||||
print("\n=== data-step-index usage context ===")
|
||||
for m in re.finditer(r'data-step-index', content):
|
||||
start = max(0, m.start() - 150)
|
||||
end = min(len(content), m.end() + 150)
|
||||
ctx = content[start:end].replace('\n', ' ')
|
||||
print(f" ...{ctx}...")
|
||||
|
||||
# Find data-status context
|
||||
print("\n=== data-status usage context ===")
|
||||
for m in re.finditer(r'"data-status"', content):
|
||||
start = max(0, m.start() - 100)
|
||||
end = min(len(content), m.end() + 100)
|
||||
ctx = content[start:end].replace('\n', ' ')
|
||||
print(f" ...{ctx}...")
|
||||
|
||||
# Find "Running" button context - what container wraps it?
|
||||
print("\n=== 'Running' + 'command' nearby JSX context ===")
|
||||
for m in re.finditer(r'Running.{0,3}(?:\$\{|`|\+).{0,30}command', content):
|
||||
start = max(0, m.start() - 200)
|
||||
end = min(len(content), m.end() + 200)
|
||||
ctx = content[start:end].replace('\n', ' ')
|
||||
print(f" @{m.start()}: ...{ctx[:400]}...")
|
||||
|
||||
# Find "Allow" button context
|
||||
print("\n=== 'Allow' button context ===")
|
||||
for m in re.finditer(r'["\'`]Allow["\'`]', content):
|
||||
start = max(0, m.start() - 200)
|
||||
end = min(len(content), m.end() + 200)
|
||||
ctx = content[start:end].replace('\n', ' ')
|
||||
print(f" @{m.start()}: ...{ctx[:400]}...")
|
||||
|
||||
# Find markdown rendering context
|
||||
print("\n=== Markdown rendering context ===")
|
||||
for m in re.finditer(r'(?:markdown|prose|rehype|remark)', content[:500000], re.IGNORECASE):
|
||||
start = max(0, m.start() - 60)
|
||||
end = min(len(content), m.end() + 60)
|
||||
ctx = content[start:end].replace('\n', ' ')
|
||||
if 'markdown' in ctx.lower() or 'prose' in ctx.lower():
|
||||
print(f" @{m.start()}: ...{ctx}...")
|
||||
|
||||
# Find text-ide pattern (old Cascade class naming)
|
||||
print("\n=== text-ide patterns ===")
|
||||
for m in re.finditer(r'text-ide-[a-z-]+', content):
|
||||
print(f" {m.group(0)}")
|
||||
Reference in New Issue
Block a user