From aba696df7999ca09dab2693e55b9815c622f4755 Mon Sep 17 00:00:00 2001 From: buenosairesam Date: Mon, 14 Sep 2026 16:00:27 -0300 Subject: [PATCH] feature matching for clean extraction --- Makefile | 7 +- ctrl/theme.sh | 58 ++ .../shunts/mercadopago/templates/index.html | 633 +++++++----- soleprint/artery/veins/jira/main.py | 22 + soleprint/artery/veins/jira/ui/index.html | 496 ++++++++++ soleprint/common/theme/bake.py | 523 +++++++++- soleprint/common/theme/parts/README.md | 206 ++++ soleprint/common/theme/parts/base.css | 105 ++ soleprint/common/theme/parts/example.html | 909 ++++++++++++++++++ soleprint/common/theme/parts/feed.js | 173 ++++ soleprint/common/theme/parts/maximize.css | 60 ++ soleprint/common/theme/parts/maximize.js | 78 ++ soleprint/common/theme/parts/panel.css | 112 +++ soleprint/common/theme/parts/params.css | 129 +++ soleprint/common/theme/parts/params.js | 133 +++ soleprint/common/theme/parts/split.css | 95 ++ soleprint/common/theme/parts/split.js | 112 +++ .../tools/histgen/templates/index.html | 22 +- 18 files changed, 3567 insertions(+), 306 deletions(-) create mode 100755 ctrl/theme.sh create mode 100644 soleprint/artery/veins/jira/ui/index.html create mode 100644 soleprint/common/theme/parts/README.md create mode 100644 soleprint/common/theme/parts/base.css create mode 100644 soleprint/common/theme/parts/example.html create mode 100644 soleprint/common/theme/parts/feed.js create mode 100644 soleprint/common/theme/parts/maximize.css create mode 100644 soleprint/common/theme/parts/maximize.js create mode 100644 soleprint/common/theme/parts/panel.css create mode 100644 soleprint/common/theme/parts/params.css create mode 100644 soleprint/common/theme/parts/params.js create mode 100644 soleprint/common/theme/parts/split.css create mode 100644 soleprint/common/theme/parts/split.js diff --git a/Makefile b/Makefile index 1967f9a..4f72c58 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ $(eval $(ARGS):;@:) endif .DEFAULT_GOAL := help -.PHONY: help build start stop dist docs cluster deploy component +.PHONY: help build start stop dist theme docs cluster deploy component help: ## list targets @grep -hE '^[a-z]+:.*?##' $(MAKEFILE_LIST) | sed 's/:.*##/\t/' | expand -t16 @@ -61,6 +61,11 @@ stop: ## stop a running room [] dist: ## compile the plexus UIs to single files [] bash ctrl/dist.sh $(or $(ARGS),$(ROOM)) +# ── theme ────────────────────────────────────────────────────────────────── + +theme: ## ad-hoc pages: scaffold, add parts, bake [new|parts|bake|check|export] + bash ctrl/theme.sh $(or $(ARGS),bake) + # ── docs ─────────────────────────────────────────────────────────────────── docs: ## documentation [serve [port]|graphs [theme]] (default serve) diff --git a/ctrl/theme.sh b/ctrl/theme.sh new file mode 100755 index 0000000..261acc3 --- /dev/null +++ b/ctrl/theme.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# Bake the theme and its parts into the pages that use them. +# +# Usage: +# ./ctrl/theme.sh # bake — rewrite every generated block +# ./ctrl/theme.sh check # fail if any page is stale; changes nothing +# ./ctrl/theme.sh new [title] # a scaffold page to start from +# ./ctrl/theme.sh parts # what can be added, and the markup that adds it +# ./ctrl/theme.sh export [name...] # the contract for a subset, as one doc +# +# `export` is for handing a vetted LLM what it needs to write an ad-hoc page — +# the chosen parts, their markup, and the tokens resolved to literal values, so +# the document stands alone. Naming parts is the point: hand over everything and +# you get back a page built from Vue components that cannot run standalone. +# +# ./ctrl/theme.sh export panel split > /tmp/contract.md +# +# Call the script directly when piping; `make` echoes its recipe to stdout. +# For whole-repo context this is the wrong tool — station/tools/distill already +# flattens a tree to one budgeted document. +# +# A page that says `background: var(--bg)` and never gets `--bg` is UNSTYLED, +# not merely unbranded — the declaration is invalid at computed-value time. That +# is why every page carries a baked default, and why `check` is worth running. +# +# This exists because bake.py was reachable by no command at all: not from the +# Makefile, not from ctrl/, not from build.py. A drift check nobody runs is a +# drift check that reports nothing, and the evidence was already on disk — +# histgen's page linked /theme.css for months, was missing from the old +# hardcoded page list, and so was never baked once. +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="$(dirname "$SCRIPT_DIR")" +cd "$ROOT_DIR/soleprint" + +PYTHON="${PYTHON:-python3}" + +case "${1:-bake}" in + bake) exec "$PYTHON" common/theme/bake.py ;; + check) exec "$PYTHON" common/theme/bake.py --check ;; + parts) + exec "$PYTHON" common/theme/bake.py --parts + ;; + new) + shift + exec "$PYTHON" common/theme/bake.py --new "$@" + ;; + export) + shift + exec "$PYTHON" common/theme/bake.py --export "$@" + ;; + *) + echo "Unknown: $1" >&2 + echo "Usage: ./ctrl/theme.sh [new [title]|parts|bake|check|export [name...]]" >&2 + exit 1 + ;; +esac diff --git a/soleprint/artery/shunts/mercadopago/templates/index.html b/soleprint/artery/shunts/mercadopago/templates/index.html index e918d37..4506f89 100755 --- a/soleprint/artery/shunts/mercadopago/templates/index.html +++ b/soleprint/artery/shunts/mercadopago/templates/index.html @@ -1,296 +1,411 @@ - + + MercadoPago API (MOCK) - Configuration + + + + + + + + -
-
-

MercadoPago MOCK

-
Configure mock payment responses and behavior
-
- - -
-
Default Payment Status
-

Choose what status new payments should return:

-
-
-
Approved
-
Payment successful
-
-
-
Rejected
-
Payment failed
-
-
-
Pending
-
Awaiting confirmation
-
-
-
In Process
-
Being processed
-
-
+
+
+

MercadoPago mock

+
Configure mock payment responses and behaviour
+
+ +
+
+ Default payment status + +
+
+

What status new payments should return.

+
+
- -
-
Configure Endpoint Responses
-
-
-
- POST - /checkout/preferences -
-
Create payment preference (Checkout Pro)
-
-
-
- POST - /v1/payments -
-
Create payment (Checkout API)
-
-
-
- GET - /v1/payments/{id} -
-
Get payment details
-
-
-
- POST - /oauth/token -
-
OAuth token exchange/refresh
-
-
+
+
+ Endpoint responses + +
+
+
+
- -