fix(client): TagExtractor tolerates paren-less moves + scrubs misformatted move tags (live-review LF1/LF2)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,8 +7,9 @@ extends RefCounted
|
||||
|
||||
static var _fact_re: RegEx = RegEx.create_from_string("\\[FACT:\\s*(.*?)\\]")
|
||||
static var _dispo_re: RegEx = RegEx.create_from_string("\\[ADJUST_DISPOSITION:\\s*([+-]?\\d+)\\]")
|
||||
static var _move_re: RegEx = RegEx.create_from_string("\\[MOVE:\\s*(\\w+)\\(([^)]*)\\)\\]")
|
||||
static var _move_re: RegEx = RegEx.create_from_string("\\[MOVE:\\s*(\\w+)(?:\\(([^)]*)\\))?\\]")
|
||||
static var _any_re: RegEx = RegEx.create_from_string("\\[[A-Z_]+:[^\\]]*\\]")
|
||||
static var _bare_move_re: RegEx = RegEx.create_from_string("\\[[a-z_]+\\([^\\]]*\\)\\]")
|
||||
|
||||
|
||||
static func extract(prose: String) -> Dictionary:
|
||||
@@ -30,6 +31,7 @@ static func extract(prose: String) -> Dictionary:
|
||||
moves.append({"name": m.get_string(1), "args": args})
|
||||
|
||||
var clean := _any_re.sub(prose, "", true)
|
||||
clean = _bare_move_re.sub(clean, "", true)
|
||||
# Collapse whitespace left where inline tags were removed.
|
||||
while clean.contains(" "):
|
||||
clean = clean.replace(" ", " ")
|
||||
|
||||
Reference in New Issue
Block a user