File size: 2,222 Bytes
494c89b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""Find ALL machineId usages in Kiro extension"""
import os
import re

ext_path = os.path.join(os.environ['LOCALAPPDATA'], 'Programs', 'Kiro', 'resources', 'app', 'extensions', 'kiro.kiro-agent', 'dist', 'extension.js')

with open(ext_path, 'r', encoding='utf-8') as f:
    content = f.read()

print(f"File size: {len(content):,} bytes\n")

# Find all machineId related patterns
patterns = [
    (r'getMachineId\s*\(', 'getMachineId() calls'),
    (r'getMachineId2\s*\(', 'getMachineId2() calls'),
    (r'machineIdSync', 'machineIdSync (node-machine-id)'),
    (r'machineId\s*:', 'machineId: property'),
    (r'machineId\s*=', 'machineId = assignment'),
    (r'MACHINE_ID', 'MACHINE_ID constant'),
    (r'machine-id', 'machine-id string'),
    (r'node-machine-id', 'node-machine-id import'),
]

for pattern, name in patterns:
    matches = list(re.finditer(pattern, content, re.IGNORECASE))
    print(f"\n=== {name}: {len(matches)} matches ===")
    
    for m in matches[:10]:  # First 10
        idx = m.start()
        start = max(0, idx - 80)
        end = min(len(content), idx + 120)
        context = content[start:end].replace('\n', ' ')
        print(f"  [{idx}] ...{context}...")

# Check if our patches are present
print("\n\n" + "="*60)
print("=== PATCH STATUS ===")
print("="*60)

patch_markers = [
    'KIRO_BATCH_LOGIN_PATCH',
    'KIRO_AUTO_SWITCH_PATCH', 
    'KIRO_TOKEN_CACHE_PATCH',
    'kiro-manager-wb/machine-id.txt',
]

for marker in patch_markers:
    count = content.count(marker)
    status = "✓ PATCHED" if count > 0 else "✗ NOT PATCHED"
    print(f"  {marker}: {status} ({count} occurrences)")

# Find functions that use machineId
print("\n\n=== Functions using machineId ===")
# Look for function definitions containing machineId
func_pattern = r'(function\s+\w+|async\s+\w+|\w+\s*=\s*(?:async\s+)?function|\w+\s*\([^)]*\)\s*\{)[^}]{0,500}machineId'
func_matches = list(re.finditer(func_pattern, content))
print(f"Found {len(func_matches)} functions with machineId")

seen_funcs = set()
for m in func_matches[:20]:
    # Extract function name
    func_text = m.group(0)[:100]
    if func_text not in seen_funcs:
        seen_funcs.add(func_text)
        print(f"  - {func_text[:80]}...")