Merge recovered tool and review source repairs into private synthesis

Keep runtime terminal custody and UI model history alongside the source-complete tool review path. Generated inventories derive from this combined tree.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
This commit is contained in:
Anton 2026-09-11 03:13:56 +03:00
commit 0ce757d15b
63 changed files with 1930 additions and 190 deletions

View file

@ -50,7 +50,9 @@ def main(argv: list[str]) -> int:
try:
items = json.loads(raw)
except json.JSONDecodeError:
items = extract_json_array(raw)
items = extract_json_array(raw, validate_fn=lambda candidate: not normalize_scope_items(candidate)[1])
if items is None:
items = extract_json_array(raw)
if items is None:
print("invalid: no JSON array found in the receipt "
"(bare, fenced, or embedded)", file=sys.stderr)