File size: 3,909 Bytes
			
			| 53e6ab1 | 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | def apply_search_replace_changes(original_content: str, changes_text: str) -> str:
    """Apply search/replace changes to content (HTML, Python, etc.)"""
    if not changes_text.strip():
        return original_content
    blocks=[]
    current_block=""
    lines=changes_text.split('\n')
    for line in lines:
        if line.strip()==SEARCH_START:
            if current_block.strip(): blocks.append(current_block.strip())
            current_block=line+"\n"
        elif line.strip()==REPLACE_END:
            current_block+=line+"\n"
            blocks.append(current_block.strip())
            current_block=""
        else:
            current_block+=line+"\n"
    if current_block.strip(): blocks.append(current_block.strip())
    modified_content=original_content
    for block in blocks:
        lines=block.split('\n')
        search_lines=[]; replace_lines=[]
        in_search=False; in_replace=False
        for ln in lines:
            if ln.strip()==SEARCH_START:
                in_search=True; in_replace=False
            elif ln.strip()==DIVIDER:
                in_search=False; in_replace=True
            elif ln.strip()==REPLACE_END:
                in_replace=False
            elif in_search:
                search_lines.append(ln)
            elif in_replace:
                replace_lines.append(ln)
        if search_lines:
            search_text='\n'.join(search_lines).strip()
            replace_text='\n'.join(replace_lines).strip()
            if search_text in modified_content:
                modified_content=modified_content.replace(search_text,replace_text)
            else:
                print(f"Warning: Search text not found in content: {search_text[:100]}...")
    return modified_content
def apply_transformers_js_search_replace_changes(original_formatted_content: str, changes_text: str) -> str:
    """Apply search/replace changes to transformers.js formatted content (three files)"""
    if not changes_text.strip():
        return original_formatted_content
    files=parse_transformers_js_output(original_formatted_content)
    blocks=[]; current_block=""
    lines=changes_text.split('\n')
    for line in lines:
        if line.strip()==SEARCH_START:
            if current_block.strip(): blocks.append(current_block.strip())
            current_block=line+"\n"
        elif line.strip()==REPLACE_END:
            current_block+=line+"\n"
            blocks.append(current_block.strip())
            current_block=""
        else:
            current_block+=line+"\n"
    if current_block.strip(): blocks.append(current_block.strip())
    for block in blocks:
        lines=block.split('\n')
        search_lines=[]; replace_lines=[]
        in_search=False; in_replace=False; target_file=None
        for ln in lines:
            if ln.strip()==SEARCH_START:
                in_search=True; in_replace=False
            elif ln.strip()==DIVIDER:
                in_search=False; in_replace=True
            elif ln.strip()==REPLACE_END:
                in_replace=False
            elif in_search:
                search_lines.append(ln)
            elif in_replace:
                replace_lines.append(ln)
        if search_lines:
            search_text='\n'.join(search_lines).strip()
            replace_text='\n'.join(replace_lines).strip()
            if search_text in files['index.html']:
                target_file='index.html'
            elif search_text in files['index.js']:
                target_file='index.js'
            elif search_text in files['style.css']:
                target_file='style.css'
            if target_file and search_text in files[target_file]:
                files[target_file]=files[target_file].replace(search_text,replace_text)
            else:
                print(f"Warning: Search text not found in any transformers.js file: {search_text[:100]}...")
    return format_transformers_js_output(files)
 | 
