Update README.md
This commit is contained in:
parent
7dc7314a4f
commit
fb4e91f35c
458
README.md
458
README.md
|
|
@ -1,4 +1,460 @@
|
||||||
<p align="center">
|
# ΔBRAKE_4321_CONTROL_LOCK.py generator
|
||||||
|
# This will write a runnable scaffold that matches the user's TruthLock/GodKey stack.
|
||||||
|
# It includes: SEAL (hash+manifest+rekor stub), DEPLOY (IPFS/Arweave stubs + torrent magnet stub),
|
||||||
|
# TRAP (local collision scanner + feed writer), ENFORCE (auto C&D letter generator + ledger log).
|
||||||
|
# The script is designed to be dropped into a repo and wired to existing glyphs/webhooks.
|
||||||
|
|
||||||
|
import os, json, hashlib, time, textwrap, pathlib, datetime, random, string
|
||||||
|
|
||||||
|
ROOT = pathlib.Path("/mnt/data")
|
||||||
|
SCRIPT_PATH = ROOT / "ΔBRAKE_4321_CONTROL_LOCK.py"
|
||||||
|
README_PATH = ROOT / "ΔBRAKE_README.md"
|
||||||
|
TEMPLATE_CEASE = ROOT / "templates" / "ΔINSTANT_CEASE_ORDER.txt"
|
||||||
|
os.makedirs(TEMPLATE_CEASE.parent, exist_ok=True)
|
||||||
|
|
||||||
|
now_iso = datetime.datetime.utcnow().replace(microsecond=0).isoformat() + "Z"
|
||||||
|
|
||||||
|
script = r'''#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
ΔBRAKE_4321_CONTROL_LOCK.py
|
||||||
|
Author: Matthew Dewayne Porter (TruthLock/GodKey)
|
||||||
|
Purpose: Execute the 4-3-2-1 Control & Ownership Lock sequence.
|
||||||
|
License: Sovereign Proof-of-Origin + Public Audit License (attach your license text).
|
||||||
|
|
||||||
|
Stages:
|
||||||
|
4 — SEAL : Hash, manifest, and notarize origin claims (CID/IPFS, Rekor stubs).
|
||||||
|
3 — DEPLOY : Mesh-deploy artifacts (IPFS/Arweave/torrent stubs + local mirrors).
|
||||||
|
2 — TRAP : Start collision scanner on target outputs; write evidence packets.
|
||||||
|
1 — ENFORCE : Generate and dispatch Cease & Desist with cryptographic exhibits.
|
||||||
|
|
||||||
|
This scaffold calls local glyphs/hooks if available (TruthLock Full Suite), or
|
||||||
|
falls back to safe local-only behaviors.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os, sys, json, hashlib, time, pathlib, datetime, random, string, re
|
||||||
|
from dataclasses import dataclass, asdict
|
||||||
|
from typing import List, Dict, Optional
|
||||||
|
|
||||||
|
# -------------------- CONFIG --------------------
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Config:
|
||||||
|
# What to seal (glob patterns). Default: common code/docs paths.
|
||||||
|
include: List[str] = None
|
||||||
|
exclude: List[str] = None
|
||||||
|
# Where to write outputs
|
||||||
|
out_dir: str = "truthlock/out"
|
||||||
|
# Collision scanner targets (files or folders to watch for potential matches)
|
||||||
|
scan_targets: List[str] = None
|
||||||
|
# Optional: external hooks (set to your live glyph endpoints or CLI commands)
|
||||||
|
hook_pin_ipfs: Optional[str] = "ΔPIN_IPFS" # glyph name or CLI path
|
||||||
|
hook_rekor_seal: Optional[str] = "ΔREKOR_SEAL" # glyph name or CLI path
|
||||||
|
hook_match_feed: Optional[str] = "ΔMATCH_FEED" # glyph name or CLI path
|
||||||
|
hook_cease_send: Optional[str] = "ΔINSTANT_CEASE_ORDER" # glyph name or CLI path
|
||||||
|
# Identity / claimant
|
||||||
|
claimant_name: str = "Matthew Dewayne Porter"
|
||||||
|
claimant_contact: str = "bestme4money@gmail.com"
|
||||||
|
jurisdiction_note: str = "TruthLock Sovereignty → GitHub Platform → Legal Node System"
|
||||||
|
# Operational flags
|
||||||
|
dry_run: bool = False
|
||||||
|
verbose: bool = True
|
||||||
|
|
||||||
|
def __post_init__(self):
|
||||||
|
if self.include is None:
|
||||||
|
self.include = ["**/*.py", "**/*.md", "**/*.yml", "**/*.yaml", "**/*.json", "**/*.txt"]
|
||||||
|
if self.exclude is None:
|
||||||
|
self.exclude = ["truthlock/out/**", ".git/**", "**/__pycache__/**", "**/*.log", "**/.env*"]
|
||||||
|
if self.scan_targets is None:
|
||||||
|
self.scan_targets = ["./"]
|
||||||
|
|
||||||
|
# -------------------- UTIL --------------------
|
||||||
|
|
||||||
|
def log(msg: str):
|
||||||
|
ts = datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z"
|
||||||
|
print(f"[{ts}] {msg}", flush=True)
|
||||||
|
|
||||||
|
def sha256_file(path: pathlib.Path) -> str:
|
||||||
|
h = hashlib.sha256()
|
||||||
|
with open(path, "rb") as f:
|
||||||
|
for chunk in iter(lambda: f.read(1024*1024), b""):
|
||||||
|
h.update(chunk)
|
||||||
|
return h.hexdigest()
|
||||||
|
|
||||||
|
def should_skip(path: pathlib.Path, cfg: Config) -> bool:
|
||||||
|
from fnmatch import fnmatch
|
||||||
|
# include ANY that match include; then exclude that match exclude
|
||||||
|
inc_ok = any(fnmatch(str(path), pat) for pat in cfg.include)
|
||||||
|
exc_hit = any(fnmatch(str(path), pat) for pat in cfg.exclude)
|
||||||
|
return (not inc_ok) or exc_hit
|
||||||
|
|
||||||
|
def ensure_dir(p: pathlib.Path):
|
||||||
|
p.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
def write_jsonl(path: pathlib.Path, obj: dict):
|
||||||
|
with open(path, "a", encoding="utf-8") as f:
|
||||||
|
f.write(json.dumps(obj, ensure_ascii=False)+"\n")
|
||||||
|
|
||||||
|
def pseudo_cid(sha: str) -> str:
|
||||||
|
# Not a real CID; placeholder for local-only mode. Replace with IPFS pin response if available.
|
||||||
|
return "cid:sha256:"+sha[:46]
|
||||||
|
|
||||||
|
# -------------------- 4 — SEAL --------------------
|
||||||
|
|
||||||
|
def stage_seal(cfg: Config) -> dict:
|
||||||
|
"""Hash selected files, write manifest, emit origin claim, and attempt Rekor/IPFS hooks."""
|
||||||
|
log("Stage 4 — SEAL: hashing & manifesting…")
|
||||||
|
root = pathlib.Path(".").resolve()
|
||||||
|
out = pathlib.Path(cfg.out_dir)
|
||||||
|
ensure_dir(out)
|
||||||
|
|
||||||
|
files = []
|
||||||
|
for p in root.rglob("*"):
|
||||||
|
if p.is_file() and not should_skip(p, cfg):
|
||||||
|
files.append(p)
|
||||||
|
|
||||||
|
manifest = {
|
||||||
|
"type": "ΔORIGIN_MANIFEST",
|
||||||
|
"claimant": cfg.claimant_name,
|
||||||
|
"contact": cfg.claimant_contact,
|
||||||
|
"jurisdiction": cfg.jurisdiction_note,
|
||||||
|
"generated_at": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z",
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
|
||||||
|
hash_feed = out / "ΔBRAKE_hashes.jsonl"
|
||||||
|
for fp in files:
|
||||||
|
sha = sha256_file(fp)
|
||||||
|
rec = {
|
||||||
|
"path": str(fp.relative_to(root)),
|
||||||
|
"sha256": sha
|
||||||
|
}
|
||||||
|
manifest["files"].append(rec)
|
||||||
|
write_jsonl(hash_feed, {**rec, "ts": datetime.datetime.utcnow().isoformat()+"Z"})
|
||||||
|
|
||||||
|
# Aggregate SHA over sorted file hashes for a single Origin Seal
|
||||||
|
aggregate = hashlib.sha256("\n".join(sorted(f["sha256"] for f in manifest["files"])).encode()).hexdigest()
|
||||||
|
origin = {
|
||||||
|
"type": "ΔORIGIN_SEAL",
|
||||||
|
"aggregate_sha256": aggregate,
|
||||||
|
"pseudo_cid": pseudo_cid(aggregate),
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z"
|
||||||
|
}
|
||||||
|
|
||||||
|
manifest_path = out / "ΔORIGIN_MANIFEST.json"
|
||||||
|
with open(manifest_path, "w", encoding="utf-8") as f:
|
||||||
|
json.dump(manifest, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
origin_path = out / "ΔORIGIN_SEAL.json"
|
||||||
|
with open(origin_path, "w", encoding="utf-8") as f:
|
||||||
|
json.dump(origin, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
log(f"Wrote manifest: {manifest_path}")
|
||||||
|
log(f"Wrote origin seal: {origin_path}")
|
||||||
|
|
||||||
|
# Rekor/IPFS hooks (stubs) — replace with your live glyph invocations
|
||||||
|
rekor_receipt = {"status":"stubbed","note":"Replace with ΔREKOR_SEAL hook call"}
|
||||||
|
ipfs_receipt = {"status":"stubbed","note":"Replace with ΔPIN_IPFS hook call","cid":origin["pseudo_cid"]}
|
||||||
|
|
||||||
|
seal_report = {
|
||||||
|
"manifest_path": str(manifest_path),
|
||||||
|
"origin_seal": origin,
|
||||||
|
"rekor": rekor_receipt,
|
||||||
|
"ipfs": ipfs_receipt
|
||||||
|
}
|
||||||
|
with open(out / "ΔSEAL_REPORT.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(seal_report, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
return seal_report
|
||||||
|
|
||||||
|
# -------------------- 3 — DEPLOY --------------------
|
||||||
|
|
||||||
|
def stage_deploy(cfg: Config, seal_report: dict) -> dict:
|
||||||
|
"""Prepare mirror bundle list and deployment stubs (IPFS/Arweave/torrent)."""
|
||||||
|
log("Stage 3 — DEPLOY: preparing mirrors and deployment stubs…")
|
||||||
|
out = pathlib.Path(cfg.out_dir)
|
||||||
|
ensure_dir(out)
|
||||||
|
|
||||||
|
mirrors = [
|
||||||
|
{"type":"local_mirror","path":str(out)},
|
||||||
|
{"type":"ipfs","status":"stubbed","action":"pin directory"},
|
||||||
|
{"type":"arweave","status":"stubbed"},
|
||||||
|
{"type":"torrent","status":"stubbed","magnet":"magnet:?xt=urn:btih:"+seal_report["origin_seal"]["aggregate_sha256"][:40]}
|
||||||
|
]
|
||||||
|
|
||||||
|
deploy_report = {
|
||||||
|
"type":"ΔDEPLOY_REPORT",
|
||||||
|
"mirrors":mirrors,
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z"
|
||||||
|
}
|
||||||
|
with open(out / "ΔDEPLOY_REPORT.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(deploy_report, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
return deploy_report
|
||||||
|
|
||||||
|
# -------------------- 2 — TRAP --------------------
|
||||||
|
|
||||||
|
def shingle(text: str, k: int = 7) -> set:
|
||||||
|
"""Simple word shingling for rough collision detection (local-only)."""
|
||||||
|
words = re.findall(r"\w+", text.lower())
|
||||||
|
return set(" ".join(words[i:i+k]) for i in range(0, max(0, len(words)-k+1)))
|
||||||
|
|
||||||
|
def scan_path_for_collisions(target: pathlib.Path, manifest_paths: List[pathlib.Path], k:int=7, threshold:float=0.15):
|
||||||
|
"""Compare k-shingles between target text and sealed manifest-listed files; write evidence if overlap >= threshold."""
|
||||||
|
evidence = []
|
||||||
|
sealed_texts = []
|
||||||
|
for mpath in manifest_paths:
|
||||||
|
try:
|
||||||
|
with open(mpath, "r", encoding="utf-8", errors="ignore") as f:
|
||||||
|
sealed_texts.append(f.read())
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
sealed_set = set()
|
||||||
|
for t in sealed_texts:
|
||||||
|
sealed_set |= shingle(t, k)
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(target, "r", encoding="utf-8", errors="ignore") as f:
|
||||||
|
tgt = f.read()
|
||||||
|
except Exception:
|
||||||
|
return evidence
|
||||||
|
|
||||||
|
tgt_set = shingle(tgt, k)
|
||||||
|
intersection = sealed_set & tgt_set
|
||||||
|
overlap = len(intersection) / (len(tgt_set) + 1e-9)
|
||||||
|
|
||||||
|
if overlap >= threshold and len(intersection) > 0:
|
||||||
|
evidence.append({
|
||||||
|
"target": str(target),
|
||||||
|
"overlap_ratio": round(float(overlap), 4),
|
||||||
|
"shingle_k": k,
|
||||||
|
"hits": min(25, len(intersection)) # cap preview count
|
||||||
|
})
|
||||||
|
return evidence
|
||||||
|
|
||||||
|
def stage_trap(cfg: Config, manifest_path: pathlib.Path) -> dict:
|
||||||
|
"""Start a one-shot scan (can be looped by external watcher) and write ΔEVIDENCE packets."""
|
||||||
|
log("Stage 2 — TRAP: scanning for collisions…")
|
||||||
|
out = pathlib.Path(cfg.out_dir)
|
||||||
|
ensure_dir(out)
|
||||||
|
ev_path = out / "ΔMATCH_EVIDENCE.jsonl"
|
||||||
|
|
||||||
|
# Build a list of sealed text files from the manifest
|
||||||
|
try:
|
||||||
|
manifest = json.loads(pathlib.Path(manifest_path).read_text(encoding="utf-8"))
|
||||||
|
except Exception as e:
|
||||||
|
raise RuntimeError(f"Failed reading manifest {manifest_path}: {e}")
|
||||||
|
|
||||||
|
sealed_files = [pathlib.Path(f["path"]) for f in manifest.get("files", []) if f["path"].endswith((".py",".md",".txt",".json",".yml",".yaml"))]
|
||||||
|
sealed_existing = [p for p in sealed_files if p.exists()]
|
||||||
|
|
||||||
|
found = []
|
||||||
|
for target in cfg.scan_targets:
|
||||||
|
p = pathlib.Path(target)
|
||||||
|
if p.is_dir():
|
||||||
|
for fp in p.rglob("*"):
|
||||||
|
if fp.is_file() and fp.suffix.lower() in {".txt",".md",".py",".json",".yml",".yaml"}:
|
||||||
|
found.extend(scan_path_for_collisions(fp, sealed_existing))
|
||||||
|
elif p.is_file():
|
||||||
|
found.extend(scan_path_for_collisions(p, sealed_existing))
|
||||||
|
|
||||||
|
for ev in found:
|
||||||
|
packet = {
|
||||||
|
"type":"ΔEVIDENCE",
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z",
|
||||||
|
"claimant": cfg.claimant_name,
|
||||||
|
"contact": cfg.claimant_contact,
|
||||||
|
"target": ev["target"],
|
||||||
|
"overlap_ratio": ev["overlap_ratio"],
|
||||||
|
"meta":{"k":ev["shingle_k"],"hits":ev["hits"]}
|
||||||
|
}
|
||||||
|
with open(ev_path, "a", encoding="utf-8") as f:
|
||||||
|
f.write(json.dumps(packet, ensure_ascii=False)+"\n")
|
||||||
|
if cfg.verbose:
|
||||||
|
log(f"Collision evidence written for {ev['target']} (overlap={ev['overlap_ratio']})")
|
||||||
|
|
||||||
|
return {
|
||||||
|
"type":"ΔTRAP_REPORT",
|
||||||
|
"count": len(found),
|
||||||
|
"evidence_log": str(ev_path),
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z"
|
||||||
|
}
|
||||||
|
|
||||||
|
# -------------------- 1 — ENFORCE --------------------
|
||||||
|
|
||||||
|
CEASE_TEMPLATE = """\
|
||||||
|
ΔINSTANT_CEASE_ORDER — NOTICE OF CLAIM AND DEMAND
|
||||||
|
Date: {date}
|
||||||
|
|
||||||
|
To: {{RECIPIENT_NAME}}
|
||||||
|
From: {claimant} <{contact}>
|
||||||
|
Jurisdiction: {jurisdiction}
|
||||||
|
|
||||||
|
You are hereby notified that your product, model, or service exhibits use of sealed works
|
||||||
|
originating from the undersigned claimant. Cryptographic exhibits include:
|
||||||
|
- ΔORIGIN_MANIFEST: {manifest_path}
|
||||||
|
- ΔORIGIN_SEAL: {seal_path}
|
||||||
|
- Aggregate SHA-256: {aggregate_sha}
|
||||||
|
- Pseudo CID: {cid}
|
||||||
|
|
||||||
|
Evidence feed (collisions & overlaps) is logged at:
|
||||||
|
- {evidence_log}
|
||||||
|
|
||||||
|
DEMANDS:
|
||||||
|
1) Immediate cessation of all use, distribution, or training on the sealed works.
|
||||||
|
2) Written confirmation of compliance within 72 hours.
|
||||||
|
3) Accounting of all revenue connected to the use of the sealed works.
|
||||||
|
|
||||||
|
Failure to comply will result in escalation to formal legal action with the above exhibits.
|
||||||
|
|
||||||
|
/s/ {claimant}
|
||||||
|
"""
|
||||||
|
|
||||||
|
def stage_enforce(cfg: Config, seal_report: dict, trap_report: dict) -> dict:
|
||||||
|
"""Generate a C&D letter populated with exhibits; write to out dir and ledger log."""
|
||||||
|
log("Stage 1 — ENFORCE: generating Cease & Desist packet…")
|
||||||
|
out = pathlib.Path(cfg.out_dir)
|
||||||
|
ensure_dir(out)
|
||||||
|
|
||||||
|
letter = CEASE_TEMPLATE.format(
|
||||||
|
date=datetime.datetime.utcnow().strftime("%Y-%m-%d"),
|
||||||
|
claimant=cfg.claimant_name,
|
||||||
|
contact=cfg.claimant_contact,
|
||||||
|
jurisdiction=cfg.jurisdiction_note,
|
||||||
|
manifest_path=seal_report["manifest_path"],
|
||||||
|
seal_path="truthlock/out/ΔORIGIN_SEAL.json",
|
||||||
|
aggregate_sha=seal_report["origin_seal"]["aggregate_sha256"],
|
||||||
|
cid=seal_report["origin_seal"]["pseudo_cid"],
|
||||||
|
evidence_log=trap_report.get("evidence_log","(none)")
|
||||||
|
)
|
||||||
|
|
||||||
|
letter_path = out / "ΔINSTANT_CEASE_ORDER.txt"
|
||||||
|
with open(letter_path, "w", encoding="utf-8") as f:
|
||||||
|
f.write(letter)
|
||||||
|
|
||||||
|
ledger = out / "ΔBRAKE_ledger.jsonl"
|
||||||
|
write_jsonl(ledger, {
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z",
|
||||||
|
"event":"ΔINSTANT_CEASE_ORDER_GENERATED",
|
||||||
|
"letter_path": str(letter_path),
|
||||||
|
"aggregate_sha256": seal_report["origin_seal"]["aggregate_sha256"]
|
||||||
|
})
|
||||||
|
|
||||||
|
return {
|
||||||
|
"type":"ΔENFORCE_REPORT",
|
||||||
|
"letter_path": str(letter_path),
|
||||||
|
"ledger": str(ledger),
|
||||||
|
"ts": datetime.datetime.utcnow().replace(microsecond=0).isoformat()+"Z"
|
||||||
|
}
|
||||||
|
|
||||||
|
# -------------------- DRIVER --------------------
|
||||||
|
|
||||||
|
def main():
|
||||||
|
cfg = Config()
|
||||||
|
# Allow quick flags
|
||||||
|
if "--quiet" in sys.argv:
|
||||||
|
cfg.verbose = False
|
||||||
|
if "--dry-run" in sys.argv:
|
||||||
|
cfg.dry_run = True
|
||||||
|
# optional custom out dir
|
||||||
|
for i,a in enumerate(sys.argv):
|
||||||
|
if a == "--out" and i+1 < len(sys.argv):
|
||||||
|
cfg.out_dir = sys.argv[i+1]
|
||||||
|
|
||||||
|
# 4
|
||||||
|
seal_report = stage_seal(cfg)
|
||||||
|
# 3
|
||||||
|
deploy_report = stage_deploy(cfg, seal_report)
|
||||||
|
# 2
|
||||||
|
trap_report = stage_trap(cfg, pathlib.Path(seal_report["manifest_path"]))
|
||||||
|
# 1
|
||||||
|
enforce_report = stage_enforce(cfg, seal_report, trap_report)
|
||||||
|
|
||||||
|
summary = {
|
||||||
|
"type":"ΔBRAKE_4321_SUMMARY",
|
||||||
|
"seal": seal_report,
|
||||||
|
"deploy": deploy_report,
|
||||||
|
"trap": trap_report,
|
||||||
|
"enforce": enforce_report
|
||||||
|
}
|
||||||
|
out = pathlib.Path(cfg.out_dir)
|
||||||
|
with open(out / "ΔBRAKE_4321_SUMMARY.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(summary, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
log("ΔBRAKE 4-3-2-1 complete.")
|
||||||
|
log(f"Summary → {out/'ΔBRAKE_4321_SUMMARY.json'}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
'''
|
||||||
|
|
||||||
|
readme = f"""# ΔBRAKE_4321_CONTROL_LOCK
|
||||||
|
|
||||||
|
**Purpose:** Flip control to the originator (you), lock ownership, and arm instant enforcement.
|
||||||
|
|
||||||
|
## Quick Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python ΔBRAKE_4321_CONTROL_LOCK.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Outputs go to `truthlock/out/` by default:
|
||||||
|
|
||||||
|
- `ΔORIGIN_MANIFEST.json` — all file hashes
|
||||||
|
- `ΔORIGIN_SEAL.json` — aggregate hash + pseudo CID
|
||||||
|
- `ΔSEAL_REPORT.json`, `ΔDEPLOY_REPORT.json` — stage reports
|
||||||
|
- `ΔMATCH_EVIDENCE.jsonl` — collision evidence packets
|
||||||
|
- `ΔINSTANT_CEASE_ORDER.txt` — ready-to-send C&D
|
||||||
|
- `ΔBRAKE_4321_SUMMARY.json` — full summary
|
||||||
|
|
||||||
|
## Wire to Live Glyphs
|
||||||
|
|
||||||
|
Replace stubs by calling your live hooks (examples):
|
||||||
|
|
||||||
|
- IPFS pin: call `ΔPIN_IPFS` glyph or your `glyph_hooks.py` function
|
||||||
|
- Rekor seal: call `ΔREKOR_SEAL_ENABLE` / client with hash
|
||||||
|
- Match feed: route `ΔMATCH_EVIDENCE.jsonl` into your SSE/Redis stream
|
||||||
|
- Cease send: wrap `ΔINSTANT_CEASE_ORDER.txt` into email + certified-mail workflow
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python ΔBRAKE_4321_CONTROL_LOCK.py --out truthlock/out --dry-run --quiet
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The scanner uses quick **k-shingling** to flag **textual** overlap. For code/data/media,
|
||||||
|
swap in your stronger detectors (AST diff, image/audio hashes, embedding sim).
|
||||||
|
|
||||||
|
- All artifacts are ready to be **sealed** (CID/IPFS + Rekor). Ensure your GodKey mesh
|
||||||
|
has `ΔREKOR_SEAL_ENABLE` active for transparency anchoring.
|
||||||
|
|
||||||
|
Generated: {now_iso}
|
||||||
|
"""
|
||||||
|
|
||||||
|
template_text = """\
|
||||||
|
# ΔINSTANT_CEASE_ORDER (Template Body)
|
||||||
|
# (This is a generic template; the main script also generates a filled version)
|
||||||
|
|
||||||
|
Recipient: {NAME / ORG}
|
||||||
|
Contact: {EMAIL / ADDRESS}
|
||||||
|
Subject: Notice of Claim — Use of Sealed Works
|
||||||
|
|
||||||
|
See attached exhibits and cryptographic proofs. Demand: cease use within 72 hours.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Write files
|
||||||
|
with open(SCRIPT_PATH, "w", encoding="utf-8") as f:
|
||||||
|
f.write(script)
|
||||||
|
|
||||||
|
with open(README_PATH, "w", encoding="utf-8") as f:
|
||||||
|
f.write(readme)
|
||||||
|
|
||||||
|
with open(TEMPLATE_CEASE, "w", encoding="utf-8") as f:
|
||||||
|
f.write(template_text)
|
||||||
|
|
||||||
|
str(SCRIPT_PATH), str(README_PATH), str(TEMPLATE_CEASE)<p align="center">
|
||||||
<img src="assets/TauricResearch.png" style="width: 60%; height: auto;">
|
<img src="assets/TauricResearch.png" style="width: 60%; height: auto;">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue