Skip to main content

Scope-based HTML/CSS/DOM patch utilities and LLM patch helpers

Project description

repatch

Reusable HTML/CSS/DOM patch utilities extracted from Nexu Cinema: marked-element context, scope-restricted CSS, spatial deletes, LLM UI patch prompts, and local function DOM patches.

Also includes the original RepatchService for scope-based LLM fragment suggestions.

Install

pip install -e .
# Nexu: repatch @ file:///path/to/repatch in pyproject.toml

Public API (repatch)

Module Key symbols
marked_context build_marked_element_context, resolve_marked_llm_context, restrict_scope_css_to_marks, marked_css_selectors, has_ui_marks
scope inject_scope_style, strip_scope_style, normalize_focus_scope, should_block_full_html_iterate, scoped_html_fragment
ui_patch build_ui_patch_prompt, parse_ui_patch_response, apply_ui_patch_options, supports_llm_patch_scope
spatial apply_spatial_deletes_to_html
dom_patch build_function_option_patches, build_function_patch_context, supports_function_patch
css split_css_rules, validate_css_safety
project_ir build_project_ir, summarize_project_ir
service RepatchService, PatchSuggestion

Example: marked context + UI patch prompt

from repatch import build_marked_element_context
from repatch.ui_patch import build_ui_patch_prompt

ctx = build_marked_element_context(html, keep_ids=["7"], delete_ids=["tan"], focus_scope="colors", project_kind="calculator")
prompt = build_ui_patch_prompt(html, focus_scope="colors", project_kind="calculator", option_variants=variants, context_fragment=ctx)

Original RepatchService (v0)

from repatch import RepatchService

service = RepatchService(model="gpt-4o-mini")

fragment = """
<section>
  <h1>Pracownia Malort Gdynia – przestrzeń dla kreatywności Twojego dziecka</h1>
  <p>Zapraszamy do wyjątkowego miejsca...</p>

## AI Cost Tracking

![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.2.2-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
![AI Cost](https://img.shields.io/badge/AI%20Cost-$0.75-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-3.0h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)

- 🤖 **LLM usage:** $0.7487 (6 commits)
- 👤 **Human dev:** ~$300 (3.0h @ $100/h, 30min dedup)

Generated on 2026-06-01 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)

---

  <button>Zapisz dziecko</button>
</section>
"""

suggestions = service.generate_patch_suggestions(
    fragment=fragment,
    scopes=["display", "colors"],
)

for idx, item in enumerate(suggestions, start=1):
    print(f"Wariant {idx}:")
    print("KEEP:", item.keep)
    print("CHANGE:", item.change)
    print(item.patched_fragment)

License

Licensed under Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repatch-0.2.2.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repatch-0.2.2-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file repatch-0.2.2.tar.gz.

File metadata

  • Download URL: repatch-0.2.2.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for repatch-0.2.2.tar.gz
Algorithm Hash digest
SHA256 964b6dcd21d4b90e85f0717b7c0396db7e07f382b3fdb08f9ae1dc21ab933e95
MD5 4bd600f9f252cc35d1f353649cd4c09a
BLAKE2b-256 654b04bdaa6fe625f9f59d512603cda541128bf12c0d9795fc2106674260bb43

See more details on using hashes here.

File details

Details for the file repatch-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: repatch-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for repatch-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d90032ecadb5d4177fb5ba0a2476e3e465b96dbc955216ca5b3b960b0e10115c
MD5 2aeef23bd2d9ce5ae15f3065300b64e3
BLAKE2b-256 867e7e1b41d15fa343e4d5e4fbaf044a4eca3abad5733e4be1b6e9a2d87f6882

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page