Spaces:
Running
Running
deploy: bind org card to 813ba58892b8
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +4 -45
- HONEST_DISCLOSURE.md +19 -19
- README.md +87 -69
- SPACE_PROVENANCE.json +0 -56
- SZL_ESTATE_MANAGED.json +0 -24
- assets/08_body_graph.png +0 -3
- assets/a11oy_avatar.png +0 -3
- assets/action/a11oy.webp +0 -0
- assets/action/a11oy_still.webp +0 -0
- assets/action/amaru.webp +0 -0
- assets/action/amaru_still.webp +0 -0
- assets/action/doug.webp +0 -0
- assets/action/doug_still.webp +0 -0
- assets/action/rosie.webp +0 -0
- assets/action/rosie_still.webp +0 -0
- assets/action/sentra.webp +0 -0
- assets/action/sentra_still.webp +0 -0
- assets/action/vessels.webp +0 -0
- assets/action/vessels_still.webp +0 -0
- assets/amaru_avatar.png +0 -3
- assets/emoji/a11oy_emoji.png +0 -0
- assets/emoji/amaru_emoji.png +0 -0
- assets/emoji/rosie_emoji.png +0 -0
- assets/emoji/sentra_emoji.png +0 -0
- assets/emoji/vessels_emoji.png +0 -0
- assets/estate-banner-v2.svg +0 -31
- assets/estate-command-system.svg +97 -0
- assets/group_shot_v1.png +0 -3
- assets/mesh_cathedral.jpg +0 -0
- assets/phd_api_badge.png +0 -0
- assets/phd_comment_sweep_badge.png +0 -0
- assets/phd_crypto_badge.png +0 -0
- assets/phd_frontend_badge.png +0 -0
- assets/phd_governance_badge.png +0 -0
- assets/phd_math_badge.png +0 -0
- assets/phd_secops_badge.png +0 -0
- assets/phd_systems_badge.png +0 -0
- assets/rosie/rosie-widget.css +0 -388
- assets/rosie/rosie-widget.js +0 -722
- assets/rosie_avatar.png +0 -3
- assets/sentra_avatar.png +0 -3
- assets/szl_banner.png +0 -3
- assets/vessels_avatar.png +0 -3
- css/style.css +0 -89
- cursor_reinstill.json +0 -144
- demo.html +0 -313
- deployment.json +1 -0
- hero.png +0 -3
- hero.svg +0 -130
- index.html +258 -288
.gitattributes
CHANGED
|
@@ -1,45 +1,4 @@
|
|
| 1 |
-
*.
|
| 2 |
-
*.
|
| 3 |
-
*.
|
| 4 |
-
*.
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
-
hero.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
-
assets/08_body_graph.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
-
assets/a11oy_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
-
assets/amaru_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
-
assets/rosie_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
-
assets/sentra_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
-
assets/vessels_avatar.png filter=lfs diff=lfs merge=lfs -text
|
| 43 |
-
assets/szl_banner.png filter=lfs diff=lfs merge=lfs -text
|
| 44 |
-
assets/group_shot_v1.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
-
roster.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
*.svg text eol=lf
|
| 2 |
+
*.html text eol=lf
|
| 3 |
+
*.json text eol=lf
|
| 4 |
+
*.md text eol=lf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HONEST_DISCLOSURE.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
-
This is the
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
-
|
| 6 |
|
| 7 |
-
-
|
| 8 |
-
-
|
| 9 |
-
-
|
| 10 |
-
|
| 11 |
|
| 12 |
-
|
| 13 |
-
- **SLSA L1 build provenance (honest)** on all service images — cosign-signed, verifiable via `cosign verify`. **SLSA L2 is on the roadmap; we do NOT claim L2-verified today.** **No** L2-verified / L3 / FedRAMP / Iron Bank / CMMC is claimed.
|
| 14 |
-
- The `szl-mesh` UDS bundle is **cosign-signed** (keyless OIDC). The GitHub attestation for the bundle itself was not minted (token scope); per-image cosign signatures are intact and verifiable.
|
| 15 |
|
| 16 |
-
|
| 17 |
-
-
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
**Compliance posture:** Aligned with **EU AI Act Article 12** (record-keeping) + **NIST AI RMF (MANAGE)**. These are alignment statements, not certifications.
|
| 24 |
-
|
| 25 |
-
*Built by Stephen P. Lutar Jr. · stephenlutar2@gmail.com · Doctrine v11 LOCKED.*
|
|
|
|
| 1 |
+
# Honest disclosure
|
| 2 |
|
| 3 |
+
This static Space is the public Hugging Face front door for SZL Holdings. It
|
| 4 |
+
organizes links and describes publication contracts. It is not a model,
|
| 5 |
+
benchmark, customer deployment, certification, authorization to operate, or
|
| 6 |
+
independent third-party assessment.
|
| 7 |
|
| 8 |
+
## What the running page proves
|
| 9 |
|
| 10 |
+
- the static route was reachable at the time it was requested;
|
| 11 |
+
- the served `deployment.json` identifies a GitHub source revision;
|
| 12 |
+
- the declared source files can be compared with that revision and the Hub
|
| 13 |
+
commit recorded by the deployment workflow.
|
| 14 |
|
| 15 |
+
## What it does not prove
|
|
|
|
|
|
|
| 16 |
|
| 17 |
+
- that every linked model loads or meets its intended quality threshold;
|
| 18 |
+
- that every dataset row has passed provenance and license admission;
|
| 19 |
+
- that every Space is healthy end to end;
|
| 20 |
+
- that a signature establishes accuracy, safety, compliance, or fitness;
|
| 21 |
+
- that Hub download events are unique users, customers, or deployments.
|
| 22 |
|
| 23 |
+
Each artifact owns its evaluation, provenance, security, and runtime evidence.
|
| 24 |
+
Unverified evidence must remain `UNKNOWN`, `PARTIAL`, or `UNAVAILABLE` rather
|
| 25 |
+
than being inferred from this organization card.
|
|
|
|
|
|
|
|
|
|
|
|
README.md
CHANGED
|
@@ -1,117 +1,135 @@
|
|
| 1 |
---
|
| 2 |
-
title: SZL Holdings — Governed
|
| 3 |
emoji: 🛡️
|
| 4 |
colorFrom: gray
|
| 5 |
colorTo: yellow
|
| 6 |
sdk: static
|
| 7 |
-
short_description: Governed AI
|
| 8 |
pinned: true
|
|
|
|
| 9 |
---
|
| 10 |
|
| 11 |
-
<!--
|
| 12 |
-
|
| 13 |
<p align="center">
|
| 14 |
-
<
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
<a href="https://github.com/szl-holdings"><img src="https://img.shields.io/badge/github-szl--holdings-0B1F3A?style=flat-square" alt="github org"></a>
|
| 18 |
</p>
|
| 19 |
-
<!-- SZL-ORG-HERO:v2:END -->
|
| 20 |
|
| 21 |
<div align="center">
|
| 22 |
|
| 23 |
-
|
| 24 |
|
| 25 |
-
|
|
|
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
-
<
|
| 30 |
|
| 31 |
-
|
| 32 |
|
| 33 |
-
|
| 34 |
-
[](https://a-11-oy.com/holographic)
|
| 35 |
-
[](https://doi.org/10.5281/zenodo.19944926)
|
| 36 |
-
[](https://slsa.dev/spec/v1.0/levels)
|
| 37 |
-
[](https://a-11-oy.com)
|
| 38 |
-
[](https://doi.org/10.5281/zenodo.19944926)
|
| 39 |
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
-
|
|
|
|
| 43 |
|
| 44 |
-
|
| 45 |
|
| 46 |
-
|
| 47 |
|
| 48 |
-
##
|
| 49 |
|
| 50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
-
|
| 53 |
-
- The lattice is **exactly 8 locked-proven formulas** — {F1, F4, F7, F11, F12, F18, F19, F22}. Not 9. Not "soon."
|
| 54 |
-
- **Λ is Conjecture 1** — an open conjecture, never a theorem, never marked green.
|
| 55 |
-
- Trust tops out at **0.97**, never 100%. A ceiling is honest; certainty is not.
|
| 56 |
|
| 57 |
-
--
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
-
##
|
| 60 |
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
-
|
| 64 |
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
| [**SZL-Khipu-1.5B-GGUF**](https://huggingface.co/SZLHOLDINGS/SZL-Khipu-1.5B-GGUF) | quantized Khipu | **656** downloads | Q4_K_M · Q5_K_M · Q8_0 · F16; Ollama-ready; receipts travel |
|
| 70 |
|
| 71 |
-
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
-
##
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
|
| 81 |
-
|
|
|
|
|
|
|
| 82 |
|
| 83 |
-
|
| 84 |
-
|---|---|---|
|
| 85 |
-
| **a11oy console** — the flagship | `LIVE` | [a-11-oy.com](https://a-11-oy.com) |
|
| 86 |
-
| **Holographic** — 70+ live surfaces | `LIVE` | [/holographic](https://a-11-oy.com/holographic) |
|
| 87 |
-
| **killinchu** — counter-UAS & maritime C2 demo | `DEMO` | [open →](https://szlholdings-killinchu.hf.space/) |
|
| 88 |
-
| **Estate hub** — live index of every Space | `LIVE` | [open →](https://szlholdings-szl-estate-live.static.hf.space) |
|
| 89 |
|
| 90 |
-
|
|
|
|
|
|
|
| 91 |
|
| 92 |
-
|
|
|
|
|
|
|
| 93 |
|
| 94 |
-
|
| 95 |
|
| 96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
-
|
| 101 |
-
-
|
| 102 |
-
- **🌐 The a11oy surfaces** — the flagship console plus 70+ holographic surfaces.
|
| 103 |
-
- **📐 The lattice** — 8 locked-proven formulas and the Λ conjecture, DOI-anchored.
|
| 104 |
-
|
| 105 |
-
*See the pinned models, datasets, and Spaces on this org page to jump straight in.*
|
| 106 |
|
| 107 |
---
|
| 108 |
|
| 109 |
<div align="center">
|
| 110 |
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
**[🛡️ a-11-oy.com](https://a-11-oy.com)** · **[Live surfaces](https://a-11-oy.com/holographic)** · **[GitHub](https://github.com/szl-holdings)** · **[DOI 10.5281/zenodo.19944926](https://doi.org/10.5281/zenodo.19944926)**
|
| 114 |
|
| 115 |
-
|
|
|
|
|
|
|
| 116 |
|
| 117 |
</div>
|
|
|
|
| 1 |
---
|
| 2 |
+
title: SZL Holdings — Governed Decision Infrastructure
|
| 3 |
emoji: 🛡️
|
| 4 |
colorFrom: gray
|
| 5 |
colorTo: yellow
|
| 6 |
sdk: static
|
| 7 |
+
short_description: Governed AI that can explain, constrain, and verify action
|
| 8 |
pinned: true
|
| 9 |
+
license: apache-2.0
|
| 10 |
---
|
| 11 |
|
| 12 |
+
<!-- markdownlint-disable MD013 MD033 MD041 -->
|
| 13 |
+
|
| 14 |
<p align="center">
|
| 15 |
+
<img src="https://huggingface.co/spaces/SZLHOLDINGS/README/resolve/main/assets/estate-command-system.svg"
|
| 16 |
+
alt="SZL Holdings — autonomy, under authority"
|
| 17 |
+
width="100%" />
|
|
|
|
| 18 |
</p>
|
|
|
|
| 19 |
|
| 20 |
<div align="center">
|
| 21 |
|
| 22 |
+
# Governed models, data, and demonstrations
|
| 23 |
|
| 24 |
+
SZL Holdings publishes the model and data layer for systems that must reason,
|
| 25 |
+
act within authority, and return evidence another party can verify.
|
| 26 |
|
| 27 |
+
[**Open a11oy**](https://a-11-oy.com) ·
|
| 28 |
+
[**Inspect evidence**](https://a11oy.net) ·
|
| 29 |
+
[**View source**](https://github.com/szl-holdings) ·
|
| 30 |
+
[**Read documentation**](https://holdings.a-11-oy.com/docs-site/)
|
| 31 |
|
| 32 |
+
</div>
|
| 33 |
|
| 34 |
+
---
|
| 35 |
|
| 36 |
+
## Start here
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
+
| Need | Canonical artifact | Boundary |
|
| 39 |
+
| --- | --- | --- |
|
| 40 |
+
| Governed receipt generation | [SZL-Forge-1.5B-ReceiptAgent](https://huggingface.co/SZLHOLDINGS/SZL-Forge-1.5B-ReceiptAgent) | A model artifact; autonomy requires a validating controller |
|
| 41 |
+
| Grounded estate navigation | [SZL-Khipu-1.5B](https://huggingface.co/SZLHOLDINGS/SZL-Khipu-1.5B) | Use cited retrieval and verify sources independently |
|
| 42 |
+
| Local quantized evaluation | [SZL-Khipu-1.5B-GGUF](https://huggingface.co/SZLHOLDINGS/SZL-Khipu-1.5B-GGUF) | Quantization changes runtime characteristics; evaluate the exact file |
|
| 43 |
+
| Receipt and evidence records | [szl-lake](https://huggingface.co/datasets/SZLHOLDINGS/szl-lake) | Records are admitted by their own provenance and license state |
|
| 44 |
+
| Public OSINT corpus | [killinchu-osint-corpus](https://huggingface.co/datasets/SZLHOLDINGS/killinchu-osint-corpus) | Public-source research corpus; not an operational intelligence feed |
|
| 45 |
+
| Product demonstration | [a11oy Space](https://huggingface.co/spaces/SZLHOLDINGS/a11oy) | A demonstration surface; verify live state and exact source separately |
|
| 46 |
|
| 47 |
+
Download counters are Hub-reported events, not unique users, deployments,
|
| 48 |
+
customers, model quality, or revenue.
|
| 49 |
|
| 50 |
+
## Artifact contract
|
| 51 |
|
| 52 |
+
Every promoted artifact must identify what it is and what evidence exists.
|
| 53 |
|
| 54 |
+
### Trained weights
|
| 55 |
|
| 56 |
+
- exact base model and license lineage;
|
| 57 |
+
- weight or adapter hashes;
|
| 58 |
+
- clean load and inference receipt;
|
| 59 |
+
- held-out and adversarial evaluation;
|
| 60 |
+
- restart and reproduction evidence;
|
| 61 |
+
- latency, memory, and energy context;
|
| 62 |
+
- an explicit autonomy boundary.
|
| 63 |
|
| 64 |
+
### Datasets
|
|
|
|
|
|
|
|
|
|
| 65 |
|
| 66 |
+
- source and license provenance at row or source-family scope;
|
| 67 |
+
- schema, splits, sizes, and validation results;
|
| 68 |
+
- privacy, consent, PII, and update policy;
|
| 69 |
+
- known omissions, quarantine counts, and intended use.
|
| 70 |
|
| 71 |
+
### Kernels and tools
|
| 72 |
|
| 73 |
+
- canonical source repository and immutable revision;
|
| 74 |
+
- supported hardware and software matrix;
|
| 75 |
+
- executable tests and benchmark protocol;
|
| 76 |
+
- no implied training receipt or model capability.
|
| 77 |
|
| 78 |
+
### Spaces
|
| 79 |
|
| 80 |
+
- canonical source and deployment revision;
|
| 81 |
+
- pinned dependencies and runtime behavior;
|
| 82 |
+
- privacy and retention behavior;
|
| 83 |
+
- visible limitations and reproducible local path.
|
|
|
|
| 84 |
|
| 85 |
+
A model card is not operational proof. A Space in `RUNNING` state proves
|
| 86 |
+
transport availability only. A signed receipt establishes integrity and origin
|
| 87 |
+
within its stated scope; it does not automatically establish correctness,
|
| 88 |
+
safety, or authorization to operate.
|
| 89 |
|
| 90 |
+
## One governed loop
|
| 91 |
|
| 92 |
+
```text
|
| 93 |
+
signal → reason → policy → bounded action → receipt → independent verification
|
| 94 |
+
↑ │
|
| 95 |
+
└──────────── verified feedback ───────┘
|
| 96 |
+
```
|
| 97 |
|
| 98 |
+
The model proposes. The controller validates authority and evidence. The
|
| 99 |
+
runtime executes only within a declared bound. The receipt lets a separate
|
| 100 |
+
party inspect what happened.
|
| 101 |
|
| 102 |
+
## Evidence language
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
|
| 104 |
+
Claims use **PROVED**, **MEASURED**, **REPORTED**, **MODELED**,
|
| 105 |
+
**CONJECTURE**, or **ROADMAP**. Runtime status uses **OPERATIONAL**,
|
| 106 |
+
**PARTIAL**, **DEGRADED**, **UNAVAILABLE**, or **HISTORICAL**.
|
| 107 |
|
| 108 |
+
Lambda uniqueness remains **Conjecture 1**, not a theorem. No artifact is
|
| 109 |
+
promoted solely because it has a card, a counter, a live route, or a filename
|
| 110 |
+
that sounds like a model.
|
| 111 |
|
| 112 |
+
## Source and support
|
| 113 |
|
| 114 |
+
This company front door is source-controlled at
|
| 115 |
+
[`szl-holdings/.github`](https://github.com/szl-holdings/.github/tree/main/huggingface/org-card)
|
| 116 |
+
and deployed with an exact source-revision manifest. Inspect
|
| 117 |
+
[`deployment.json`](https://szlholdings-readme.static.hf.space/deployment.json)
|
| 118 |
+
on the running static Space for the served source binding.
|
| 119 |
|
| 120 |
+
- [Security policy](https://github.com/szl-holdings/.github/security/policy)
|
| 121 |
+
- [Trust posture](https://github.com/szl-holdings/.github/blob/main/TRUST.md)
|
| 122 |
+
- [Support](https://github.com/szl-holdings/.github/blob/main/SUPPORT.md)
|
| 123 |
+
- [Honest disclosure](./HONEST_DISCLOSURE.md)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
|
| 125 |
---
|
| 126 |
|
| 127 |
<div align="center">
|
| 128 |
|
| 129 |
+
**Govern · execute · prove**
|
|
|
|
|
|
|
| 130 |
|
| 131 |
+
[a-11-oy.com](https://a-11-oy.com) ·
|
| 132 |
+
[a11oy.net](https://a11oy.net) ·
|
| 133 |
+
[GitHub](https://github.com/szl-holdings)
|
| 134 |
|
| 135 |
</div>
|
SPACE_PROVENANCE.json
DELETED
|
@@ -1,56 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"schema": "szl.space-source-attestation/v1",
|
| 3 |
-
"observed_at": "2026-07-12T01:54:25Z",
|
| 4 |
-
"space": {
|
| 5 |
-
"id": "SZLHOLDINGS/README",
|
| 6 |
-
"repository_type": "space",
|
| 7 |
-
"sdk": "static",
|
| 8 |
-
"runtime_stage_observed": "RUNNING",
|
| 9 |
-
"artifact_kind": "space-repository-snapshot",
|
| 10 |
-
"purpose": "Static organization portfolio and governed-AI entry surface.",
|
| 11 |
-
"source_files_reviewed": [
|
| 12 |
-
"README.md",
|
| 13 |
-
"HONEST_DISCLOSURE.md",
|
| 14 |
-
"index.html",
|
| 15 |
-
"js/main.js"
|
| 16 |
-
]
|
| 17 |
-
},
|
| 18 |
-
"source_of_record": {
|
| 19 |
-
"state": "VERIFIED_HF_SOURCE_OF_RECORD",
|
| 20 |
-
"relation": "hf-native-source-of-record",
|
| 21 |
-
"platform": "huggingface",
|
| 22 |
-
"repository": "SZLHOLDINGS/README",
|
| 23 |
-
"artifact_base_revision": "fae3dcb371bce070f1ba4cf0fe1083ad8657117b",
|
| 24 |
-
"artifact_base_state": "MEASURED_PRE_ATTESTATION_BASE",
|
| 25 |
-
"artifact_base_url": "https://huggingface.co/spaces/SZLHOLDINGS/README/tree/fae3dcb371bce070f1ba4cf0fe1083ad8657117b",
|
| 26 |
-
"file_count": 52,
|
| 27 |
-
"total_bytes": 11154868,
|
| 28 |
-
"tree_sha256": "358d0aaa8224a17883aaaef535ce95d886f09f5fc67ed62eff8a833cfdd6f9a5",
|
| 29 |
-
"tree_hash_algorithm": "sha256 of UTF-8 path + NUL + per-file content sha256 + LF, sorted by path; .cache excluded"
|
| 30 |
-
},
|
| 31 |
-
"public_github": {
|
| 32 |
-
"state": "NO_DIRECT_PUBLIC_SAME_NAME_REPOSITORY_OBSERVED",
|
| 33 |
-
"same_name_candidate": "https://github.com/szl-holdings/README",
|
| 34 |
-
"same_name_candidate_http_status": 404,
|
| 35 |
-
"observation_semantics": "A public 404 does not establish the absence of a private repository.",
|
| 36 |
-
"contextual_references": [
|
| 37 |
-
"https://github.com/szl-holdings",
|
| 38 |
-
"https://github.com/szl-holdings/governed-receipt-spec",
|
| 39 |
-
"https://github.com/szl-holdings/lutar-lean",
|
| 40 |
-
"https://github.com/szl-holdings/szl-papers"
|
| 41 |
-
],
|
| 42 |
-
"contextual_reference_role": "DOCUMENTATION_RESEARCH_DEPENDENCY_OR_ORGANIZATION_CONTEXT_NOT_BUILD_SOURCE_PARITY"
|
| 43 |
-
},
|
| 44 |
-
"claims": {
|
| 45 |
-
"full_github_repository_parity": "NOT_CLAIMED",
|
| 46 |
-
"reproducible_build": "NOT_CLAIMED",
|
| 47 |
-
"binary_provenance": "NOT_CLAIMED",
|
| 48 |
-
"serving_process_revision": "NOT_CLAIMED"
|
| 49 |
-
},
|
| 50 |
-
"limits": [
|
| 51 |
-
"The attestation overlay cannot self-embed its resulting Hub commit, so artifact_base_revision is the immutable measured pre-overlay tree.",
|
| 52 |
-
"Repository-head evidence does not prove the exact serving-process revision during a rolling deployment.",
|
| 53 |
-
"Reproducible build, binary provenance, and serving-process identity are not claimed.",
|
| 54 |
-
"No claim is made about private repositories or unobserved producer systems."
|
| 55 |
-
]
|
| 56 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SZL_ESTATE_MANAGED.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"canonical_flagship": "https://github.com/szl-holdings/a11oy",
|
| 3 |
-
"canonical_github_org": "https://github.com/szl-holdings",
|
| 4 |
-
"canonical_rule": "GitHub source, protected CI, release receipts, checksums, and provenance are authoritative. Hugging Face is the managed Hub surface.",
|
| 5 |
-
"clone_of": null,
|
| 6 |
-
"generation": "3c20fe2a6b0c9c56a045265b194a81e952fc949c",
|
| 7 |
-
"managed_at": "2026-07-22T08:49:51.422140+00:00",
|
| 8 |
-
"non_destructive": true,
|
| 9 |
-
"observed_sha_before_upgrade": "c1727a3c3bf502441e6818d5efcc52a8740f99a8",
|
| 10 |
-
"organization": "SZLHOLDINGS",
|
| 11 |
-
"repo_id": "SZLHOLDINGS/README",
|
| 12 |
-
"repo_type": "space",
|
| 13 |
-
"runtime": {
|
| 14 |
-
"hardware": {
|
| 15 |
-
"current": null,
|
| 16 |
-
"requested": null
|
| 17 |
-
},
|
| 18 |
-
"requested_hardware": null,
|
| 19 |
-
"sdk": "static",
|
| 20 |
-
"stage": "RUNNING",
|
| 21 |
-
"storage": null
|
| 22 |
-
},
|
| 23 |
-
"schema": "szl.hf-estate-managed/v1"
|
| 24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/08_body_graph.png
DELETED
Git LFS Details
|
assets/a11oy_avatar.png
DELETED
Git LFS Details
|
assets/action/a11oy.webp
DELETED
|
Binary file (76.3 kB)
|
|
|
assets/action/a11oy_still.webp
DELETED
|
Binary file (39.3 kB)
|
|
|
assets/action/amaru.webp
DELETED
|
Binary file (71.5 kB)
|
|
|
assets/action/amaru_still.webp
DELETED
|
Binary file (37.2 kB)
|
|
|
assets/action/doug.webp
DELETED
|
Binary file (71.2 kB)
|
|
|
assets/action/doug_still.webp
DELETED
|
Binary file (38.4 kB)
|
|
|
assets/action/rosie.webp
DELETED
|
Binary file (76.6 kB)
|
|
|
assets/action/rosie_still.webp
DELETED
|
Binary file (38.9 kB)
|
|
|
assets/action/sentra.webp
DELETED
|
Binary file (77.5 kB)
|
|
|
assets/action/sentra_still.webp
DELETED
|
Binary file (33.6 kB)
|
|
|
assets/action/vessels.webp
DELETED
|
Binary file (81.1 kB)
|
|
|
assets/action/vessels_still.webp
DELETED
|
Binary file (40.6 kB)
|
|
|
assets/amaru_avatar.png
DELETED
Git LFS Details
|
assets/emoji/a11oy_emoji.png
DELETED
|
Binary file (34.8 kB)
|
|
|
assets/emoji/amaru_emoji.png
DELETED
|
Binary file (43.3 kB)
|
|
|
assets/emoji/rosie_emoji.png
DELETED
|
Binary file (40.7 kB)
|
|
|
assets/emoji/sentra_emoji.png
DELETED
|
Binary file (37.5 kB)
|
|
|
assets/emoji/vessels_emoji.png
DELETED
|
Binary file (46.8 kB)
|
|
|
assets/estate-banner-v2.svg
DELETED
assets/estate-command-system.svg
ADDED
|
|
assets/group_shot_v1.png
DELETED
Git LFS Details
|
assets/mesh_cathedral.jpg
DELETED
|
Binary file (16.4 kB)
|
|
|
assets/phd_api_badge.png
DELETED
|
Binary file (83.7 kB)
|
|
|
assets/phd_comment_sweep_badge.png
DELETED
|
Binary file (98.1 kB)
|
|
|
assets/phd_crypto_badge.png
DELETED
|
Binary file (80.7 kB)
|
|
|
assets/phd_frontend_badge.png
DELETED
|
Binary file (82.2 kB)
|
|
|
assets/phd_governance_badge.png
DELETED
|
Binary file (92.3 kB)
|
|
|
assets/phd_math_badge.png
DELETED
|
Binary file (81.2 kB)
|
|
|
assets/phd_secops_badge.png
DELETED
|
Binary file (75.1 kB)
|
|
|
assets/phd_systems_badge.png
DELETED
|
Binary file (78.2 kB)
|
|
|
assets/rosie/rosie-widget.css
DELETED
|
@@ -1,388 +0,0 @@
|
|
| 1 |
-
/* rosie-widget.css — floating operator widget for SZL Holdings surfaces.
|
| 2 |
-
Dark-glass Vessels DNA: deep purple glass, gold hairlines, JetBrains Mono.
|
| 3 |
-
Rosie's own accent is coral-rose. No external dependencies. */
|
| 4 |
-
|
| 5 |
-
:root {
|
| 6 |
-
--rz-coral: #ff7a59;
|
| 7 |
-
--rz-coral-soft: rgba(255, 122, 89, 0.18);
|
| 8 |
-
--rz-gold: #d4af37;
|
| 9 |
-
--rz-gold-dim: rgba(212, 175, 55, 0.55);
|
| 10 |
-
--rz-border: rgba(212, 175, 55, 0.18);
|
| 11 |
-
--rz-glass: rgba(26, 15, 46, 0.92);
|
| 12 |
-
--rz-glass-soft: rgba(45, 27, 94, 0.55);
|
| 13 |
-
--rz-purple-deep: #14091f;
|
| 14 |
-
--rz-text: #f3ecff;
|
| 15 |
-
--rz-text-muted: rgba(243, 236, 255, 0.62);
|
| 16 |
-
--rz-ok: #4caf50;
|
| 17 |
-
--rz-warn: #e53935;
|
| 18 |
-
--rz-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, SFMono-Regular, Menlo, monospace;
|
| 19 |
-
--rz-font-body: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
| 20 |
-
--rz-z: 2147483000;
|
| 21 |
-
}
|
| 22 |
-
|
| 23 |
-
/* ---- Root container ---- */
|
| 24 |
-
.rz-root {
|
| 25 |
-
position: fixed;
|
| 26 |
-
right: 20px;
|
| 27 |
-
bottom: 20px;
|
| 28 |
-
z-index: var(--rz-z);
|
| 29 |
-
font-family: var(--rz-font-body);
|
| 30 |
-
color: var(--rz-text);
|
| 31 |
-
-webkit-font-smoothing: antialiased;
|
| 32 |
-
}
|
| 33 |
-
.rz-root *,
|
| 34 |
-
.rz-root *::before,
|
| 35 |
-
.rz-root *::after {
|
| 36 |
-
box-sizing: border-box;
|
| 37 |
-
}
|
| 38 |
-
|
| 39 |
-
/* ---- Floating button (FAB) ---- */
|
| 40 |
-
.rz-fab {
|
| 41 |
-
width: 64px;
|
| 42 |
-
height: 64px;
|
| 43 |
-
border-radius: 50%;
|
| 44 |
-
border: 1.5px solid var(--rz-border);
|
| 45 |
-
padding: 0;
|
| 46 |
-
cursor: pointer;
|
| 47 |
-
background: var(--rz-glass);
|
| 48 |
-
backdrop-filter: blur(12px);
|
| 49 |
-
-webkit-backdrop-filter: blur(12px);
|
| 50 |
-
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45), 0 0 22px rgba(255, 122, 89, 0.18);
|
| 51 |
-
overflow: hidden;
|
| 52 |
-
display: grid;
|
| 53 |
-
place-items: center;
|
| 54 |
-
position: relative;
|
| 55 |
-
transition: transform 0.18s ease, box-shadow 0.18s ease;
|
| 56 |
-
animation: rz-breathe 4.5s ease-in-out infinite;
|
| 57 |
-
}
|
| 58 |
-
.rz-fab:hover {
|
| 59 |
-
transform: translateY(-2px) scale(1.04);
|
| 60 |
-
box-shadow: 0 10px 34px rgba(0, 0, 0, 0.5), 0 0 30px rgba(255, 122, 89, 0.3);
|
| 61 |
-
}
|
| 62 |
-
.rz-fab:focus-visible {
|
| 63 |
-
outline: 2px solid var(--rz-coral);
|
| 64 |
-
outline-offset: 3px;
|
| 65 |
-
}
|
| 66 |
-
.rz-fab img {
|
| 67 |
-
width: 100%;
|
| 68 |
-
height: 100%;
|
| 69 |
-
object-fit: cover;
|
| 70 |
-
object-position: center 28%;
|
| 71 |
-
display: block;
|
| 72 |
-
pointer-events: none;
|
| 73 |
-
user-select: none;
|
| 74 |
-
}
|
| 75 |
-
/* Fallback monogram if the portrait fails to load */
|
| 76 |
-
.rz-fab .rz-fab-fallback {
|
| 77 |
-
font-family: var(--rz-font-mono);
|
| 78 |
-
font-size: 22px;
|
| 79 |
-
font-weight: 700;
|
| 80 |
-
color: var(--rz-coral);
|
| 81 |
-
}
|
| 82 |
-
|
| 83 |
-
@keyframes rz-breathe {
|
| 84 |
-
0%, 100% { transform: scale(1); }
|
| 85 |
-
50% { transform: scale(1.035); }
|
| 86 |
-
}
|
| 87 |
-
|
| 88 |
-
/* ---- Notification badge dot ---- */
|
| 89 |
-
.rz-badge {
|
| 90 |
-
position: absolute;
|
| 91 |
-
top: 2px;
|
| 92 |
-
right: 2px;
|
| 93 |
-
min-width: 18px;
|
| 94 |
-
height: 18px;
|
| 95 |
-
padding: 0 5px;
|
| 96 |
-
border-radius: 9px;
|
| 97 |
-
background: var(--rz-coral);
|
| 98 |
-
color: #1a0f2e;
|
| 99 |
-
font-family: var(--rz-font-mono);
|
| 100 |
-
font-size: 11px;
|
| 101 |
-
font-weight: 700;
|
| 102 |
-
line-height: 18px;
|
| 103 |
-
text-align: center;
|
| 104 |
-
border: 2px solid var(--rz-purple-deep);
|
| 105 |
-
display: none;
|
| 106 |
-
}
|
| 107 |
-
.rz-root[data-unread="true"] .rz-badge { display: block; }
|
| 108 |
-
|
| 109 |
-
/* ---- Panel ---- */
|
| 110 |
-
.rz-panel {
|
| 111 |
-
position: absolute;
|
| 112 |
-
right: 0;
|
| 113 |
-
bottom: 80px;
|
| 114 |
-
width: 360px;
|
| 115 |
-
max-height: 520px;
|
| 116 |
-
height: 70vh;
|
| 117 |
-
display: none;
|
| 118 |
-
flex-direction: column;
|
| 119 |
-
background: var(--rz-glass);
|
| 120 |
-
backdrop-filter: blur(16px);
|
| 121 |
-
-webkit-backdrop-filter: blur(16px);
|
| 122 |
-
border: 1px solid var(--rz-border);
|
| 123 |
-
border-radius: 16px;
|
| 124 |
-
box-shadow: 0 18px 60px rgba(0, 0, 0, 0.6);
|
| 125 |
-
overflow: hidden;
|
| 126 |
-
transform-origin: bottom right;
|
| 127 |
-
}
|
| 128 |
-
.rz-root[data-open="true"] .rz-panel {
|
| 129 |
-
display: flex;
|
| 130 |
-
animation: rz-panel-in 0.22s ease;
|
| 131 |
-
}
|
| 132 |
-
@keyframes rz-panel-in {
|
| 133 |
-
from { opacity: 0; transform: translateY(10px) scale(0.98); }
|
| 134 |
-
to { opacity: 1; transform: translateY(0) scale(1); }
|
| 135 |
-
}
|
| 136 |
-
|
| 137 |
-
/* ---- Panel header ---- */
|
| 138 |
-
.rz-head {
|
| 139 |
-
display: flex;
|
| 140 |
-
align-items: center;
|
| 141 |
-
gap: 10px;
|
| 142 |
-
padding: 14px 14px 12px;
|
| 143 |
-
border-bottom: 1px solid var(--rz-border);
|
| 144 |
-
background: linear-gradient(180deg, rgba(255, 122, 89, 0.06), transparent);
|
| 145 |
-
}
|
| 146 |
-
.rz-head-avatar {
|
| 147 |
-
width: 34px;
|
| 148 |
-
height: 34px;
|
| 149 |
-
border-radius: 50%;
|
| 150 |
-
object-fit: cover;
|
| 151 |
-
object-position: center 28%;
|
| 152 |
-
border: 1px solid var(--rz-border);
|
| 153 |
-
flex: none;
|
| 154 |
-
}
|
| 155 |
-
.rz-head-text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
|
| 156 |
-
.rz-eyebrow {
|
| 157 |
-
font-family: var(--rz-font-mono);
|
| 158 |
-
font-size: 10px;
|
| 159 |
-
letter-spacing: 0.16em;
|
| 160 |
-
text-transform: uppercase;
|
| 161 |
-
color: var(--rz-coral);
|
| 162 |
-
display: flex;
|
| 163 |
-
align-items: center;
|
| 164 |
-
gap: 6px;
|
| 165 |
-
}
|
| 166 |
-
.rz-eyebrow::before {
|
| 167 |
-
content: '';
|
| 168 |
-
width: 14px;
|
| 169 |
-
height: 1px;
|
| 170 |
-
background: var(--rz-coral);
|
| 171 |
-
display: inline-block;
|
| 172 |
-
}
|
| 173 |
-
.rz-head-name { font-size: 15px; font-weight: 600; color: var(--rz-text); }
|
| 174 |
-
.rz-status {
|
| 175 |
-
margin-left: auto;
|
| 176 |
-
display: flex;
|
| 177 |
-
align-items: center;
|
| 178 |
-
gap: 6px;
|
| 179 |
-
font-family: var(--rz-font-mono);
|
| 180 |
-
font-size: 10px;
|
| 181 |
-
color: var(--rz-text-muted);
|
| 182 |
-
}
|
| 183 |
-
.rz-status-dot {
|
| 184 |
-
width: 7px; height: 7px; border-radius: 50%;
|
| 185 |
-
background: var(--rz-text-muted);
|
| 186 |
-
}
|
| 187 |
-
.rz-status[data-state="ok"] .rz-status-dot { background: var(--rz-ok); }
|
| 188 |
-
.rz-status[data-state="down"] .rz-status-dot { background: var(--rz-warn); }
|
| 189 |
-
.rz-close {
|
| 190 |
-
background: none; border: none; color: var(--rz-text-muted);
|
| 191 |
-
font-size: 20px; line-height: 1; cursor: pointer; padding: 4px 6px;
|
| 192 |
-
border-radius: 6px;
|
| 193 |
-
}
|
| 194 |
-
.rz-close:hover { color: var(--rz-text); background: rgba(255,255,255,0.06); }
|
| 195 |
-
.rz-close:focus-visible { outline: 2px solid var(--rz-coral); outline-offset: 1px; }
|
| 196 |
-
|
| 197 |
-
/* ---- Thread ---- */
|
| 198 |
-
.rz-thread {
|
| 199 |
-
flex: 1;
|
| 200 |
-
overflow-y: auto;
|
| 201 |
-
padding: 14px;
|
| 202 |
-
display: flex;
|
| 203 |
-
flex-direction: column;
|
| 204 |
-
gap: 10px;
|
| 205 |
-
scrollbar-width: thin;
|
| 206 |
-
scrollbar-color: var(--rz-gold-dim) transparent;
|
| 207 |
-
}
|
| 208 |
-
.rz-thread::-webkit-scrollbar { width: 6px; }
|
| 209 |
-
.rz-thread::-webkit-scrollbar-thumb { background: var(--rz-gold-dim); border-radius: 3px; }
|
| 210 |
-
|
| 211 |
-
.rz-empty {
|
| 212 |
-
margin: auto 0;
|
| 213 |
-
text-align: center;
|
| 214 |
-
color: var(--rz-text-muted);
|
| 215 |
-
font-size: 13px;
|
| 216 |
-
line-height: 1.55;
|
| 217 |
-
padding: 0 8px;
|
| 218 |
-
}
|
| 219 |
-
.rz-empty strong { color: var(--rz-text); font-weight: 600; }
|
| 220 |
-
|
| 221 |
-
.rz-msg {
|
| 222 |
-
max-width: 86%;
|
| 223 |
-
padding: 9px 12px;
|
| 224 |
-
border-radius: 12px;
|
| 225 |
-
font-size: 13px;
|
| 226 |
-
line-height: 1.5;
|
| 227 |
-
word-wrap: break-word;
|
| 228 |
-
white-space: pre-wrap;
|
| 229 |
-
}
|
| 230 |
-
.rz-msg-user {
|
| 231 |
-
align-self: flex-end;
|
| 232 |
-
background: var(--rz-coral-soft);
|
| 233 |
-
border: 1px solid rgba(255, 122, 89, 0.35);
|
| 234 |
-
color: var(--rz-text);
|
| 235 |
-
}
|
| 236 |
-
.rz-msg-rosie {
|
| 237 |
-
align-self: flex-start;
|
| 238 |
-
background: var(--rz-glass-soft);
|
| 239 |
-
border: 1px solid var(--rz-border);
|
| 240 |
-
}
|
| 241 |
-
.rz-msg-meta {
|
| 242 |
-
font-family: var(--rz-font-mono);
|
| 243 |
-
font-size: 10px;
|
| 244 |
-
color: var(--rz-gold-dim);
|
| 245 |
-
margin-top: 5px;
|
| 246 |
-
word-break: break-all;
|
| 247 |
-
}
|
| 248 |
-
.rz-msg code, .rz-mono {
|
| 249 |
-
font-family: var(--rz-font-mono);
|
| 250 |
-
font-size: 11px;
|
| 251 |
-
background: rgba(0,0,0,0.25);
|
| 252 |
-
padding: 1px 5px;
|
| 253 |
-
border-radius: 4px;
|
| 254 |
-
}
|
| 255 |
-
|
| 256 |
-
.rz-typing { display: flex; gap: 4px; padding: 4px 2px; }
|
| 257 |
-
.rz-typing span {
|
| 258 |
-
width: 6px; height: 6px; border-radius: 50%;
|
| 259 |
-
background: var(--rz-gold-dim);
|
| 260 |
-
animation: rz-bounce 1.2s infinite ease-in-out;
|
| 261 |
-
}
|
| 262 |
-
.rz-typing span:nth-child(2) { animation-delay: 0.15s; }
|
| 263 |
-
.rz-typing span:nth-child(3) { animation-delay: 0.3s; }
|
| 264 |
-
@keyframes rz-bounce {
|
| 265 |
-
0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
|
| 266 |
-
30% { transform: translateY(-4px); opacity: 1; }
|
| 267 |
-
}
|
| 268 |
-
|
| 269 |
-
/* ---- Input ---- */
|
| 270 |
-
.rz-form {
|
| 271 |
-
display: flex;
|
| 272 |
-
gap: 8px;
|
| 273 |
-
padding: 12px;
|
| 274 |
-
border-top: 1px solid var(--rz-border);
|
| 275 |
-
background: rgba(10, 5, 20, 0.55);
|
| 276 |
-
}
|
| 277 |
-
.rz-input {
|
| 278 |
-
flex: 1;
|
| 279 |
-
background: var(--rz-glass-soft);
|
| 280 |
-
border: 1px solid var(--rz-border);
|
| 281 |
-
border-radius: 10px;
|
| 282 |
-
color: var(--rz-text);
|
| 283 |
-
font-family: var(--rz-font-body);
|
| 284 |
-
font-size: 13px;
|
| 285 |
-
padding: 9px 11px;
|
| 286 |
-
resize: none;
|
| 287 |
-
max-height: 90px;
|
| 288 |
-
outline: none;
|
| 289 |
-
}
|
| 290 |
-
.rz-input::placeholder { color: var(--rz-text-muted); }
|
| 291 |
-
.rz-input:focus { border-color: rgba(255, 122, 89, 0.5); }
|
| 292 |
-
.rz-send {
|
| 293 |
-
flex: none;
|
| 294 |
-
width: 38px;
|
| 295 |
-
border: none;
|
| 296 |
-
border-radius: 10px;
|
| 297 |
-
background: var(--rz-coral);
|
| 298 |
-
color: #1a0f2e;
|
| 299 |
-
font-size: 16px;
|
| 300 |
-
cursor: pointer;
|
| 301 |
-
display: grid;
|
| 302 |
-
place-items: center;
|
| 303 |
-
transition: background 0.15s;
|
| 304 |
-
}
|
| 305 |
-
.rz-send:hover { background: #ff8e72; }
|
| 306 |
-
.rz-send:disabled { opacity: 0.5; cursor: not-allowed; }
|
| 307 |
-
.rz-send:focus-visible { outline: 2px solid var(--rz-text); outline-offset: 1px; }
|
| 308 |
-
|
| 309 |
-
/* ---- Toasts ---- */
|
| 310 |
-
.rz-toasts {
|
| 311 |
-
position: absolute;
|
| 312 |
-
right: 0;
|
| 313 |
-
bottom: 80px;
|
| 314 |
-
width: 300px;
|
| 315 |
-
display: flex;
|
| 316 |
-
flex-direction: column;
|
| 317 |
-
gap: 8px;
|
| 318 |
-
pointer-events: none;
|
| 319 |
-
}
|
| 320 |
-
.rz-root[data-open="true"] .rz-toasts { display: none; }
|
| 321 |
-
.rz-toast {
|
| 322 |
-
pointer-events: auto;
|
| 323 |
-
background: var(--rz-glass);
|
| 324 |
-
backdrop-filter: blur(12px);
|
| 325 |
-
-webkit-backdrop-filter: blur(12px);
|
| 326 |
-
border: 1px solid var(--rz-border);
|
| 327 |
-
border-left: 3px solid var(--rz-coral);
|
| 328 |
-
border-radius: 12px;
|
| 329 |
-
padding: 11px 12px;
|
| 330 |
-
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
|
| 331 |
-
font-size: 12.5px;
|
| 332 |
-
line-height: 1.45;
|
| 333 |
-
display: flex;
|
| 334 |
-
gap: 9px;
|
| 335 |
-
align-items: flex-start;
|
| 336 |
-
animation: rz-toast-in 0.28s ease;
|
| 337 |
-
}
|
| 338 |
-
.rz-toast[data-kind="denial"] { border-left-color: var(--rz-warn); }
|
| 339 |
-
.rz-toast[data-kind="build-red"] { border-left-color: var(--rz-warn); }
|
| 340 |
-
.rz-toast[data-kind="build-green"] { border-left-color: var(--rz-ok); }
|
| 341 |
-
.rz-toast-avatar {
|
| 342 |
-
width: 26px; height: 26px; border-radius: 50%;
|
| 343 |
-
object-fit: cover; object-position: center 28%; flex: none;
|
| 344 |
-
border: 1px solid var(--rz-border);
|
| 345 |
-
}
|
| 346 |
-
.rz-toast-body { flex: 1; min-width: 0; }
|
| 347 |
-
.rz-toast-body .rz-toast-meta {
|
| 348 |
-
font-family: var(--rz-font-mono);
|
| 349 |
-
font-size: 10px;
|
| 350 |
-
color: var(--rz-gold-dim);
|
| 351 |
-
margin-top: 4px;
|
| 352 |
-
word-break: break-all;
|
| 353 |
-
}
|
| 354 |
-
.rz-toast-x {
|
| 355 |
-
background: none; border: none; color: var(--rz-text-muted);
|
| 356 |
-
cursor: pointer; font-size: 15px; line-height: 1; padding: 0 2px; flex: none;
|
| 357 |
-
}
|
| 358 |
-
.rz-toast-x:hover { color: var(--rz-text); }
|
| 359 |
-
@keyframes rz-toast-in {
|
| 360 |
-
from { opacity: 0; transform: translateY(14px); }
|
| 361 |
-
to { opacity: 1; transform: translateY(0); }
|
| 362 |
-
}
|
| 363 |
-
.rz-toast.rz-toast-out { animation: rz-toast-out 0.2s ease forwards; }
|
| 364 |
-
@keyframes rz-toast-out {
|
| 365 |
-
to { opacity: 0; transform: translateY(8px); }
|
| 366 |
-
}
|
| 367 |
-
|
| 368 |
-
/* ---- Mobile ---- */
|
| 369 |
-
@media (max-width: 480px) {
|
| 370 |
-
.rz-panel {
|
| 371 |
-
width: calc(100vw - 24px);
|
| 372 |
-
height: calc(100vh - 110px);
|
| 373 |
-
max-height: none;
|
| 374 |
-
right: -8px;
|
| 375 |
-
}
|
| 376 |
-
.rz-toasts { width: calc(100vw - 40px); }
|
| 377 |
-
.rz-fab { width: 56px; height: 56px; }
|
| 378 |
-
}
|
| 379 |
-
|
| 380 |
-
/* ---- Reduced motion ---- */
|
| 381 |
-
@media (prefers-reduced-motion: reduce) {
|
| 382 |
-
.rz-fab { animation: none; }
|
| 383 |
-
.rz-fab:hover { transform: none; }
|
| 384 |
-
.rz-root[data-open="true"] .rz-panel { animation: none; }
|
| 385 |
-
.rz-toast { animation: none; }
|
| 386 |
-
.rz-toast.rz-toast-out { animation: none; opacity: 0; }
|
| 387 |
-
.rz-typing span { animation: none; }
|
| 388 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/rosie/rosie-widget.js
DELETED
|
@@ -1,722 +0,0 @@
|
|
| 1 |
-
/* rosie-widget.js — floating operator widget for SZL Holdings surfaces.
|
| 2 |
-
* Version: 2.0.0 — a11oy LLM/reasoning wired in + quick-action buttons.
|
| 3 |
-
*
|
| 4 |
-
* Rosie is a persistent, character-led interface to the substrate. She is not a
|
| 5 |
-
* destination page. She floats bottom-right, opens to a conversation panel, and
|
| 6 |
-
* surfaces notifications (receipt minted, gate denied, build status, doctrine
|
| 7 |
-
* drift). She ROUTES questions to the substrate backends — she has no model of
|
| 8 |
-
* her own — and is honest when a backend is unreachable.
|
| 9 |
-
*
|
| 10 |
-
* Routing targets (configured via data-* attributes on the script tag):
|
| 11 |
-
* data-a11oy-base -> a11oy: /v1/policy/evaluate, /v1/ledger, /v1/verify, /v1/reason
|
| 12 |
-
* data-amaru-base -> amaru: /v1/reason
|
| 13 |
-
* data-asset-base -> base URL for the rosie portrait PNG
|
| 14 |
-
* data-surface -> name of the host surface (for attribution)
|
| 15 |
-
*
|
| 16 |
-
* Vanilla JS, no dependencies, embeddable anywhere.
|
| 17 |
-
*
|
| 18 |
-
* Author: Stephen P. Lutar Jr. <stephenlutar2@gmail.com>
|
| 19 |
-
* Wire: a11oy LLM/reasoning → rosie cross-Space helper (Wasichaq-III)
|
| 20 |
-
*/
|
| 21 |
-
(function () {
|
| 22 |
-
'use strict';
|
| 23 |
-
if (window.__rosieWidgetLoaded) return;
|
| 24 |
-
window.__rosieWidgetLoaded = true;
|
| 25 |
-
|
| 26 |
-
// ---- Resolve configuration from the script tag's data-* attributes ----
|
| 27 |
-
var script =
|
| 28 |
-
document.currentScript ||
|
| 29 |
-
(function () {
|
| 30 |
-
var s = document.querySelectorAll('script[src*="rosie-widget"]');
|
| 31 |
-
return s.length ? s[s.length - 1] : null;
|
| 32 |
-
})();
|
| 33 |
-
var ds = (script && script.dataset) || {};
|
| 34 |
-
|
| 35 |
-
function trim(u) { return u ? u.replace(/\/+$/, '') : ''; }
|
| 36 |
-
|
| 37 |
-
var CFG = {
|
| 38 |
-
a11oyBase: trim(ds.a11oyBase || ''),
|
| 39 |
-
amaruBase: trim(ds.amaruBase || ''),
|
| 40 |
-
surface: ds.surface || (location.hostname || 'surface'),
|
| 41 |
-
assetBase: trim(ds.assetBase || 'https://szlholdings-readme.static.hf.space/assets'),
|
| 42 |
-
};
|
| 43 |
-
var PORTRAIT = ds.avatar || CFG.assetBase + '/emoji/rosie_emoji.png';
|
| 44 |
-
|
| 45 |
-
var LS_KEY = 'rosie.state.v1';
|
| 46 |
-
var SS_KEY = 'rosie.thread.v1';
|
| 47 |
-
|
| 48 |
-
// ---- Small DOM helpers ----
|
| 49 |
-
function el(tag, attrs, kids) {
|
| 50 |
-
var n = document.createElement(tag);
|
| 51 |
-
if (attrs) {
|
| 52 |
-
for (var k in attrs) {
|
| 53 |
-
if (k === 'class') n.className = attrs[k];
|
| 54 |
-
else if (k === 'text') n.textContent = attrs[k];
|
| 55 |
-
else if (k === 'html') n.innerHTML = attrs[k];
|
| 56 |
-
else if (k.slice(0, 2) === 'on' && typeof attrs[k] === 'function')
|
| 57 |
-
n.addEventListener(k.slice(2), attrs[k]);
|
| 58 |
-
else if (attrs[k] != null) n.setAttribute(k, attrs[k]);
|
| 59 |
-
}
|
| 60 |
-
}
|
| 61 |
-
(kids || []).forEach(function (c) {
|
| 62 |
-
if (c == null) return;
|
| 63 |
-
n.appendChild(typeof c === 'string' ? document.createTextNode(c) : c);
|
| 64 |
-
});
|
| 65 |
-
return n;
|
| 66 |
-
}
|
| 67 |
-
function esc(s) {
|
| 68 |
-
return String(s).replace(/[&<>"']/g, function (c) {
|
| 69 |
-
return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c];
|
| 70 |
-
});
|
| 71 |
-
}
|
| 72 |
-
|
| 73 |
-
// ---- Persistent state ----
|
| 74 |
-
var state = { unread: 0, status: 'unknown' };
|
| 75 |
-
try {
|
| 76 |
-
var saved = JSON.parse(localStorage.getItem(LS_KEY) || '{}');
|
| 77 |
-
if (saved && typeof saved === 'object') {
|
| 78 |
-
if (typeof saved.unread === 'number') state.unread = saved.unread;
|
| 79 |
-
}
|
| 80 |
-
} catch (e) {}
|
| 81 |
-
function persist() {
|
| 82 |
-
try { localStorage.setItem(LS_KEY, JSON.stringify({ unread: state.unread })); } catch (e) {}
|
| 83 |
-
}
|
| 84 |
-
|
| 85 |
-
var thread = [];
|
| 86 |
-
try {
|
| 87 |
-
var t = JSON.parse(sessionStorage.getItem(SS_KEY) || '[]');
|
| 88 |
-
if (Array.isArray(t)) thread = t;
|
| 89 |
-
} catch (e) {}
|
| 90 |
-
function persistThread() {
|
| 91 |
-
try { sessionStorage.setItem(SS_KEY, JSON.stringify(thread.slice(-50))); } catch (e) {}
|
| 92 |
-
}
|
| 93 |
-
|
| 94 |
-
// ---- CSS ----
|
| 95 |
-
var css = [
|
| 96 |
-
'.rz-root{position:fixed;bottom:24px;right:24px;z-index:2147483647;font-family:"Inter",system-ui,sans-serif;font-size:14px;line-height:1.5;}',
|
| 97 |
-
'.rz-fab{width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;',
|
| 98 |
-
'background:linear-gradient(135deg,#ff7a59 0%,#c8415d 100%);',
|
| 99 |
-
'box-shadow:0 4px 20px rgba(255,122,89,0.45);display:flex;align-items:center;justify-content:center;',
|
| 100 |
-
'position:relative;transition:transform .18s,box-shadow .18s;outline:none;}',
|
| 101 |
-
'.rz-fab:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(255,122,89,0.6);}',
|
| 102 |
-
'.rz-fab:focus-visible{outline:3px solid #ff7a59;outline-offset:3px;}',
|
| 103 |
-
'.rz-fab img{width:38px;height:38px;border-radius:50%;object-fit:cover;}',
|
| 104 |
-
'.rz-fab-fallback{color:#fff;font-weight:700;font-size:22px;}',
|
| 105 |
-
'.rz-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;',
|
| 106 |
-
'border-radius:9px;background:#c8415d;color:#fff;font-size:11px;font-weight:700;',
|
| 107 |
-
'display:none;align-items:center;justify-content:center;padding:0 4px;border:2px solid #1a0d2e;}',
|
| 108 |
-
'[data-unread="true"] .rz-badge{display:flex;}',
|
| 109 |
-
'.rz-panel{position:fixed;bottom:92px;right:24px;width:360px;max-width:calc(100vw - 48px);',
|
| 110 |
-
'height:520px;max-height:calc(100vh - 120px);background:#1a0d2e;',
|
| 111 |
-
'border:1px solid rgba(255,122,89,0.25);border-radius:16px;display:none;flex-direction:column;',
|
| 112 |
-
'box-shadow:0 8px 40px rgba(0,0,0,0.6);overflow:hidden;}',
|
| 113 |
-
'[data-open="true"] .rz-panel{display:flex;}',
|
| 114 |
-
'.rz-head{display:flex;align-items:center;gap:10px;padding:12px 14px;',
|
| 115 |
-
'border-bottom:1px solid rgba(255,122,89,0.18);background:rgba(45,27,94,0.6);}',
|
| 116 |
-
'.rz-head-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0;}',
|
| 117 |
-
'.rz-head-text{display:flex;flex-direction:column;flex:1;min-width:0;}',
|
| 118 |
-
'.rz-eyebrow{font-size:9px;letter-spacing:.12em;color:#ff7a59;font-weight:700;text-transform:uppercase;}',
|
| 119 |
-
'.rz-head-name{font-size:13px;font-weight:600;color:#e8e0f0;}',
|
| 120 |
-
'.rz-status{display:flex;align-items:center;gap:5px;margin-left:auto;flex-shrink:0;}',
|
| 121 |
-
'.rz-status-dot{width:8px;height:8px;border-radius:50%;background:#a090c0;transition:background .3s;}',
|
| 122 |
-
'[data-state="ok"] .rz-status-dot{background:#4ade80;}',
|
| 123 |
-
'[data-state="down"] .rz-status-dot{background:#f87171;}',
|
| 124 |
-
'[data-state="unknown"] .rz-status-dot{background:#a090c0;}',
|
| 125 |
-
'.rz-status-label{font-size:11px;color:#a090c0;}',
|
| 126 |
-
'.rz-close{background:none;border:none;color:#a090c0;font-size:20px;cursor:pointer;',
|
| 127 |
-
'padding:0 4px;line-height:1;margin-left:6px;border-radius:4px;transition:color .15s;}',
|
| 128 |
-
'.rz-close:hover{color:#e8e0f0;}',
|
| 129 |
-
|
| 130 |
-
/* Quick action buttons */
|
| 131 |
-
'.rz-quick-actions{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid rgba(255,122,89,0.12);',
|
| 132 |
-
'background:rgba(26,13,46,0.8);flex-wrap:wrap;}',
|
| 133 |
-
'.rz-qa-btn{flex:1;min-width:80px;background:rgba(255,122,89,0.10);border:1px solid rgba(255,122,89,0.25);',
|
| 134 |
-
'color:#ff9c81;font-size:11px;font-family:inherit;border-radius:6px;padding:5px 8px;',
|
| 135 |
-
'cursor:pointer;transition:background .15s,border-color .15s;text-align:center;font-weight:500;',
|
| 136 |
-
'white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}',
|
| 137 |
-
'.rz-qa-btn:hover{background:rgba(255,122,89,0.20);border-color:rgba(255,122,89,0.5);color:#fff;}',
|
| 138 |
-
'.rz-qa-btn:active{background:rgba(255,122,89,0.30);}',
|
| 139 |
-
'.rz-qa-btn:disabled{opacity:0.4;cursor:not-allowed;}',
|
| 140 |
-
|
| 141 |
-
'.rz-thread{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:8px;}',
|
| 142 |
-
'.rz-empty{color:#a090c0;font-size:13px;text-align:center;padding:24px 0;}',
|
| 143 |
-
'.rz-msg{max-width:88%;padding:8px 12px;border-radius:10px;font-size:13px;word-break:break-word;',
|
| 144 |
-
'white-space:pre-wrap;}',
|
| 145 |
-
'.rz-msg-user{align-self:flex-end;background:rgba(255,122,89,0.18);color:#e8e0f0;',
|
| 146 |
-
'border-bottom-right-radius:3px;}',
|
| 147 |
-
'.rz-msg-rosie{align-self:flex-start;background:rgba(45,27,94,0.8);color:#e8e0f0;',
|
| 148 |
-
'border-bottom-left-radius:3px;border:1px solid rgba(255,122,89,0.15);}',
|
| 149 |
-
'.rz-msg-meta{font-size:10px;color:#a090c0;margin-top:4px;font-family:"JetBrains Mono",monospace;}',
|
| 150 |
-
'.rz-typing-wrap{align-self:flex-start;}',
|
| 151 |
-
'.rz-typing{display:flex;gap:4px;padding:10px 14px;background:rgba(45,27,94,0.8);',
|
| 152 |
-
'border-radius:10px;border:1px solid rgba(255,122,89,0.15);}',
|
| 153 |
-
'.rz-typing span{width:6px;height:6px;border-radius:50%;background:#ff7a59;',
|
| 154 |
-
'animation:rz-bounce 1.2s infinite ease-in-out;}',
|
| 155 |
-
'.rz-typing span:nth-child(2){animation-delay:.2s;}',
|
| 156 |
-
'.rz-typing span:nth-child(3){animation-delay:.4s;}',
|
| 157 |
-
'@keyframes rz-bounce{0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-6px);}}',
|
| 158 |
-
'.rz-form{display:flex;align-items:flex-end;gap:6px;padding:10px;border-top:1px solid rgba(255,122,89,0.15);}',
|
| 159 |
-
'.rz-input{flex:1;background:rgba(45,27,94,0.5);border:1px solid rgba(255,122,89,0.25);',
|
| 160 |
-
'border-radius:8px;color:#e8e0f0;font-family:inherit;font-size:13px;padding:7px 10px;',
|
| 161 |
-
'resize:none;max-height:90px;outline:none;transition:border-color .15s;}',
|
| 162 |
-
'.rz-input:focus{border-color:rgba(255,122,89,0.55);}',
|
| 163 |
-
'.rz-input::placeholder{color:#a090c0;}',
|
| 164 |
-
'.rz-send{background:#ff7a59;border:none;border-radius:8px;color:#1a0d2e;',
|
| 165 |
-
'font-weight:700;font-size:16px;width:36px;height:36px;cursor:pointer;flex-shrink:0;',
|
| 166 |
-
'display:flex;align-items:center;justify-content:center;transition:background .15s;}',
|
| 167 |
-
'.rz-send:hover{background:#ff9c81;}',
|
| 168 |
-
'.rz-toasts{position:fixed;bottom:92px;right:24px;display:flex;flex-direction:column;gap:8px;',
|
| 169 |
-
'z-index:2147483646;pointer-events:none;width:320px;max-width:calc(100vw - 48px);}',
|
| 170 |
-
'[data-open="true"] ~ .rz-toasts,.rz-root[data-open="true"] .rz-toasts{bottom:calc(520px + 100px);}',
|
| 171 |
-
'.rz-toast{display:flex;align-items:flex-start;gap:10px;background:#1a0d2e;',
|
| 172 |
-
'border:1px solid rgba(255,122,89,0.25);border-radius:12px;padding:10px 12px;',
|
| 173 |
-
'box-shadow:0 4px 16px rgba(0,0,0,0.5);pointer-events:all;animation:rz-toast-in .2s ease-out;}',
|
| 174 |
-
'@keyframes rz-toast-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}',
|
| 175 |
-
'.rz-toast-out{animation:rz-toast-out .2s ease-in forwards;}',
|
| 176 |
-
'@keyframes rz-toast-out{to{opacity:0;transform:translateY(10px);}}',
|
| 177 |
-
'.rz-toast-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0;}',
|
| 178 |
-
'.rz-toast-body{flex:1;min-width:0;}',
|
| 179 |
-
'.rz-toast-title{font-size:13px;font-weight:600;color:#e8e0f0;}',
|
| 180 |
-
'.rz-toast-text{font-size:12px;color:#a090c0;margin-top:2px;}',
|
| 181 |
-
'.rz-toast-meta{font-size:10px;color:#ff9c81;font-family:"JetBrains Mono",monospace;margin-top:2px;}',
|
| 182 |
-
'.rz-toast-x{background:none;border:none;color:#a090c0;cursor:pointer;font-size:16px;',
|
| 183 |
-
'padding:0 2px;line-height:1;flex-shrink:0;}',
|
| 184 |
-
'[data-kind="receipt"] .rz-toast-title::before{content:"📜 ";}',
|
| 185 |
-
'[data-kind="denial"] .rz-toast-title::before{content:"🚫 ";}',
|
| 186 |
-
'[data-kind="build-green"] .rz-toast-title::before{content:"✅ ";}',
|
| 187 |
-
'[data-kind="build-red"] .rz-toast-title::before{content:"❌ ";}',
|
| 188 |
-
'[data-kind="doctrine"] .rz-toast-title::before{content:"⚠️ ";}',
|
| 189 |
-
].join('');
|
| 190 |
-
|
| 191 |
-
var style = document.createElement('style');
|
| 192 |
-
style.textContent = css;
|
| 193 |
-
(document.head || document.documentElement).appendChild(style);
|
| 194 |
-
|
| 195 |
-
// ---- Build the DOM ----
|
| 196 |
-
var root = el('div', { class: 'rz-root', 'data-open': 'false', 'data-unread': 'false' });
|
| 197 |
-
root.setAttribute('data-rosie', 'widget');
|
| 198 |
-
|
| 199 |
-
// FAB
|
| 200 |
-
var fabImg = el('img', { src: PORTRAIT, alt: '', 'aria-hidden': 'true' });
|
| 201 |
-
fabImg.addEventListener('error', function () {
|
| 202 |
-
fabImg.style.display = 'none';
|
| 203 |
-
fab.appendChild(el('span', { class: 'rz-fab-fallback', text: 'R' }));
|
| 204 |
-
});
|
| 205 |
-
var badge = el('span', { class: 'rz-badge', 'aria-hidden': 'true' });
|
| 206 |
-
var fab = el(
|
| 207 |
-
'button',
|
| 208 |
-
{
|
| 209 |
-
class: 'rz-fab',
|
| 210 |
-
type: 'button',
|
| 211 |
-
'aria-label': 'Open Rosie, the operator assistant',
|
| 212 |
-
'aria-haspopup': 'dialog',
|
| 213 |
-
'aria-expanded': 'false',
|
| 214 |
-
},
|
| 215 |
-
[fabImg, badge]
|
| 216 |
-
);
|
| 217 |
-
|
| 218 |
-
// Panel header
|
| 219 |
-
var headAvatar = el('img', { class: 'rz-head-avatar', src: PORTRAIT, alt: '' });
|
| 220 |
-
var statusDot = el('span', { class: 'rz-status-dot' });
|
| 221 |
-
var statusLabel = el('span', { class: 'rz-status-label', text: 'checking' });
|
| 222 |
-
var statusEl = el('span', { class: 'rz-status', 'data-state': 'unknown' }, [statusDot, statusLabel]);
|
| 223 |
-
var closeBtn = el('button', {
|
| 224 |
-
class: 'rz-close', type: 'button', 'aria-label': 'Close Rosie', text: '\u00d7',
|
| 225 |
-
});
|
| 226 |
-
var head = el('div', { class: 'rz-head' }, [
|
| 227 |
-
headAvatar,
|
| 228 |
-
el('div', { class: 'rz-head-text' }, [
|
| 229 |
-
el('span', { class: 'rz-eyebrow', text: 'ROSIE' }),
|
| 230 |
-
el('span', { class: 'rz-head-name', text: 'Cross-Space Operator' }),
|
| 231 |
-
]),
|
| 232 |
-
statusEl,
|
| 233 |
-
closeBtn,
|
| 234 |
-
]);
|
| 235 |
-
|
| 236 |
-
// Quick action buttons
|
| 237 |
-
var qaReceipt = el('button', {
|
| 238 |
-
class: 'rz-qa-btn', type: 'button', title: 'Show last 10 receipts from a11oy ledger',
|
| 239 |
-
text: '📜 Last receipt',
|
| 240 |
-
onclick: function() { open(); quickAction('receipt'); }
|
| 241 |
-
});
|
| 242 |
-
var qaVerify = el('button', {
|
| 243 |
-
class: 'rz-qa-btn', type: 'button', title: "Verify this page's receipt chain integrity",
|
| 244 |
-
text: '🔐 Verify chain',
|
| 245 |
-
onclick: function() { open(); quickAction('verify'); }
|
| 246 |
-
});
|
| 247 |
-
var qaPolicy = el('button', {
|
| 248 |
-
class: 'rz-qa-btn', type: 'button', title: 'Evaluate a sample policy action',
|
| 249 |
-
text: '⚖️ Evaluate policy',
|
| 250 |
-
onclick: function() { open(); quickAction('policy'); }
|
| 251 |
-
});
|
| 252 |
-
var qaReason = el('button', {
|
| 253 |
-
class: 'rz-qa-btn', type: 'button', title: 'Ask a11oy to explain this Space',
|
| 254 |
-
text: '🧠 Ask a11oy',
|
| 255 |
-
onclick: function() { open(); quickAction('reason'); }
|
| 256 |
-
});
|
| 257 |
-
var quickActions = el('div', { class: 'rz-quick-actions' }, [qaReceipt, qaVerify, qaPolicy, qaReason]);
|
| 258 |
-
|
| 259 |
-
var threadEl = el('div', { class: 'rz-thread', role: 'log', 'aria-live': 'polite', 'aria-label': 'Conversation with Rosie' });
|
| 260 |
-
|
| 261 |
-
var input = el('textarea', {
|
| 262 |
-
class: 'rz-input', rows: '1', placeholder: 'Ask Rosie about the substrate\u2026',
|
| 263 |
-
'aria-label': 'Message to Rosie',
|
| 264 |
-
});
|
| 265 |
-
var sendBtn = el('button', { class: 'rz-send', type: 'submit', 'aria-label': 'Send', html: '➤' });
|
| 266 |
-
var form = el('form', { class: 'rz-form' }, [input, sendBtn]);
|
| 267 |
-
|
| 268 |
-
var panel = el('div', {
|
| 269 |
-
class: 'rz-panel', role: 'dialog', 'aria-label': 'Rosie operator assistant', 'aria-modal': 'false',
|
| 270 |
-
}, [head, quickActions, threadEl, form]);
|
| 271 |
-
|
| 272 |
-
var toasts = el('div', { class: 'rz-toasts', 'aria-live': 'polite', 'aria-label': 'Rosie notifications' });
|
| 273 |
-
|
| 274 |
-
root.appendChild(toasts);
|
| 275 |
-
root.appendChild(panel);
|
| 276 |
-
root.appendChild(fab);
|
| 277 |
-
|
| 278 |
-
function mount() {
|
| 279 |
-
if (!document.body) { document.addEventListener('DOMContentLoaded', mount); return; }
|
| 280 |
-
document.body.appendChild(root);
|
| 281 |
-
renderThread();
|
| 282 |
-
refreshBadge();
|
| 283 |
-
checkStatus();
|
| 284 |
-
}
|
| 285 |
-
mount();
|
| 286 |
-
|
| 287 |
-
// ---- Open / close ----
|
| 288 |
-
var isOpen = false;
|
| 289 |
-
function open() {
|
| 290 |
-
isOpen = true;
|
| 291 |
-
root.setAttribute('data-open', 'true');
|
| 292 |
-
fab.setAttribute('aria-expanded', 'true');
|
| 293 |
-
state.unread = 0; persist(); refreshBadge();
|
| 294 |
-
if (!thread.length) renderThread();
|
| 295 |
-
setTimeout(function () { input.focus(); }, 60);
|
| 296 |
-
scrollThread();
|
| 297 |
-
}
|
| 298 |
-
function close() {
|
| 299 |
-
isOpen = false;
|
| 300 |
-
root.setAttribute('data-open', 'false');
|
| 301 |
-
fab.setAttribute('aria-expanded', 'false');
|
| 302 |
-
fab.focus();
|
| 303 |
-
}
|
| 304 |
-
function toggle() { isOpen ? close() : open(); }
|
| 305 |
-
|
| 306 |
-
fab.addEventListener('click', toggle);
|
| 307 |
-
closeBtn.addEventListener('click', close);
|
| 308 |
-
document.addEventListener('keydown', function (e) {
|
| 309 |
-
if (e.key === 'Escape' && isOpen) { close(); }
|
| 310 |
-
});
|
| 311 |
-
|
| 312 |
-
// ---- Thread rendering ----
|
| 313 |
-
function refreshBadge() {
|
| 314 |
-
root.setAttribute('data-unread', state.unread > 0 ? 'true' : 'false');
|
| 315 |
-
badge.textContent = state.unread > 9 ? '9+' : String(state.unread || '');
|
| 316 |
-
}
|
| 317 |
-
function scrollThread() {
|
| 318 |
-
requestAnimationFrame(function () { threadEl.scrollTop = threadEl.scrollHeight; });
|
| 319 |
-
}
|
| 320 |
-
function renderThread() {
|
| 321 |
-
threadEl.innerHTML = '';
|
| 322 |
-
if (!thread.length) {
|
| 323 |
-
var em = el('div', { class: 'rz-empty' });
|
| 324 |
-
em.innerHTML =
|
| 325 |
-
'<strong>Hi, I\u2019m Rosie.</strong><br>' +
|
| 326 |
-
'Ask me anything about the substrate, or use the quick buttons above.' +
|
| 327 |
-
'<br><br><small style="color:#6b5a88">Surface: <em>' + esc(CFG.surface) + '</em>' +
|
| 328 |
-
(CFG.a11oyBase ? ' \u2022 a11oy wired' : ' \u2022 a11oy not configured') + '</small>';
|
| 329 |
-
threadEl.appendChild(em);
|
| 330 |
-
return;
|
| 331 |
-
}
|
| 332 |
-
thread.forEach(function (m) { threadEl.appendChild(renderMsg(m)); });
|
| 333 |
-
scrollThread();
|
| 334 |
-
}
|
| 335 |
-
function renderMsg(m) {
|
| 336 |
-
var cls = m.role === 'user' ? 'rz-msg rz-msg-user' : 'rz-msg rz-msg-rosie';
|
| 337 |
-
var node = el('div', { class: cls });
|
| 338 |
-
node.innerHTML = esc(m.text).replace(/\n/g, '<br>');
|
| 339 |
-
if (m.meta) node.appendChild(el('div', { class: 'rz-msg-meta', text: m.meta }));
|
| 340 |
-
if (m.dsse) {
|
| 341 |
-
var dsseNode = el('div', { class: 'rz-msg-meta' });
|
| 342 |
-
dsseNode.innerHTML = '<strong>DSSE envelope:</strong> ' + esc(m.dsse);
|
| 343 |
-
node.appendChild(dsseNode);
|
| 344 |
-
}
|
| 345 |
-
return node;
|
| 346 |
-
}
|
| 347 |
-
function pushMsg(role, text, meta, dsse) {
|
| 348 |
-
var m = { role: role, text: text, meta: meta || null, ts: Date.now(), dsse: dsse || null };
|
| 349 |
-
thread.push(m); persistThread();
|
| 350 |
-
if (!thread.length) return;
|
| 351 |
-
if (threadEl.querySelector('.rz-empty')) threadEl.innerHTML = '';
|
| 352 |
-
threadEl.appendChild(renderMsg(m));
|
| 353 |
-
scrollThread();
|
| 354 |
-
return m;
|
| 355 |
-
}
|
| 356 |
-
function showTyping() {
|
| 357 |
-
var t = el('div', { class: 'rz-msg rz-msg-rosie rz-typing-wrap' }, [
|
| 358 |
-
el('div', { class: 'rz-typing' }, [el('span'), el('span'), el('span')]),
|
| 359 |
-
]);
|
| 360 |
-
threadEl.appendChild(t); scrollThread();
|
| 361 |
-
return t;
|
| 362 |
-
}
|
| 363 |
-
|
| 364 |
-
// ---- Backend status (honest) ----
|
| 365 |
-
function checkStatus() {
|
| 366 |
-
if (!CFG.a11oyBase) { setStatus('unknown', 'not configured'); return; }
|
| 367 |
-
fetchJson(CFG.a11oyBase + '/v1/health', { method: 'GET' }, 4000)
|
| 368 |
-
.then(function () { setStatus('ok', 'substrate online'); })
|
| 369 |
-
.catch(function () { setStatus('down', 'substrate unreachable'); });
|
| 370 |
-
}
|
| 371 |
-
function setStatus(s, label) {
|
| 372 |
-
state.status = s;
|
| 373 |
-
statusEl.setAttribute('data-state', s);
|
| 374 |
-
statusLabel.textContent = label;
|
| 375 |
-
}
|
| 376 |
-
|
| 377 |
-
// ---- Networking ----
|
| 378 |
-
function fetchJson(url, opts, timeoutMs) {
|
| 379 |
-
opts = opts || {};
|
| 380 |
-
var ctrl = typeof AbortController !== 'undefined' ? new AbortController() : null;
|
| 381 |
-
if (ctrl) opts.signal = ctrl.signal;
|
| 382 |
-
opts.headers = Object.assign({ 'Content-Type': 'application/json' }, opts.headers || {});
|
| 383 |
-
opts.credentials = 'include';
|
| 384 |
-
var timer = ctrl ? setTimeout(function () { ctrl.abort(); }, timeoutMs || 12000) : null;
|
| 385 |
-
return fetch(url, opts).then(function (r) {
|
| 386 |
-
if (timer) clearTimeout(timer);
|
| 387 |
-
if (!r.ok) { var e = new Error('HTTP ' + r.status); e.status = r.status; throw e; }
|
| 388 |
-
var ct = r.headers.get('content-type') || '';
|
| 389 |
-
return ct.indexOf('application/json') >= 0 ? r.json() : r.text();
|
| 390 |
-
}).catch(function (e) { if (timer) clearTimeout(timer); throw e; });
|
| 391 |
-
}
|
| 392 |
-
|
| 393 |
-
// ---- Quick Actions ----
|
| 394 |
-
function disableQA(disabled) {
|
| 395 |
-
[qaReceipt, qaVerify, qaPolicy, qaReason].forEach(function(b) { b.disabled = disabled; });
|
| 396 |
-
}
|
| 397 |
-
|
| 398 |
-
function quickAction(kind) {
|
| 399 |
-
disableQA(true);
|
| 400 |
-
var typing = showTyping();
|
| 401 |
-
var done = function() { typing.remove(); disableQA(false); };
|
| 402 |
-
|
| 403 |
-
if (kind === 'receipt') {
|
| 404 |
-
pushMsg('user', '\uD83D\uDCDC Show last receipts');
|
| 405 |
-
if (!CFG.a11oyBase) {
|
| 406 |
-
done();
|
| 407 |
-
pushMsg('rosie', "a11oy is not configured on this surface. I can't fetch the ledger without it.");
|
| 408 |
-
return;
|
| 409 |
-
}
|
| 410 |
-
fetchJson(CFG.a11oyBase + '/v1/ledger?limit=10', { method: 'GET' }, 14000)
|
| 411 |
-
.then(function(data) {
|
| 412 |
-
done();
|
| 413 |
-
var items = data.receipts || data.items || data.results || (Array.isArray(data) ? data : null);
|
| 414 |
-
if (!items || !items.length) {
|
| 415 |
-
pushMsg('rosie', 'No receipts in the ledger yet. The chain is empty.'); return;
|
| 416 |
-
}
|
| 417 |
-
var top = items[0];
|
| 418 |
-
var hash = top.hash || top.receipt_id || top.id || top.digest;
|
| 419 |
-
var root_hash = data.root_hash || data.dag_root || null;
|
| 420 |
-
var head_seq = data.head_seq || data.total || null;
|
| 421 |
-
var msg = 'Khipu Merkle DAG: ' + items.length + ' receipt(s) returned.';
|
| 422 |
-
if (head_seq != null) msg += '\nHead seq: ' + head_seq;
|
| 423 |
-
if (root_hash) msg += '\nRoot hash: ' + root_hash;
|
| 424 |
-
msg += '\n\nMost recent receipt:';
|
| 425 |
-
if (top.action) msg += '\n action: ' + top.action;
|
| 426 |
-
if (top.timestamp_utc || top.ts || top.timestamp) msg += '\n time: ' + (top.timestamp_utc || top.ts || top.timestamp);
|
| 427 |
-
pushMsg('rosie', msg, hash ? 'receipt ' + hash : null);
|
| 428 |
-
setStatus('ok', 'ledger \u2713');
|
| 429 |
-
})
|
| 430 |
-
.catch(function(err) { done(); handleNetErr(err); });
|
| 431 |
-
|
| 432 |
-
} else if (kind === 'verify') {
|
| 433 |
-
pushMsg('user', '\uD83D\uDD10 Verify this page\u2019s claims');
|
| 434 |
-
if (!CFG.a11oyBase) {
|
| 435 |
-
done();
|
| 436 |
-
pushMsg('rosie', "a11oy is not configured on this surface. I can't verify without it.");
|
| 437 |
-
return;
|
| 438 |
-
}
|
| 439 |
-
fetchJson(CFG.a11oyBase + '/v1/verify', {
|
| 440 |
-
method: 'POST',
|
| 441 |
-
body: JSON.stringify({ surface: CFG.surface, ledger: [] })
|
| 442 |
-
}, 14000)
|
| 443 |
-
.then(function(data) {
|
| 444 |
-
done();
|
| 445 |
-
var ok = data.verified === true || data.valid === true || data.ok === true;
|
| 446 |
-
var dsseSnippet = null;
|
| 447 |
-
if (data.envelope || data.dsse) {
|
| 448 |
-
var env = data.envelope || data.dsse;
|
| 449 |
-
dsseSnippet = 'DSSE payload: ' + (env.payload || '').slice(0, 32) + '...' +
|
| 450 |
-
' | keyid: ' + ((env.signatures || [{}])[0].keyid || '?') +
|
| 451 |
-
' | NOTE: PLACEHOLDER \u2014 signing not yet wired into CI';
|
| 452 |
-
}
|
| 453 |
-
pushMsg('rosie',
|
| 454 |
-
ok ? 'Chain verified \u2014 the receipts I checked are intact.'
|
| 455 |
-
: "Verification did not pass. I'm flagging this so it can be looked at.",
|
| 456 |
-
data.hash || data.head ? 'head ' + (data.hash || data.head) : null,
|
| 457 |
-
dsseSnippet);
|
| 458 |
-
setStatus(ok ? 'ok' : 'down', ok ? 'chain valid' : 'chain invalid');
|
| 459 |
-
})
|
| 460 |
-
.catch(function(err) { done(); handleNetErr(err); });
|
| 461 |
-
|
| 462 |
-
} else if (kind === 'policy') {
|
| 463 |
-
var sampleAction = 'deploy-to-production on surface:' + CFG.surface;
|
| 464 |
-
pushMsg('user', '\u2696\uFE0F Evaluate policy: ' + sampleAction);
|
| 465 |
-
if (!CFG.a11oyBase) {
|
| 466 |
-
done();
|
| 467 |
-
pushMsg('rosie', "a11oy is not configured on this surface. I can't evaluate policy without it.");
|
| 468 |
-
return;
|
| 469 |
-
}
|
| 470 |
-
fetchJson(CFG.a11oyBase + '/v1/policy/evaluate', {
|
| 471 |
-
method: 'POST',
|
| 472 |
-
body: JSON.stringify({
|
| 473 |
-
actionId: 'landing-demo',
|
| 474 |
-
action: sampleAction,
|
| 475 |
-
surface: CFG.surface,
|
| 476 |
-
severity: 'medium',
|
| 477 |
-
confidence: 0.9,
|
| 478 |
-
witnesses: ['agent-a', 'agent-b']
|
| 479 |
-
})
|
| 480 |
-
}, 14000)
|
| 481 |
-
.then(function(data) {
|
| 482 |
-
done();
|
| 483 |
-
var decision = (data.decision || data.verdict || (data.allowed === true ? 'allow' : data.allowed === false ? 'deny' : '')).toString().toLowerCase();
|
| 484 |
-
var gate = data.gate || data.gate_id || data.rule || null;
|
| 485 |
-
if (decision.indexOf('deny') >= 0) {
|
| 486 |
-
pushMsg('rosie',
|
| 487 |
-
"Policy would deny that action" + (data.reason ? ': ' + data.reason : '.'),
|
| 488 |
-
gate ? 'gate ' + gate : null);
|
| 489 |
-
} else if (decision.indexOf('allow') >= 0) {
|
| 490 |
-
pushMsg('rosie',
|
| 491 |
-
'Policy would allow that. Operator confirmation still required before anything is signed.',
|
| 492 |
-
gate ? 'gate ' + gate : null);
|
| 493 |
-
} else {
|
| 494 |
-
pushMsg('rosie', 'Policy engine returned:\n' + safeJson(data));
|
| 495 |
-
}
|
| 496 |
-
setStatus('ok', 'policy \u2713');
|
| 497 |
-
})
|
| 498 |
-
.catch(function(err) { done(); handleNetErr(err); });
|
| 499 |
-
|
| 500 |
-
} else if (kind === 'reason') {
|
| 501 |
-
var q = 'How does this Space (' + CFG.surface + ') work? What are its key capabilities?';
|
| 502 |
-
pushMsg('user', '\uD83E\uDDE0 ' + q);
|
| 503 |
-
// Route to a11oy /v1/reason first, fall back to /v1/policy/evaluate as general Q&A
|
| 504 |
-
var reasonBase = CFG.amaruBase || CFG.a11oyBase;
|
| 505 |
-
var reasonPath = CFG.amaruBase ? '/v1/reason' : '/v1/reason';
|
| 506 |
-
if (!reasonBase) {
|
| 507 |
-
done();
|
| 508 |
-
pushMsg('rosie',
|
| 509 |
-
"Neither a11oy nor amaru are configured on this surface yet. " +
|
| 510 |
-
"Once wired, I'll route your question to the substrate's reasoning engine.\n\n" +
|
| 511 |
-
"This surface (" + CFG.surface + ") is part of the SZL Holdings UDS mesh. " +
|
| 512 |
-
"Ask me again once the endpoints are live.");
|
| 513 |
-
return;
|
| 514 |
-
}
|
| 515 |
-
fetchJson(reasonBase + reasonPath, {
|
| 516 |
-
method: 'POST',
|
| 517 |
-
body: JSON.stringify({ prompt: q, surface: CFG.surface, question: q })
|
| 518 |
-
}, 20000)
|
| 519 |
-
.then(function(data) {
|
| 520 |
-
done();
|
| 521 |
-
var ans = data.answer || data.reasoning || data.text || data.output || data.result || data.response;
|
| 522 |
-
pushMsg('rosie',
|
| 523 |
-
ans ? String(ans) : 'The reasoning engine responded:\n' + safeJson(data),
|
| 524 |
-
data.confidence != null ? 'confidence ' + data.confidence : null);
|
| 525 |
-
setStatus('ok', 'reasoning \u2713');
|
| 526 |
-
})
|
| 527 |
-
.catch(function(err) { done(); handleNetErr(err); });
|
| 528 |
-
}
|
| 529 |
-
}
|
| 530 |
-
|
| 531 |
-
// ---- Routing: decide which substrate endpoint a question goes to ----
|
| 532 |
-
function route(q) {
|
| 533 |
-
var s = q.toLowerCase();
|
| 534 |
-
if (/\b(verify|chain|integrity|tamper)\b/.test(s) && CFG.a11oyBase)
|
| 535 |
-
return { svc: 'a11oy', path: '/v1/verify', method: 'POST', body: { query: q, surface: CFG.surface } };
|
| 536 |
-
if (/\b(receipt|ledger|minted|hash|history|log|khipu|dag)\b/.test(s) && CFG.a11oyBase)
|
| 537 |
-
return { svc: 'a11oy', path: '/v1/ledger', method: 'GET', query: { q: q, limit: 5 } };
|
| 538 |
-
if (/\b(can i|should i|allowed|policy|permit|deny|gate|propose|execute)\b/.test(s) && CFG.a11oyBase)
|
| 539 |
-
return { svc: 'a11oy', path: '/v1/policy/evaluate', method: 'POST', body: { action: q, surface: CFG.surface } };
|
| 540 |
-
if (/\b(how|what|explain|describe|reason|why|tell me)\b/.test(s)) {
|
| 541 |
-
if (CFG.amaruBase) return { svc: 'amaru', path: '/v1/reason', method: 'POST', body: { prompt: q, surface: CFG.surface } };
|
| 542 |
-
if (CFG.a11oyBase) return { svc: 'a11oy', path: '/v1/reason', method: 'POST', body: { prompt: q, surface: CFG.surface } };
|
| 543 |
-
}
|
| 544 |
-
if (CFG.amaruBase)
|
| 545 |
-
return { svc: 'amaru', path: '/v1/reason', method: 'POST', body: { prompt: q, surface: CFG.surface } };
|
| 546 |
-
if (CFG.a11oyBase)
|
| 547 |
-
return { svc: 'a11oy', path: '/v1/policy/evaluate', method: 'POST', body: { action: q, surface: CFG.surface } };
|
| 548 |
-
return null;
|
| 549 |
-
}
|
| 550 |
-
|
| 551 |
-
function baseFor(svc) { return svc === 'amaru' ? CFG.amaruBase : CFG.a11oyBase; }
|
| 552 |
-
|
| 553 |
-
function handleNetErr(err) {
|
| 554 |
-
if (err && err.status) {
|
| 555 |
-
pushMsg('rosie', "The substrate answered with an error (" + err.status + "). I won't guess what it meant \u2014 try rephrasing, or check the service.");
|
| 556 |
-
} else {
|
| 557 |
-
pushMsg('rosie', "I can't reach the substrate right now, so I won't make up an answer. I'll keep trying \u2014 ask me again in a moment.");
|
| 558 |
-
setStatus('down', 'substrate unreachable');
|
| 559 |
-
}
|
| 560 |
-
}
|
| 561 |
-
|
| 562 |
-
function ask(q) {
|
| 563 |
-
pushMsg('user', q);
|
| 564 |
-
var r = route(q);
|
| 565 |
-
if (!r) {
|
| 566 |
-
pushMsg('rosie', "I'm not wired to a backend on this surface yet, so I can't answer that honestly. Once a11oy or amaru is configured here, I'll route your question to the substrate.");
|
| 567 |
-
return;
|
| 568 |
-
}
|
| 569 |
-
var typing = showTyping();
|
| 570 |
-
var url = baseFor(r.svc) + r.path;
|
| 571 |
-
if (r.query) {
|
| 572 |
-
var qs = Object.keys(r.query).map(function (k) { return encodeURIComponent(k) + '=' + encodeURIComponent(r.query[k]); }).join('&');
|
| 573 |
-
url += (url.indexOf('?') >= 0 ? '&' : '?') + qs;
|
| 574 |
-
}
|
| 575 |
-
var opts = { method: r.method };
|
| 576 |
-
if (r.body && r.method !== 'GET') opts.body = JSON.stringify(r.body);
|
| 577 |
-
|
| 578 |
-
fetchJson(url, opts, 14000)
|
| 579 |
-
.then(function (data) {
|
| 580 |
-
typing.remove();
|
| 581 |
-
renderAnswer(r, data);
|
| 582 |
-
setStatus('ok', 'substrate online');
|
| 583 |
-
})
|
| 584 |
-
.catch(function (err) {
|
| 585 |
-
typing.remove();
|
| 586 |
-
handleNetErr(err);
|
| 587 |
-
});
|
| 588 |
-
}
|
| 589 |
-
|
| 590 |
-
// ---- Turn a substrate response into Rosie's voice (no fabrication) ----
|
| 591 |
-
function renderAnswer(r, data) {
|
| 592 |
-
if (data == null || (typeof data === 'object' && Object.keys(data).length === 0)) {
|
| 593 |
-
pushMsg('rosie', "The substrate responded, but there was nothing to show \u2014 no matching records. That's an honest empty result, not an error.");
|
| 594 |
-
return;
|
| 595 |
-
}
|
| 596 |
-
if (typeof data === 'string') { pushMsg('rosie', data); return; }
|
| 597 |
-
|
| 598 |
-
if (r.path === '/v1/ledger') {
|
| 599 |
-
var items = data.receipts || data.items || data.results || (Array.isArray(data) ? data : null);
|
| 600 |
-
if (!items || !items.length) {
|
| 601 |
-
pushMsg('rosie', "No matching receipts in the ledger. Nothing's been minted for that query.");
|
| 602 |
-
return;
|
| 603 |
-
}
|
| 604 |
-
var top = items[0];
|
| 605 |
-
var hash = top.hash || top.receipt_id || top.id || top.digest;
|
| 606 |
-
var root_hash = data.root_hash || data.dag_root || null;
|
| 607 |
-
var msg = 'Found ' + items.length + ' receipt' + (items.length === 1 ? '' : 's') + '.';
|
| 608 |
-
if (root_hash) msg += '\nKhipu DAG root: ' + root_hash;
|
| 609 |
-
if (top.action) msg += '\nMost recent: ' + top.action;
|
| 610 |
-
pushMsg('rosie', msg, hash ? 'receipt ' + hash : null);
|
| 611 |
-
return;
|
| 612 |
-
}
|
| 613 |
-
if (r.path === '/v1/verify') {
|
| 614 |
-
var ok = data.verified === true || data.valid === true || data.ok === true;
|
| 615 |
-
var dsseSnippet = null;
|
| 616 |
-
if (data.envelope || data.dsse) {
|
| 617 |
-
var env = data.envelope || data.dsse;
|
| 618 |
-
dsseSnippet = 'DSSE | keyid: ' + ((env.signatures || [{}])[0].keyid || '?') +
|
| 619 |
-
' | PLACEHOLDER \u2014 signing not yet wired into CI';
|
| 620 |
-
}
|
| 621 |
-
pushMsg('rosie',
|
| 622 |
-
ok ? 'Chain verified \u2014 the receipts I checked are intact.'
|
| 623 |
-
: "Verification did not pass. I'm flagging this so it can be looked at, not hiding it.",
|
| 624 |
-
data.hash || data.head ? 'head ' + (data.hash || data.head) : null,
|
| 625 |
-
dsseSnippet);
|
| 626 |
-
return;
|
| 627 |
-
}
|
| 628 |
-
if (r.path === '/v1/policy/evaluate') {
|
| 629 |
-
var decision = (data.decision || data.verdict || (data.allowed === true ? 'allow' : data.allowed === false ? 'deny' : '') || '').toString().toLowerCase();
|
| 630 |
-
var gate = data.gate || data.gate_id || data.rule || null;
|
| 631 |
-
if (decision.indexOf('deny') >= 0 || data.allowed === false) {
|
| 632 |
-
pushMsg('rosie',
|
| 633 |
-
"That action would be denied by policy" + (data.reason ? ': ' + data.reason : '.') + ' I won\u2019t propose anything the gates reject.',
|
| 634 |
-
gate ? 'gate ' + gate : null);
|
| 635 |
-
} else if (decision.indexOf('allow') >= 0 || data.allowed === true) {
|
| 636 |
-
pushMsg('rosie',
|
| 637 |
-
'Policy would allow that. It still needs an operator to confirm before anything is signed.',
|
| 638 |
-
gate ? 'gate ' + gate : null);
|
| 639 |
-
} else {
|
| 640 |
-
pushMsg('rosie', 'The policy engine returned a decision I should show you directly:\n' + safeJson(data));
|
| 641 |
-
}
|
| 642 |
-
return;
|
| 643 |
-
}
|
| 644 |
-
if (r.svc === 'amaru' || r.path === '/v1/reason') {
|
| 645 |
-
var ans = data.answer || data.reasoning || data.text || data.output || data.result || data.response;
|
| 646 |
-
pushMsg('rosie', ans ? String(ans) : 'The reasoning engine responded:\n' + safeJson(data),
|
| 647 |
-
data.confidence != null ? 'confidence ' + data.confidence : null);
|
| 648 |
-
return;
|
| 649 |
-
}
|
| 650 |
-
pushMsg('rosie', safeJson(data));
|
| 651 |
-
}
|
| 652 |
-
function safeJson(o) {
|
| 653 |
-
try { var s = JSON.stringify(o, null, 2); return s.length > 800 ? s.slice(0, 800) + '\u2026' : s; }
|
| 654 |
-
catch (e) { return String(o); }
|
| 655 |
-
}
|
| 656 |
-
|
| 657 |
-
// ---- Input handling ----
|
| 658 |
-
form.addEventListener('submit', function (e) {
|
| 659 |
-
e.preventDefault();
|
| 660 |
-
var q = input.value.trim();
|
| 661 |
-
if (!q) return;
|
| 662 |
-
input.value = '';
|
| 663 |
-
input.style.height = 'auto';
|
| 664 |
-
ask(q);
|
| 665 |
-
});
|
| 666 |
-
input.addEventListener('input', function () {
|
| 667 |
-
input.style.height = 'auto';
|
| 668 |
-
input.style.height = Math.min(input.scrollHeight, 90) + 'px';
|
| 669 |
-
});
|
| 670 |
-
input.addEventListener('keydown', function (e) {
|
| 671 |
-
if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); form.requestSubmit ? form.requestSubmit() : form.dispatchEvent(new Event('submit', { cancelable: true })); }
|
| 672 |
-
});
|
| 673 |
-
|
| 674 |
-
// ---- Notifications API ----
|
| 675 |
-
function notify(opts) {
|
| 676 |
-
opts = opts || {};
|
| 677 |
-
var kind = opts.kind || 'info';
|
| 678 |
-
var avatar = el('img', { class: 'rz-toast-avatar', src: PORTRAIT, alt: '' });
|
| 679 |
-
var body = el('div', { class: 'rz-toast-body' });
|
| 680 |
-
body.appendChild(el('div', { class: 'rz-toast-title', html: '<strong>' + esc(opts.title || 'Rosie') + '</strong>' }));
|
| 681 |
-
if (opts.body) body.appendChild(el('div', { class: 'rz-toast-text', text: opts.body }));
|
| 682 |
-
if (opts.meta) body.appendChild(el('div', { class: 'rz-toast-meta', text: opts.meta }));
|
| 683 |
-
|
| 684 |
-
var toast;
|
| 685 |
-
function dismiss() {
|
| 686 |
-
if (!toast) return;
|
| 687 |
-
toast.classList.add('rz-toast-out');
|
| 688 |
-
setTimeout(function () { if (toast && toast.parentNode) toast.parentNode.removeChild(toast); }, 220);
|
| 689 |
-
}
|
| 690 |
-
var x = el('button', { class: 'rz-toast-x', type: 'button', 'aria-label': 'Dismiss', text: '\u00d7', onclick: dismiss });
|
| 691 |
-
toast = el('div', { class: 'rz-toast', 'data-kind': kind, role: 'status' }, [avatar, body, x]);
|
| 692 |
-
toasts.appendChild(toast);
|
| 693 |
-
|
| 694 |
-
pushMsg('rosie', (opts.title ? opts.title + (opts.body ? ' \u2014 ' + opts.body : '') : opts.body || ''), opts.meta);
|
| 695 |
-
|
| 696 |
-
if (!isOpen) { state.unread = (state.unread || 0) + 1; persist(); refreshBadge(); }
|
| 697 |
-
if (!opts.sticky) setTimeout(dismiss, opts.duration || 8000);
|
| 698 |
-
return { dismiss: dismiss };
|
| 699 |
-
}
|
| 700 |
-
|
| 701 |
-
// ---- Public API ----
|
| 702 |
-
window.Rosie = {
|
| 703 |
-
open: open,
|
| 704 |
-
close: close,
|
| 705 |
-
toggle: toggle,
|
| 706 |
-
ask: function (q) { open(); ask(q); },
|
| 707 |
-
notify: notify,
|
| 708 |
-
config: CFG,
|
| 709 |
-
receiptMinted: function (hash, what) {
|
| 710 |
-
return notify({ kind: 'receipt', title: 'New receipt minted', body: what || 'A signed receipt was added to the ledger.', meta: hash ? 'receipt ' + hash : null });
|
| 711 |
-
},
|
| 712 |
-
gateDenied: function (gate, what) {
|
| 713 |
-
return notify({ kind: 'denial', title: 'Policy denied an action', body: what || 'A proposed action was rejected by the gates.', meta: gate ? 'gate ' + gate : null });
|
| 714 |
-
},
|
| 715 |
-
build: function (green, detail) {
|
| 716 |
-
return notify({ kind: green ? 'build-green' : 'build-red', title: green ? 'Build is green' : 'Build is red', body: detail || '' });
|
| 717 |
-
},
|
| 718 |
-
doctrineDrift: function (detail) {
|
| 719 |
-
return notify({ kind: 'doctrine', title: 'Doctrine drift detected', body: detail || 'Something diverged from doctrine. Worth a look.' });
|
| 720 |
-
},
|
| 721 |
-
};
|
| 722 |
-
})();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/rosie_avatar.png
DELETED
Git LFS Details
|
assets/sentra_avatar.png
DELETED
Git LFS Details
|
assets/szl_banner.png
DELETED
Git LFS Details
|
assets/vessels_avatar.png
DELETED
Git LFS Details
|
css/style.css
DELETED
|
@@ -1,89 +0,0 @@
|
|
| 1 |
-
/* style.css — minimal, mostly defaults. SZL palette: deep purple + gold. */
|
| 2 |
-
:root{
|
| 3 |
-
--purple-deep:#12091f; --purple-mid:#2d1b4e; --gold:#d4af37; --gold-light:#e8cc6a;
|
| 4 |
-
--text-main:#e8e0f0; --text-muted:#a090c0; --text-dim:#7060a0;
|
| 5 |
-
--font-head:'Cinzel',Georgia,serif; --font-mono:'JetBrains Mono','Fira Code',monospace;
|
| 6 |
-
}
|
| 7 |
-
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
|
| 8 |
-
html,body{height:100%;}
|
| 9 |
-
body{
|
| 10 |
-
background:var(--purple-deep);color:var(--text-main);
|
| 11 |
-
font-family:'Inter',system-ui,-apple-system,sans-serif;line-height:1.6;
|
| 12 |
-
-webkit-font-smoothing:antialiased;overflow-x:hidden;
|
| 13 |
-
background-image:radial-gradient(circle at 50% -10%,rgba(61,40,120,0.5),transparent 55%),
|
| 14 |
-
radial-gradient(circle at 90% 10%,rgba(212,175,55,0.07),transparent 45%);
|
| 15 |
-
}
|
| 16 |
-
.skip{position:absolute;left:-9999px;top:0.5rem;z-index:99;padding:.5rem 1rem;background:var(--gold);color:#150b22;font-weight:700;border-radius:4px;}
|
| 17 |
-
.skip:focus{left:1rem;}
|
| 18 |
-
|
| 19 |
-
/* Header / footer banding */
|
| 20 |
-
.roster-header,.roster-footer{text-align:center;font-family:var(--font-mono);letter-spacing:.18em;
|
| 21 |
-
text-transform:uppercase;color:var(--gold-light);padding:1.1rem 1rem .6rem;font-size:clamp(.62rem,1.6vw,.86rem);}
|
| 22 |
-
.roster-footer{color:var(--text-muted);padding:.7rem 1rem 1.4rem;font-size:clamp(.56rem,1.4vw,.74rem);}
|
| 23 |
-
.roster-footer b{color:var(--gold);}
|
| 24 |
-
.tagline{text-align:center;font-family:var(--font-head);color:var(--gold);
|
| 25 |
-
font-size:clamp(1.1rem,3vw,1.8rem);padding:.4rem 1rem 0;}
|
| 26 |
-
.tagline small{display:block;font-family:var(--font-mono);text-transform:none;letter-spacing:.04em;
|
| 27 |
-
font-size:.62rem;color:var(--text-dim);margin-top:.4rem;}
|
| 28 |
-
|
| 29 |
-
/* The 3D stage */
|
| 30 |
-
#stage{position:relative;width:100%;height:min(70vh,640px);min-height:420px;}
|
| 31 |
-
#roster{display:block;width:100%;height:100%;}
|
| 32 |
-
#roster[hidden]{display:none;}
|
| 33 |
-
/* When the static grid is the visible child (no JS / no WebGL / org card),
|
| 34 |
-
let the stage size to content instead of the fixed canvas height. */
|
| 35 |
-
#stage:has(#fallback:not([hidden])){height:auto;min-height:0;}
|
| 36 |
-
#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
|
| 37 |
-
font-family:var(--font-mono);color:var(--text-dim);font-size:.8rem;letter-spacing:.1em;}
|
| 38 |
-
|
| 39 |
-
/* Holographic hover panel */
|
| 40 |
-
.hover-panel{position:absolute;transform:translate(-50%,-100%);min-width:240px;max-width:300px;
|
| 41 |
-
padding:.8rem .9rem;pointer-events:none;opacity:0;transition:opacity .18s ease-out;z-index:40;
|
| 42 |
-
background:linear-gradient(180deg,rgba(18,9,31,.92),rgba(18,9,31,.78));
|
| 43 |
-
border:1px solid var(--hc,#d4af37);border-radius:10px;
|
| 44 |
-
box-shadow:0 0 24px -4px var(--hc,#d4af37),inset 0 0 18px -8px var(--hc,#d4af37);
|
| 45 |
-
backdrop-filter:blur(6px);}
|
| 46 |
-
.hover-panel.hp-visible{opacity:1;}
|
| 47 |
-
.hover-panel::after{content:'';position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
|
| 48 |
-
width:0;height:0;border:7px solid transparent;border-top-color:var(--hc,#d4af37);}
|
| 49 |
-
.hp-name{font-family:var(--font-mono);font-weight:700;font-size:1.05rem;letter-spacing:.08em;}
|
| 50 |
-
.hp-role{font-size:.62rem;color:var(--text-muted);margin:.1rem 0 .5rem;}
|
| 51 |
-
.hp-head{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.22em;color:var(--text-dim);
|
| 52 |
-
border-top:1px solid rgba(255,255,255,.12);padding-top:.4rem;margin-bottom:.4rem;}
|
| 53 |
-
.hp-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;}
|
| 54 |
-
.hp-line{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;
|
| 55 |
-
color:var(--text-main);min-height:22px;opacity:.25;}
|
| 56 |
-
.hp-line.hp-shown{opacity:1;}
|
| 57 |
-
.hp-line.hp-pulse{animation:hp-pulse 1.4s ease-in-out infinite;}
|
| 58 |
-
@keyframes hp-pulse{0%,100%{filter:none;}50%{filter:drop-shadow(0 0 5px var(--hc));}}
|
| 59 |
-
.sp-icon{display:inline-flex;width:22px;height:22px;flex:0 0 22px;}
|
| 60 |
-
.sp-static *{animation:none !important;}
|
| 61 |
-
.hp-text{white-space:nowrap;overflow:hidden;}
|
| 62 |
-
|
| 63 |
-
/* Accessible focus proxies (visually hidden but focusable) */
|
| 64 |
-
.a11y-heroes{position:absolute;width:1px;height:1px;overflow:hidden;}
|
| 65 |
-
.a11y-heroes button{width:1px;height:1px;}
|
| 66 |
-
.a11y-hero:focus{position:fixed;left:8px;top:8px;width:auto;height:auto;z-index:200;
|
| 67 |
-
padding:.4rem .7rem;background:var(--gold);color:#150b22;border:0;border-radius:4px;
|
| 68 |
-
font-family:var(--font-mono);font-size:.7rem;}
|
| 69 |
-
|
| 70 |
-
/* SVG fallback grid (WebGL unavailable) */
|
| 71 |
-
#fallback[hidden]{display:none;}
|
| 72 |
-
#fallback{max-width:1100px;margin:1rem auto;padding:0 1rem;}
|
| 73 |
-
.fb-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;}
|
| 74 |
-
.fb-cell{display:flex;flex-direction:column;align-items:center;text-decoration:none;
|
| 75 |
-
background:#0a0e14;border:1px solid rgba(212,175,55,.18);border-radius:14px;padding:.9rem;
|
| 76 |
-
transition:transform .2s,border-color .2s;}
|
| 77 |
-
.fb-cell:hover,.fb-cell:focus-visible{transform:translateY(-4px);border-color:var(--gold);}
|
| 78 |
-
.fb-cell img{width:100%;aspect-ratio:1/1;border-radius:12px;}
|
| 79 |
-
.fb-name{font-family:var(--font-head);color:var(--gold);margin-top:.5rem;}
|
| 80 |
-
.fb-role{font-family:var(--font-mono);font-size:.6rem;color:var(--text-dim);
|
| 81 |
-
text-transform:uppercase;letter-spacing:.06em;text-align:center;}
|
| 82 |
-
@media(max-width:900px){.fb-grid{grid-template-columns:repeat(3,1fr);}}
|
| 83 |
-
@media(max-width:560px){.fb-grid{grid-template-columns:repeat(2,1fr);}}
|
| 84 |
-
|
| 85 |
-
@media(prefers-reduced-motion:reduce){
|
| 86 |
-
.hover-panel{transition:none;}
|
| 87 |
-
.hp-line.hp-pulse{animation:none;}
|
| 88 |
-
.sp-anim *{animation:none !important;}
|
| 89 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cursor_reinstill.json
DELETED
|
@@ -1,144 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"space": "SZLHOLDINGS/README",
|
| 3 |
-
"kind": "org-card (static)",
|
| 4 |
-
"reinstill_session": "OPUS 4.8 Cursor re-instill \u2014 group G",
|
| 5 |
-
"shipped_utc": "2026-06-01T03:30:00Z",
|
| 6 |
-
"doctrine": "v10",
|
| 7 |
-
"doctrine_numbers": {
|
| 8 |
-
"declarations": 749,
|
| 9 |
-
"unique_axioms": 14,
|
| 10 |
-
"tracked_sorries": 163,
|
| 11 |
-
"mcp_tools": 12,
|
| 12 |
-
"policy_gates": 46,
|
| 13 |
-
"anchor_gates": 44,
|
| 14 |
-
"raw_axioms": 15,
|
| 15 |
-
"sorries_baseline": 112,
|
| 16 |
-
"sorries_putnam": 51
|
| 17 |
-
},
|
| 18 |
-
"honesty_note": "749 declarations / 14 unique axioms (15 raw, 1 dup) / 163 tracked sorries (112 baseline + 51 Putnam) per lean_numbers.py @ c7c0ba17. v18 'zero sorry' claim is FALSE. \u039b uniqueness is a Conjecture (CAUCHY_ND sorry). Prior 456/6 re-audit was wrong.",
|
| 19 |
-
"integration_mode": "un-doctrine corrections only (additive metadata fix); org card is a static HTML/markdown Space \u2014 Cursor coordination/SDK/AGENTS PRs recorded as provenance.",
|
| 20 |
-
"files_corrected": [
|
| 21 |
-
{
|
| 22 |
-
"file": "README.md",
|
| 23 |
-
"changes": [
|
| 24 |
-
"declarations stated as canonical 749",
|
| 25 |
-
"tracked sorries stated as canonical 163 (112 baseline + 51 Putnam)",
|
| 26 |
-
"unique axioms 14 (15 raw, 1 dup)",
|
| 27 |
-
"11 MCP tools -> 12 MCP tools",
|
| 28 |
-
"Doctrine v9 -> Doctrine v10 (footer); retired the earlier 456/6 figures from a stale clone"
|
| 29 |
-
]
|
| 30 |
-
},
|
| 31 |
-
{
|
| 32 |
-
"file": "index.html",
|
| 33 |
-
"changes": [
|
| 34 |
-
"Doctrine v9 -> Doctrine v10 (meta description)",
|
| 35 |
-
"Doctrine v9 -> Doctrine v10 (og:description)",
|
| 36 |
-
"Doctrine v9 -> Doctrine v10 (footer)"
|
| 37 |
-
]
|
| 38 |
-
}
|
| 39 |
-
],
|
| 40 |
-
"founder_locked_preserved": [
|
| 41 |
-
"assets/szl_banner.png (HF banner)",
|
| 42 |
-
"5 painterly hero avatars: rosie/a11oy/amaru/sentra/vessels _avatar.png",
|
| 43 |
-
"animated emoji layer (assets/emoji/*_emoji.png) on org card"
|
| 44 |
-
],
|
| 45 |
-
"cursor_prs_recorded": [
|
| 46 |
-
{
|
| 47 |
-
"repo": "szl-holdings/.github",
|
| 48 |
-
"pr": 74,
|
| 49 |
-
"cat": "anatomy",
|
| 50 |
-
"title": "feat(anatomy-alive): Perplexity cross-organ integration"
|
| 51 |
-
},
|
| 52 |
-
{
|
| 53 |
-
"repo": "szl-holdings/szl-brand",
|
| 54 |
-
"pr": 40,
|
| 55 |
-
"cat": "feature",
|
| 56 |
-
"title": "Transform szl-brand into a real Python SDK"
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
"repo": "szl-holdings/.github",
|
| 60 |
-
"pr": 86,
|
| 61 |
-
"cat": "feature",
|
| 62 |
-
"title": "docs(coordination): CURSOR_MASTER_DIRECTIVE \u2014 Series-A"
|
| 63 |
-
},
|
| 64 |
-
{
|
| 65 |
-
"repo": "szl-holdings/.github",
|
| 66 |
-
"pr": 97,
|
| 67 |
-
"cat": "doctrine",
|
| 68 |
-
"title": "docs(coordination): Cursor master directive FINAL"
|
| 69 |
-
},
|
| 70 |
-
{
|
| 71 |
-
"repo": "szl-holdings/.github",
|
| 72 |
-
"pr": 83,
|
| 73 |
-
"cat": "proof",
|
| 74 |
-
"title": "feat(coordination): Cursor instillation operational plan"
|
| 75 |
-
},
|
| 76 |
-
{
|
| 77 |
-
"repo": "szl-holdings/.github",
|
| 78 |
-
"pr": 82,
|
| 79 |
-
"cat": "feature",
|
| 80 |
-
"title": "feat(coordination): CTO+PM consolidated 30-day operational plan"
|
| 81 |
-
},
|
| 82 |
-
{
|
| 83 |
-
"repo": "szl-holdings/.github",
|
| 84 |
-
"pr": 89,
|
| 85 |
-
"cat": "feature",
|
| 86 |
-
"title": "[CURSOR DIRECTIVE] INSTILL ALL THEORIES \u2014 Tier 0-4"
|
| 87 |
-
},
|
| 88 |
-
{
|
| 89 |
-
"repo": "szl-holdings/.github",
|
| 90 |
-
"pr": 90,
|
| 91 |
-
"cat": "feature",
|
| 92 |
-
"title": "[CURSOR MASTER] ONE-OF-ONE Directive \u2014 28 PhD agents"
|
| 93 |
-
},
|
| 94 |
-
{
|
| 95 |
-
"repo": "szl-holdings/.github",
|
| 96 |
-
"pr": 73,
|
| 97 |
-
"cat": "uds",
|
| 98 |
-
"title": "chore(coordination): UDS v0.3.0 release-cut directive"
|
| 99 |
-
},
|
| 100 |
-
{
|
| 101 |
-
"repo": "szl-holdings/.github",
|
| 102 |
-
"pr": 72,
|
| 103 |
-
"cat": "anatomy",
|
| 104 |
-
"title": "chore(coordination): Cursor Phase 1 \u2014 innovate & evolve"
|
| 105 |
-
},
|
| 106 |
-
{
|
| 107 |
-
"repo": "szl-holdings/.github",
|
| 108 |
-
"pr": 79,
|
| 109 |
-
"cat": "doctrine",
|
| 110 |
-
"title": "chore(coordination): Cursor full throttle \u2014 all tracks"
|
| 111 |
-
},
|
| 112 |
-
{
|
| 113 |
-
"repo": "szl-holdings/.github",
|
| 114 |
-
"pr": 68,
|
| 115 |
-
"cat": "anatomy",
|
| 116 |
-
"title": "chore(coordination): P0 directive \u2014 make anatomy real"
|
| 117 |
-
},
|
| 118 |
-
{
|
| 119 |
-
"repo": "szl-holdings/szl-brand",
|
| 120 |
-
"pr": 39,
|
| 121 |
-
"cat": "feature",
|
| 122 |
-
"title": "Add AGENTS.md with Cursor Cloud development environment"
|
| 123 |
-
},
|
| 124 |
-
{
|
| 125 |
-
"repo": "szl-holdings/.github",
|
| 126 |
-
"pr": 56,
|
| 127 |
-
"cat": "feature",
|
| 128 |
-
"title": "docs: add AGENTS.md with Cursor Cloud development instructions"
|
| 129 |
-
},
|
| 130 |
-
{
|
| 131 |
-
"repo": "szl-holdings/.github",
|
| 132 |
-
"pr": 81,
|
| 133 |
-
"cat": "doctrine",
|
| 134 |
-
"title": "fix(docs): repair broken anatomy PDF links in org profile"
|
| 135 |
-
}
|
| 136 |
-
],
|
| 137 |
-
"cursor_prs_count": 15,
|
| 138 |
-
"ip_hold_untouched": [
|
| 139 |
-
"a11oy#57",
|
| 140 |
-
"amaru#46",
|
| 141 |
-
"sentra#45"
|
| 142 |
-
],
|
| 143 |
-
"canonical_ref": "lutar-lean tag lutar-v18.0.0 / c7c0ba17"
|
| 144 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
demo.html
DELETED
|
@@ -1,313 +0,0 @@
|
|
| 1 |
-
<!DOCTYPE html>
|
| 2 |
-
<html lang="en">
|
| 3 |
-
<head>
|
| 4 |
-
<meta charset="utf-8" />
|
| 5 |
-
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
| 6 |
-
<title>SZL Holdings — Live Demo Surfaces</title>
|
| 7 |
-
<meta name="description" content="Public demo landing for the SZL Holdings sovereign agentic mesh: 5 organs, unified operator shell, formulas, ensemble vote, and provenance." />
|
| 8 |
-
<meta name="theme-color" content="#0A0E1A" />
|
| 9 |
-
<meta property="og:type" content="website" />
|
| 10 |
-
<meta property="og:title" content="SZL Holdings — Live Demo Surfaces" />
|
| 11 |
-
<meta property="og:description" content="Public index of the SZL Holdings sovereign agentic mesh: five organs, unified operator shell, formulas, ensemble vote, and provenance. Status pills are live, never faked." />
|
| 12 |
-
<meta property="og:url" content="https://huggingface.co/spaces/SZLHOLDINGS/README" />
|
| 13 |
-
<meta name="twitter:card" content="summary_large_image" />
|
| 14 |
-
<meta name="twitter:title" content="SZL Holdings — Live Demo Surfaces" />
|
| 15 |
-
<meta name="twitter:description" content="Five organs, unified operator shell, formulas, ensemble vote, and provenance. Status pills are live, never faked." />
|
| 16 |
-
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='13' fill='none' stroke='%23D4A444' stroke-width='2'/%3E%3Ccircle cx='16' cy='16' r='4' fill='%2300C389'/%3E%3C/svg%3E" />
|
| 17 |
-
<style>
|
| 18 |
-
/* Operator-shell palette (sovereign, no external CDN) */
|
| 19 |
-
:root{
|
| 20 |
-
--bg:#0A0E1A; --bg-elev:#0f1424; --card:#141a2e; --card-2:#11162a;
|
| 21 |
-
--line:#1e2640; --line-2:#283154;
|
| 22 |
-
--fg:#E2E8F0; --muted:#94A3B8; --dim:#64748B;
|
| 23 |
-
--green:#00C389; --amber:#F0B429; --red:#DF2A4A; --offline:#64748B; --anomaly:#7C3AED;
|
| 24 |
-
--gold:#D4A444;
|
| 25 |
-
}
|
| 26 |
-
*{box-sizing:border-box}
|
| 27 |
-
html,body{margin:0;padding:0}
|
| 28 |
-
body{
|
| 29 |
-
background:
|
| 30 |
-
radial-gradient(1100px 520px at 78% -8%, rgba(124,58,237,.10), transparent 60%),
|
| 31 |
-
radial-gradient(900px 460px at 8% 4%, rgba(0,195,137,.07), transparent 55%),
|
| 32 |
-
var(--bg);
|
| 33 |
-
color:var(--fg);
|
| 34 |
-
font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
|
| 35 |
-
-webkit-font-smoothing:antialiased; line-height:1.5;
|
| 36 |
-
}
|
| 37 |
-
code,.mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
|
| 38 |
-
a{color:inherit;text-decoration:none}
|
| 39 |
-
.wrap{max-width:1180px;margin:0 auto;padding:32px 22px 72px}
|
| 40 |
-
|
| 41 |
-
header.hero{padding:14px 0 26px;border-bottom:1px solid var(--line)}
|
| 42 |
-
.kicker{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:700}
|
| 43 |
-
h1{font-size:clamp(28px,4.5vw,44px);margin:10px 0 8px;letter-spacing:-.01em;font-weight:800}
|
| 44 |
-
.lead{color:var(--muted);max-width:760px;font-size:15px}
|
| 45 |
-
.doctrine{display:inline-flex;gap:8px;flex-wrap:wrap;margin-top:16px}
|
| 46 |
-
.pill-doc{font-size:11px;color:var(--gold);border:1px solid rgba(212,164,68,.5);
|
| 47 |
-
border-radius:999px;padding:4px 11px;letter-spacing:.04em}
|
| 48 |
-
|
| 49 |
-
section{margin-top:40px}
|
| 50 |
-
.sec-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:18px}
|
| 51 |
-
h2{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--fg);margin:0;font-weight:700}
|
| 52 |
-
.sec-sub{font-size:12px;color:var(--dim)}
|
| 53 |
-
|
| 54 |
-
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
|
| 55 |
-
.card{
|
| 56 |
-
background:linear-gradient(180deg,var(--card),var(--card-2));
|
| 57 |
-
border:1px solid var(--line);border-radius:14px;padding:16px 16px 14px;
|
| 58 |
-
transition:border-color .16s ease,transform .16s ease;display:flex;flex-direction:column;min-height:128px;
|
| 59 |
-
}
|
| 60 |
-
.card:hover{border-color:var(--line-2);transform:translateY(-2px)}
|
| 61 |
-
.card .top{display:flex;align-items:center;justify-content:space-between;gap:10px}
|
| 62 |
-
.card .title{font-weight:700;font-size:15px}
|
| 63 |
-
.card .desc{color:var(--muted);font-size:12.5px;margin-top:7px;flex:1}
|
| 64 |
-
.card .url{margin-top:11px;font-size:11px;color:var(--dim);word-break:break-all}
|
| 65 |
-
.card .url:hover{color:var(--green)}
|
| 66 |
-
|
| 67 |
-
.pill{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;
|
| 68 |
-
letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;
|
| 69 |
-
border:1px solid var(--line-2);color:var(--dim);background:rgba(255,255,255,.02);white-space:nowrap}
|
| 70 |
-
.dot{width:8px;height:8px;border-radius:50%;background:var(--offline);flex:0 0 auto}
|
| 71 |
-
.pill.green{color:var(--green);border-color:rgba(0,195,137,.45)} .pill.green .dot{background:var(--green);box-shadow:0 0 8px rgba(0,195,137,.7)}
|
| 72 |
-
.pill.amber{color:var(--amber);border-color:rgba(240,180,41,.45)} .pill.amber .dot{background:var(--amber)}
|
| 73 |
-
.pill.red{color:var(--red);border-color:rgba(223,42,74,.45)} .pill.red .dot{background:var(--red)}
|
| 74 |
-
.pill.gray .dot{background:var(--offline)}
|
| 75 |
-
|
| 76 |
-
footer.honest{margin-top:54px;border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:12.5px}
|
| 77 |
-
footer.honest .row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
|
| 78 |
-
footer.honest .tag{font-size:11px;border:1px solid var(--line-2);border-radius:6px;padding:3px 9px;color:var(--muted)}
|
| 79 |
-
footer.honest p{max-width:820px}
|
| 80 |
-
footer.honest .sig{color:var(--dim);font-size:11px;margin-top:14px}
|
| 81 |
-
.nav{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:12px}
|
| 82 |
-
.nav a{color:var(--muted);border-bottom:1px solid transparent;padding-bottom:2px}
|
| 83 |
-
.nav a:hover{color:var(--gold);border-color:var(--gold)}
|
| 84 |
-
|
| 85 |
-
/* ===== v2 visual polish (additive; CSS-only, no copy changed) ===== */
|
| 86 |
-
html{scroll-behavior:smooth}
|
| 87 |
-
::selection{background:rgba(212,164,68,.28)}
|
| 88 |
-
*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
|
| 89 |
-
::-webkit-scrollbar{width:10px;height:10px}
|
| 90 |
-
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px}
|
| 91 |
-
::-webkit-scrollbar-thumb:hover{background:#33406e}
|
| 92 |
-
@keyframes szlRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
|
| 93 |
-
@keyframes szlFade{from{opacity:0}to{opacity:1}}
|
| 94 |
-
@keyframes szlAurora{0%{transform:translate3d(-4%,-2%,0) scale(1)}50%{transform:translate3d(4%,3%,0) scale(1.08)}100%{transform:translate3d(-4%,-2%,0) scale(1)}}
|
| 95 |
-
@keyframes szlPulse{0%,100%{box-shadow:0 0 6px rgba(0,195,137,.55)}50%{box-shadow:0 0 13px rgba(0,195,137,.95)}}
|
| 96 |
-
body::before{content:"";position:fixed;inset:-25% -12% auto -12%;height:78vh;z-index:-1;pointer-events:none;
|
| 97 |
-
background:radial-gradient(620px 320px at 20% 18%,rgba(124,58,237,.16),transparent 62%),
|
| 98 |
-
radial-gradient(560px 300px at 82% 6%,rgba(0,195,137,.12),transparent 62%);
|
| 99 |
-
filter:blur(22px);animation:szlAurora 24s ease-in-out infinite}
|
| 100 |
-
header.hero{animation:szlRise .7s cubic-bezier(.2,.7,.2,1) both}
|
| 101 |
-
section{animation:szlFade .9s ease both}
|
| 102 |
-
.card{animation:szlRise .55s cubic-bezier(.2,.7,.2,1) both;will-change:transform,opacity}
|
| 103 |
-
.grid .card:nth-child(1){animation-delay:.02s}
|
| 104 |
-
.grid .card:nth-child(2){animation-delay:.08s}
|
| 105 |
-
.grid .card:nth-child(3){animation-delay:.14s}
|
| 106 |
-
.grid .card:nth-child(4){animation-delay:.20s}
|
| 107 |
-
.grid .card:nth-child(5){animation-delay:.26s}
|
| 108 |
-
.grid .card:nth-child(6){animation-delay:.32s}
|
| 109 |
-
.card:hover{box-shadow:0 14px 34px -16px rgba(0,0,0,.7)}
|
| 110 |
-
.card .pill .dot{transition:box-shadow .3s ease}
|
| 111 |
-
.pill.green .dot{animation:szlPulse 2.2s ease-in-out infinite}
|
| 112 |
-
.pill-doc{transition:border-color .2s ease,color .2s ease,background .2s ease}
|
| 113 |
-
.pill-doc:hover{background:rgba(212,164,68,.10);border-color:rgba(212,164,68,.85)}
|
| 114 |
-
a.card:focus-visible,.nav a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:12px}
|
| 115 |
-
@supports ((-webkit-background-clip:text) or (background-clip:text)){
|
| 116 |
-
h1{background:linear-gradient(180deg,#ffffff,#c9d4ea);-webkit-background-clip:text;background-clip:text;color:transparent}
|
| 117 |
-
}
|
| 118 |
-
@media (max-width:520px){
|
| 119 |
-
.wrap{padding:22px 15px 56px}
|
| 120 |
-
.grid{grid-template-columns:1fr}
|
| 121 |
-
.nav{gap:12px}
|
| 122 |
-
.sec-head{flex-wrap:wrap;gap:6px}
|
| 123 |
-
}
|
| 124 |
-
@media (prefers-reduced-motion:reduce){
|
| 125 |
-
*,body::before{animation:none!important;transition:none!important}
|
| 126 |
-
html{scroll-behavior:auto}
|
| 127 |
-
}
|
| 128 |
-
</style>
|
| 129 |
-
</head>
|
| 130 |
-
<body>
|
| 131 |
-
<div class="wrap">
|
| 132 |
-
|
| 133 |
-
<header class="hero">
|
| 134 |
-
<div class="kicker">SZL Holdings · Sovereign Agentic Mesh</div>
|
| 135 |
-
<h1>Live Demo Surfaces</h1>
|
| 136 |
-
<p class="lead">A public index of every reachable surface in the SZL flagship mesh — five organs, the unified
|
| 137 |
-
4-pane operator shell, the formula corpus, the multi-LLM ensemble vote, and the provenance trail.
|
| 138 |
-
Status pills below are <strong>live</strong>: each card probes its own <code>/healthz</code> in your browser.
|
| 139 |
-
Endpoints that aren't live yet show <strong>gray</strong> — never faked.</p>
|
| 140 |
-
<div class="doctrine">
|
| 141 |
-
<span class="pill-doc">Doctrine v11 LOCKED</span>
|
| 142 |
-
<span class="pill-doc">749 / 14 / 163</span>
|
| 143 |
-
<span class="pill-doc">Λ — Conjecture 1 (NOT a theorem)</span>
|
| 144 |
-
<span class="pill-doc">SLSA L1 honest (L2 in progress)</span>
|
| 145 |
-
<span class="pill-doc">Apache-2.0</span>
|
| 146 |
-
</div>
|
| 147 |
-
<nav class="nav">
|
| 148 |
-
<a href="#organs">Organs</a>
|
| 149 |
-
<a href="#shell">Unified shell</a>
|
| 150 |
-
<a href="#reason">Reasoning</a>
|
| 151 |
-
<a href="#organ-apis">Organ APIs</a>
|
| 152 |
-
<a href="#prov">Provenance</a>
|
| 153 |
-
<a href="#status">Status</a>
|
| 154 |
-
</nav>
|
| 155 |
-
</header>
|
| 156 |
-
|
| 157 |
-
<!-- ============ ORGANS ============ -->
|
| 158 |
-
<section id="organs">
|
| 159 |
-
<div class="sec-head"><h2>Five Organs — Operator Consoles</h2><span class="sec-sub">/operator on each Space</span></div>
|
| 160 |
-
<div class="grid" id="grid-organs"></div>
|
| 161 |
-
</section>
|
| 162 |
-
|
| 163 |
-
<!-- ============ UNIFIED SHELL ============ -->
|
| 164 |
-
<section id="shell">
|
| 165 |
-
<div class="sec-head"><h2>Unified 4-Pane Operator Shell</h2><span class="sec-sub">/unified — terrain · panel · cmd-K · receipt tunnel</span></div>
|
| 166 |
-
<div class="grid" id="grid-unified"></div>
|
| 167 |
-
</section>
|
| 168 |
-
|
| 169 |
-
<!-- ============ REASONING / FRONTIER ============ -->
|
| 170 |
-
<section id="reason">
|
| 171 |
-
<div class="sec-head"><h2>Reasoning, Formulas & Ensemble</h2><span class="sec-sub">a11oy frontier surfaces</span></div>
|
| 172 |
-
<div class="grid" id="grid-reason"></div>
|
| 173 |
-
</section>
|
| 174 |
-
|
| 175 |
-
<!-- ============ ORGAN APIs ============ -->
|
| 176 |
-
<section id="organ-apis">
|
| 177 |
-
<div class="sec-head"><h2>Organ-Specific APIs</h2><span class="sec-sub">inspect · cortex · honest · drones · frontier formulas</span></div>
|
| 178 |
-
<div class="grid" id="grid-apis"></div>
|
| 179 |
-
</section>
|
| 180 |
-
|
| 181 |
-
<!-- ============ PROVENANCE ============ -->
|
| 182 |
-
<section id="prov">
|
| 183 |
-
<div class="sec-head"><h2>Provenance & Releases</h2><span class="sec-sub">GitHub releases · DOIs · MCP gateway</span></div>
|
| 184 |
-
<div class="grid" id="grid-prov"></div>
|
| 185 |
-
</section>
|
| 186 |
-
|
| 187 |
-
<!-- ============ STATUS ============ -->
|
| 188 |
-
<section id="status">
|
| 189 |
-
<div class="sec-head"><h2>Mesh Status & Anatomy</h2><span class="sec-sub">live status board · organ anatomy gallery</span></div>
|
| 190 |
-
<div class="grid" id="grid-status"></div>
|
| 191 |
-
</section>
|
| 192 |
-
|
| 193 |
-
<footer class="honest">
|
| 194 |
-
<div class="row">
|
| 195 |
-
<span class="tag">Doctrine v11 LOCKED · locked_at c7c0ba17</span>
|
| 196 |
-
<span class="tag">749 declarations / 14 axioms / 163 sorries</span>
|
| 197 |
-
<span class="tag">Λ = Conjecture 1 (NOT a theorem)</span>
|
| 198 |
-
<span class="tag">SLSA L1 honest (L2 in progress)</span>
|
| 199 |
-
<span class="tag">Apache-2.0</span>
|
| 200 |
-
</div>
|
| 201 |
-
<p><strong>Honest disclosures.</strong> The Lean corpus carries <strong>163 open <code>sorry</code></strong> placeholders
|
| 202 |
-
across 749 declarations and 14 axioms — these are <em>not</em> closed proofs. The <strong>Λ result is Conjecture 1</strong>,
|
| 203 |
-
explicitly not a theorem. Supply-chain provenance is <strong>SLSA Level 1</strong>, stated honestly rather than
|
| 204 |
-
overclaimed. Some surfaces listed here (frontier formula APIs, certain drone endpoints) may show <strong>gray / red</strong>
|
| 205 |
-
when a parallel build is still in progress — pills reflect real-time probes, never fabricated liveness.
|
| 206 |
-
All code is licensed <strong>Apache-2.0</strong>; the mesh runs without any external CDN (sovereign).</p>
|
| 207 |
-
<div class="sig mono">Built by Yachay <yachay@szlholdings.dev> · Co-Authored-By: Perplexity Computer Agent · Signed-off-by: Yachay · Change-class: ADDITIVE</div>
|
| 208 |
-
</footer>
|
| 209 |
-
|
| 210 |
-
</div>
|
| 211 |
-
|
| 212 |
-
<script>
|
| 213 |
-
// ---- Surface catalog -------------------------------------------------------
|
| 214 |
-
// Each entry: title, desc, href (link target), probe (URL fetched for the pill),
|
| 215 |
-
// probeMode: "json"(expect 2xx) | "ok"(expect 2xx) | "static"(no probe, neutral).
|
| 216 |
-
const ORG = "https://szlholdings-";
|
| 217 |
-
|
| 218 |
-
const ORGANS = [
|
| 219 |
-
{t:"a11oy — Operator", d:"Reasoning & governance organ. Gates, evidence, Ouroboros run-all.", href:ORG+"a11oy.hf.space/operator", probe:ORG+"a11oy.hf.space/healthz"},
|
| 220 |
-
{t:"sentra — Operator", d:"Sentinel / fail-closed verdicts. Yuyay gates, threat scoring.", href:ORG+"sentra.hf.space/operator", probe:ORG+"sentra.hf.space/healthz"},
|
| 221 |
-
{t:"amaru — Operator", d:"Memory & cortex organ. Recall, DAG, chakra tick clock.", href:ORG+"amaru.hf.space/operator", probe:ORG+"amaru.hf.space/healthz"},
|
| 222 |
-
{t:"rosie — Operator", d:"Companion / understudy organ. RAG, kernels, connections.", href:ORG+"rosie.hf.space/operator", probe:ORG+"rosie.hf.space/healthz"},
|
| 223 |
-
{t:"killinchu — Operator", d:"Drone / mission organ. Geofence, UDS missions, globe.", href:ORG+"killinchu.hf.space/operator", probe:ORG+"killinchu.hf.space/healthz"},
|
| 224 |
-
];
|
| 225 |
-
|
| 226 |
-
const UNIFIED = [
|
| 227 |
-
{t:"a11oy — Unified shell", d:"4-pane shell: terrain · right panel · ⌘K · receipt tunnel.", href:ORG+"a11oy.hf.space/unified", probe:ORG+"a11oy.hf.space/healthz"},
|
| 228 |
-
{t:"sentra — Unified shell", d:"Same shell, sentra self-detected via hostname.", href:ORG+"sentra.hf.space/unified", probe:ORG+"sentra.hf.space/healthz"},
|
| 229 |
-
{t:"amaru — Unified shell", d:"Same shell, amaru self-detected via hostname.", href:ORG+"amaru.hf.space/unified", probe:ORG+"amaru.hf.space/healthz"},
|
| 230 |
-
{t:"rosie — Unified shell", d:"Same shell, rosie self-detected via hostname.", href:ORG+"rosie.hf.space/unified", probe:ORG+"rosie.hf.space/healthz"},
|
| 231 |
-
{t:"killinchu — Unified shell", d:"Same shell, killinchu self-detected (may rebuild).", href:ORG+"killinchu.hf.space/unified", probe:ORG+"killinchu.hf.space/healthz"},
|
| 232 |
-
];
|
| 233 |
-
|
| 234 |
-
const REASON = [
|
| 235 |
-
{t:"/agent — Ensemble vote", d:"Multi-LLM ensemble: parallel models reason, then vote.", href:ORG+"a11oy.hf.space/agent", probe:ORG+"a11oy.hf.space/agent"},
|
| 236 |
-
{t:"/formulas-v4 — Anchors", d:"The 35 anchor formulas grid, each independently evaluable.", href:ORG+"a11oy.hf.space/formulas-v4", probe:ORG+"a11oy.hf.space/formulas-v4"},
|
| 237 |
-
{t:"/predict — PAC-Bayes", d:"PAC-Bayes predictions surface (parallel agent build).", href:ORG+"a11oy.hf.space/predict", probe:ORG+"a11oy.hf.space/predict"},
|
| 238 |
-
];
|
| 239 |
-
|
| 240 |
-
const APIS = [
|
| 241 |
-
{t:"a11oy — Bekenstein bound", d:"Frontier formula API: Bekenstein information bound.", href:ORG+"a11oy.hf.space/api/a11oy/v4/bekenstein", probe:ORG+"a11oy.hf.space/api/a11oy/v4/bekenstein"},
|
| 242 |
-
{t:"a11oy — Wheelerian", d:"Frontier formula API: Wheelerian 'it from bit'.", href:ORG+"a11oy.hf.space/api/a11oy/v4/wheelerian", probe:ORG+"a11oy.hf.space/api/a11oy/v4/wheelerian"},
|
| 243 |
-
{t:"a11oy — Shannon", d:"Frontier formula API: Shannon channel capacity.", href:ORG+"a11oy.hf.space/api/a11oy/v4/shannon", probe:ORG+"a11oy.hf.space/api/a11oy/v4/shannon"},
|
| 244 |
-
{t:"sentra — /sentra/inspect", d:"Inspect an action against fail-closed Yuyay gates.", href:ORG+"sentra.hf.space/sentra/inspect", probe:ORG+"sentra.hf.space/sentra/inspect"},
|
| 245 |
-
{t:"amaru — /amaru/cortex", d:"Cortex memory surface: recall + DAG view.", href:ORG+"amaru.hf.space/amaru/cortex", probe:ORG+"amaru.hf.space/amaru/cortex"},
|
| 246 |
-
{t:"killinchu — /v1/honest", d:"Honest-mode endpoint + drone mission DB.", href:ORG+"killinchu.hf.space/api/killinchu/v1/honest", probe:ORG+"killinchu.hf.space/api/killinchu/v1/honest"},
|
| 247 |
-
];
|
| 248 |
-
|
| 249 |
-
const PROV = [
|
| 250 |
-
{t:"Codex-Kernel v1.0.0", d:"Signed Codex-Kernel release bundle on GitHub.", href:"https://github.com/szl-holdings/platform/releases/tag/v1.0.0-codex-kernel", mode:"static"},
|
| 251 |
-
{t:"lutar-lean repo", d:"Lean formalization repo (749/14/163, 163 open sorries).", href:"https://github.com/szl-holdings/lutar-lean", mode:"static"},
|
| 252 |
-
{t:"lutar-lean v18.0.0 + DOI", d:"Tagged release; Zenodo DOI 10.5281/zenodo.20434308.", href:"https://github.com/szl-holdings/lutar-lean/releases/tag/lutar-v18.0.0", mode:"static"},
|
| 253 |
-
{t:"ouroboros-thesis — 21 releases", d:"All 21 thesis releases (Zenodo-DOIed) on GitHub.", href:"https://github.com/szl-holdings/ouroboros-thesis/releases", mode:"static"},
|
| 254 |
-
{t:"Hatun-MCP — /healthz", d:"Sovereign MCP gateway health probe.", href:ORG+"hatun-mcp.hf.space/healthz", probe:ORG+"hatun-mcp.hf.space/healthz"},
|
| 255 |
-
];
|
| 256 |
-
|
| 257 |
-
const STATUS_CARDS = [
|
| 258 |
-
{t:"Mesh Status Board", d:"Live healthz polling of all 5 organs, auto-refresh.", href:"https://szlholdings-status.static.hf.space/", probe:"https://szlholdings-status.static.hf.space/", mode:"ok"},
|
| 259 |
-
{t:"Organ Anatomy Gallery", d:"8 anatomy diagrams: brain, heart, blood, immune, spine, nervous, wires, body-graph.", href:ORG+"a11oy.hf.space/anatomy", probe:ORG+"a11oy.hf.space/anatomy", mode:"ok"},
|
| 260 |
-
];
|
| 261 |
-
|
| 262 |
-
function card(item){
|
| 263 |
-
const el = document.createElement("a");
|
| 264 |
-
el.className = "card";
|
| 265 |
-
el.href = item.href; el.target = "_blank"; el.rel = "noopener";
|
| 266 |
-
const isStatic = item.mode === "static" || !item.probe;
|
| 267 |
-
const pillCls = isStatic ? "gray" : "gray";
|
| 268 |
-
const pillTxt = isStatic ? "ref" : "probing…";
|
| 269 |
-
el.innerHTML =
|
| 270 |
-
'<div class="top"><span class="title">'+item.t+'</span>'+
|
| 271 |
-
'<span class="pill '+pillCls+'"><span class="dot"></span>'+pillTxt+'</span></div>'+
|
| 272 |
-
'<div class="desc">'+item.d+'</div>'+
|
| 273 |
-
'<div class="url mono">'+item.href.replace(/^https?:\/\//,'')+'</div>';
|
| 274 |
-
if(!isStatic){ probe(item.probe, el.querySelector(".pill")); }
|
| 275 |
-
return el;
|
| 276 |
-
}
|
| 277 |
-
|
| 278 |
-
async function probe(url, pillEl){
|
| 279 |
-
const ctrl = new AbortController();
|
| 280 |
-
const to = setTimeout(()=>ctrl.abort(), 8000);
|
| 281 |
-
try{
|
| 282 |
-
const r = await fetch(url, {cache:"no-store", signal:ctrl.signal, redirect:"follow"});
|
| 283 |
-
clearTimeout(to);
|
| 284 |
-
setPill(pillEl, r.status);
|
| 285 |
-
}catch(e){
|
| 286 |
-
clearTimeout(to);
|
| 287 |
-
// network/CORS/abort → unknown; show gray (honest, not faked)
|
| 288 |
-
setPill(pillEl, 0);
|
| 289 |
-
}
|
| 290 |
-
}
|
| 291 |
-
|
| 292 |
-
function setPill(el, code){
|
| 293 |
-
el.classList.remove("green","amber","red","gray");
|
| 294 |
-
let cls, txt;
|
| 295 |
-
if(code >= 200 && code < 300){ cls="green"; txt="LIVE "+code; }
|
| 296 |
-
else if(code >= 300 && code < 400){ cls="green"; txt="LIVE "+code; }
|
| 297 |
-
else if(code >= 400 && code < 500){ cls="red"; txt=code; }
|
| 298 |
-
else if(code >= 500){ cls="amber"; txt=code; }
|
| 299 |
-
else { cls="gray"; txt="unreachable"; }
|
| 300 |
-
el.className = "pill "+cls;
|
| 301 |
-
el.innerHTML = '<span class="dot"></span>'+txt;
|
| 302 |
-
}
|
| 303 |
-
|
| 304 |
-
function fill(id, arr){ const g=document.getElementById(id); arr.forEach(i=>g.appendChild(card(i))); }
|
| 305 |
-
fill("grid-organs", ORGANS);
|
| 306 |
-
fill("grid-unified", UNIFIED);
|
| 307 |
-
fill("grid-reason", REASON);
|
| 308 |
-
fill("grid-apis", APIS);
|
| 309 |
-
fill("grid-prov", PROV);
|
| 310 |
-
fill("grid-status", STATUS_CARDS);
|
| 311 |
-
</script>
|
| 312 |
-
</body>
|
| 313 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
deployment.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"claims":{"estate_operational_status":"NOT_INFERRED","model_quality":"NOT_EVALUATED_BY_THIS_SURFACE","source_binding":"MEASURED_AFTER_LIVE_READBACK"},"files":[{"path":".gitattributes","sha256":"ea03f0eb78cadeb1c5656da28f49131c2d367f19f47ba705b1551409d4b509bb","size":73},{"path":"HONEST_DISCLOSURE.md","sha256":"19a6535a4c79f3a5868c5eaf445103e101ebeb3a795826fb014b36b77bb84111","size":1133},{"path":"README.md","sha256":"28b2c3bd1eee4a01b6fd97ba3a699011173c27146ff4d5963a82b6fec9d3a8a4","size":5127},{"path":"assets/estate-command-system.svg","sha256":"b77048f37d55c0463ecd9e05a470259477b67adf72de464714045190991094bc","size":5812},{"path":"index.html","sha256":"4398923dcdcaf37f026cbc9a877a085b7a8b48bef2f0ea0d2b0be932c57b6722","size":17195}],"published_at":"2026-08-01T17:52:17.676948Z","schema":"szl.hf-static-deployment/v1","source":{"manifest":"huggingface/org-card.manifest.json","repository":"szl-holdings/.github","revision":"813ba58892b869b931adc30db428a4a61cedaf4b"},"target":{"live_base_url":"https://szlholdings-readme.static.hf.space","repo_id":"SZLHOLDINGS/README","repo_type":"space"}}
|
hero.png
DELETED
Git LFS Details
|
hero.svg
DELETED
index.html
CHANGED
|
@@ -1,317 +1,287 @@
|
|
| 1 |
<!doctype html>
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
-
<meta charset="utf-8"
|
| 5 |
-
<meta name="viewport" content="width=device-width,
|
| 6 |
-
<
|
| 7 |
-
<meta name="
|
| 8 |
-
<
|
| 9 |
-
<
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
/* SHELL carries the void ground itself, so the dark design survives even when an
|
| 30 |
-
embedding host (e.g. the HF org-card sanitizer) strips body backgrounds + forces light theme. */
|
| 31 |
-
.shell{background:
|
| 32 |
-
radial-gradient(1100px 560px at 50% -14%, #101b30 0%, var(--bg0) 60%),
|
| 33 |
-
var(--bg0);
|
| 34 |
-
color:var(--ink); border-radius:18px;}
|
| 35 |
-
.shell, .shell *{color-scheme:dark;}
|
| 36 |
-
.wrap{max-width:940px; margin:0 auto; padding:clamp(40px,7vw,72px) clamp(16px,5vw,28px) 72px;}
|
| 37 |
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
h1 .grad{color:var(--gold); -webkit-text-fill-color:var(--gold);}
|
| 53 |
-
@media (max-width:360px){ h1{font-size:27px;} }
|
| 54 |
-
.lede{font-family:var(--serif); color:var(--ink-dim); font-size:clamp(17px,3.4vw,21px);
|
| 55 |
-
max-width:64ch; line-height:1.55; margin:0 0 6px;}
|
| 56 |
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
|
| 77 |
-
|
| 78 |
-
|
|
|
|
|
|
|
| 79 |
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
.card h2{font-family:var(--sans); font-weight:600; margin:0 0 8px; font-size:19px;}
|
| 88 |
-
.card p{font-family:var(--serif); color:var(--ink-dim); font-size:14px; line-height:1.5; margin:0;}
|
| 89 |
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
.dir .d{font-family:var(--serif); font-size:12.5px; color:var(--ink-dim); line-height:1.45;}
|
| 99 |
-
@media (max-width:680px){.dir{grid-template-columns:1fr;}}
|
| 100 |
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
pre .c{color:var(--ink-mut);} pre .ok{color:var(--teal);} pre .fail{color:var(--warn);}
|
| 108 |
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
|
|
|
| 118 |
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
</head>
|
| 133 |
-
<body>
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
<h1 style="color:#E8ECF3!important;font-family:'Space Grotesk',system-ui,sans-serif;font-weight:700;font-size:clamp(30px,4.4vw,46px);line-height:1.08;letter-spacing:-0.015em;margin:20px 0 14px;">Governed AI <span class="nowrap">you can <span class="grad" style="color:#d7b96b!important;-webkit-text-fill-color:#d7b96b!important;">prove.</span></span></h1>
|
| 141 |
-
<p class="lede" style="font-family:'Source Serif 4',Georgia,serif;color:#AAB7CC!important;font-size:clamp(17px,3.4vw,21px);max-width:64ch;line-height:1.55;margin:0 0 6px;">SZL Holdings builds governed autonomy with a checkable receipt for every decision. Every autonomous
|
| 142 |
-
action carries a machine-checked, tamper-evident warrant — proof of <em>under what authority</em>
|
| 143 |
-
it acted, <em>on what trust evidence</em>, and that <em>the record was not quietly rewritten.</em></p>
|
| 144 |
-
|
| 145 |
-
<!-- Proof-status pills: the machine-checked facts, surfaced up front -->
|
| 146 |
-
<div class="proofbar" style="display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 6px;">
|
| 147 |
-
<span class="pill gold" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(215,185,107,.5)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#d7b96b!important;display:inline-block;"></span><b style="color:#e7cd8c!important;">8</b> locked-proven</span>
|
| 148 |
-
<span class="pill teal" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(58,244,200,.45)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#3af4c8!important;display:inline-block;"></span><b style="color:#86f7dd!important;">~185</b> machine-checked</span>
|
| 149 |
-
<span class="pill conj" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(126,138,163,.55)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#7e8aa3!important;display:inline-block;"></span>Λ = Conjecture 1</span>
|
| 150 |
-
<span class="pill conj" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(126,138,163,.55)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#7e8aa3!important;display:inline-block;"></span>Khipu = Conjecture 2</span>
|
| 151 |
-
<span class="pill gold" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(215,185,107,.5)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#d7b96b!important;display:inline-block;"></span>SLSA L1 · L2 attested · L3 roadmap</span>
|
| 152 |
-
<span class="pill teal" style="display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1px solid rgba(58,244,200,.45)!important;background:#0f1622!important;color:#AAB7CC!important;"><span class="dot" style="width:7px;height:7px;border-radius:50%;background:#3af4c8!important;display:inline-block;"></span>cosign keyless</span>
|
| 153 |
-
</div>
|
| 154 |
-
|
| 155 |
-
<div class="cta" style="display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 4px;">
|
| 156 |
-
<a class="btn primary" href="https://szlholdings-a11oy.hf.space/" style="display:inline-flex;align-items:center;gap:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14.5px;padding:11px 20px;border-radius:999px;text-decoration:none;color:#080c14!important;background:#d7b96b!important;border:1px solid #d7b96b!important;">Enter a11oy — the console →</a>
|
| 157 |
-
<a class="btn ghost" href="https://github.com/szl-holdings/lutar-lean" style="display:inline-flex;align-items:center;gap:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14.5px;padding:11px 20px;border-radius:999px;text-decoration:none;color:#E8ECF3!important;background:transparent!important;border:1px solid #223142!important;">Read the proof →</a>
|
| 158 |
-
</div>
|
| 159 |
-
|
| 160 |
-
<!-- THE PORTFOLIO — the company view, funnelling to each product (no console content duplicated here) -->
|
| 161 |
-
<div class="section-label" style="font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#6E809E!important;margin:48px 0 14px;">The portfolio · one signed substrate</div>
|
| 162 |
-
<div class="grid" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;margin:14px 0 8px;">
|
| 163 |
-
<a class="card" href="https://szlholdings-a11oy.hf.space/" style="background:#0f1622!important;border:1px solid #223142!important;border-radius:16px;padding:22px;text-decoration:none;display:flex;flex-direction:column;">
|
| 164 |
-
<div class="role" style="font-family:'JetBrains Mono',monospace;color:#3af4c8!important;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;">Flagship · command platform</div>
|
| 165 |
-
<h2 style="font-family:'Space Grotesk',sans-serif;font-weight:600;margin:0 0 8px;font-size:19px;color:#E8ECF3!important;">a11oy →</h2>
|
| 166 |
-
<p style="font-family:'Source Serif 4',serif;color:#AAB7CC!important;font-size:14px;line-height:1.5;margin:0;">The governed-AI console: ask-and-act behind deny-by-default gates, a live decision feed, and a
|
| 167 |
-
signed receipt for every action.</p>
|
| 168 |
-
</a>
|
| 169 |
-
<a class="card" href="https://szlholdings-killinchu.hf.space/elite" style="background:#0f1622!important;border:1px solid #223142!important;border-radius:16px;padding:22px;text-decoration:none;display:flex;flex-direction:column;">
|
| 170 |
-
<div class="role" style="font-family:'JetBrains Mono',monospace;color:#3af4c8!important;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;">Counter-UAS · maritime C2</div>
|
| 171 |
-
<h2 style="font-family:'Space Grotesk',sans-serif;font-weight:600;margin:0 0 8px;font-size:19px;color:#E8ECF3!important;">killinchu →</h2>
|
| 172 |
-
<p style="font-family:'Source Serif 4',serif;color:#AAB7CC!important;font-size:14px;line-height:1.5;margin:0;">Air-and-sea field demonstration: live track board, multi-sensor fusion, sanctions and dark-vessel
|
| 173 |
-
screening — with verify-it-yourself receipts (effector link is a labeled simulation).</p>
|
| 174 |
-
</a>
|
| 175 |
-
<a class="card" href="https://szlholdings-anatomy.hf.space/" style="background:#0f1622!important;border:1px solid #223142!important;border-radius:16px;padding:22px;text-decoration:none;display:flex;flex-direction:column;">
|
| 176 |
-
<div class="role" style="font-family:'JetBrains Mono',monospace;color:#3af4c8!important;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;">The living substrate</div>
|
| 177 |
-
<h2 style="font-family:'Space Grotesk',sans-serif;font-weight:600;margin:0 0 8px;font-size:19px;color:#E8ECF3!important;">anatomy →</h2>
|
| 178 |
-
<p style="font-family:'Source Serif 4',serif;color:#AAB7CC!important;font-size:14px;line-height:1.5;margin:0;">A 3D, navigable map of the governed organism — its organs, how a decision flows through them,
|
| 179 |
-
and where each proof and conjecture honestly sits.</p>
|
| 180 |
-
</a>
|
| 181 |
-
</div>
|
| 182 |
-
|
| 183 |
-
<!-- Compact directory: the rest of the org, honestly one-lined -->
|
| 184 |
-
<div class="section-label" style="font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#6E809E!important;margin:38px 0 14px;">Also in the org</div>
|
| 185 |
-
<div class="dir" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px;margin:14px 0 8px;">
|
| 186 |
-
<a href="https://szlholdings-david-leads.hf.space/" style="display:flex;flex-direction:column;gap:3px;padding:14px 16px;text-decoration:none;border:1px solid #223142!important;border-radius:10px;background:#0f1622!important;">
|
| 187 |
-
<span class="n" style="font-family:'JetBrains Mono',monospace;font-size:13px;color:#E8ECF3!important;">david-leads <span class="arw" style="color:#3af4c8!important;">→</span></span>
|
| 188 |
-
<span class="d" style="font-family:'Source Serif 4',serif;font-size:12.5px;color:#AAB7CC!important;line-height:1.45;">Sovereign insurance intelligence — audit-defensible leads from public data only.</span>
|
| 189 |
-
</a>
|
| 190 |
-
<a href="https://szlholdings-immune.hf.space/" style="display:flex;flex-direction:column;gap:3px;padding:14px 16px;text-decoration:none;border:1px solid #223142!important;border-radius:10px;background:#0f1622!important;">
|
| 191 |
-
<span class="n" style="font-family:'JetBrains Mono',monospace;font-size:13px;color:#E8ECF3!important;">immune <span class="arw" style="color:#3af4c8!important;">→</span></span>
|
| 192 |
-
<span class="d" style="font-family:'Source Serif 4',serif;font-size:12.5px;color:#AAB7CC!important;line-height:1.45;">Verifiable-AI defense — an append-only SHA-256 receipt chain with admission gates and tripwires.</span>
|
| 193 |
-
</a>
|
| 194 |
-
<a href="https://szlholdings-sda.hf.space/" style="display:flex;flex-direction:column;gap:3px;padding:14px 16px;text-decoration:none;border:1px solid #223142!important;border-radius:10px;background:#0f1622!important;">
|
| 195 |
-
<span class="n" style="font-family:'JetBrains Mono',monospace;font-size:13px;color:#E8ECF3!important;">sda <span class="arw" style="color:#3af4c8!important;">→</span></span>
|
| 196 |
-
<span class="d" style="font-family:'Source Serif 4',serif;font-size:12.5px;color:#AAB7CC!important;line-height:1.45;">Domain awareness — graph anomaly detection and multi-sensor track fusion into a Λ-gated picture.</span>
|
| 197 |
-
</a>
|
| 198 |
-
<a href="https://szlholdings-yarqa.hf.space/" style="display:flex;flex-direction:column;gap:3px;padding:14px 16px;text-decoration:none;border:1px solid #223142!important;border-radius:10px;background:#0f1622!important;">
|
| 199 |
-
<span class="n" style="font-family:'JetBrains Mono',monospace;font-size:13px;color:#E8ECF3!important;">yarqa <span class="arw" style="color:#3af4c8!important;">→</span></span>
|
| 200 |
-
<span class="d" style="font-family:'Source Serif 4',serif;font-size:12.5px;color:#AAB7CC!important;line-height:1.45;">Plug-flow compartments — a CFD engineering-method loop: sense → route → gate → receipt.</span>
|
| 201 |
</a>
|
| 202 |
-
<
|
| 203 |
-
<
|
| 204 |
-
<
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
<!-- VERIFY — company-level credibility: any signed receipt checks offline, zero trust in SZL -->
|
| 209 |
-
<div class="section-label" style="font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#6E809E!important;margin:48px 0 14px;">Verify it yourself · trust nothing</div>
|
| 210 |
-
<div class="verify" style="background:#0b1018!important;border:1px solid rgba(58,244,200,.24)!important;border-radius:16px;padding:22px clamp(18px,4vw,26px);margin:14px 0 8px;">
|
| 211 |
-
<h3 style="font-family:'JetBrains Mono',monospace;margin:0 0 6px;font-size:12px;color:#3af4c8!important;letter-spacing:.14em;text-transform:uppercase;">Confirm a decision happened, exactly as recorded — with zero trust in SZL</h3>
|
| 212 |
-
<p style="font-family:'Source Serif 4',serif;color:#AAB7CC!important;font-size:14px;margin:0 0 12px;">Pull the public signing key and a signed receipt from a live field node, then verify offline:</p>
|
| 213 |
-
<pre style="background:#05090f!important;border:1px solid #223142!important;border-radius:10px;padding:14px 16px;overflow-x:auto;margin:0;font-family:'JetBrains Mono',monospace;font-size:12.5px;color:#cfe0d8!important;line-height:1.65;"><span class="c"># pull the public key + a signed receipt from the live field node</span>
|
| 214 |
-
curl -s https://szlholdings-killinchu.hf.space/cosign.pub -o cosign.pub
|
| 215 |
-
curl -s https://szlholdings-killinchu.hf.space/api/killinchu/v1/receipt/export > receipt.json
|
| 216 |
-
<span class="c"># verify the DSSE signature offline </span> → <span class="ok">"Verified OK"</span>
|
| 217 |
-
<span class="c"># tamper a single byte and re-verify</span> → <span class="fail">"Verification failure"</span></pre>
|
| 218 |
</div>
|
|
|
|
| 219 |
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
axiom-clean; unconditional stays open).<br/>
|
| 234 |
-
• <b>SLSA L1 (honest) · L2 build-attested</b> — container provenance via Sigstore keyless
|
| 235 |
-
(Fulcio + Rekor) where <code>attest-build-provenance</code> runs & verifies (a11oy, killinchu);
|
| 236 |
-
verify with <code>gh attestation verify</code> / <code>cosign verify-attestation</code>.
|
| 237 |
-
<b>L3, FedRAMP, Iron Bank, CMMC, ATO = roadmap.</b><br/>
|
| 238 |
-
• Receipts are genuinely signed where a key is present, honestly marked unsigned otherwise —
|
| 239 |
-
never fabricated. <b>Trust is never 100%.</b><br/>
|
| 240 |
-
• Maritime AIS uses a clearly-labeled sample/replay dataset, not a live feed.</p>
|
| 241 |
-
<p>Read the thesis → <a class="link" href="https://github.com/szl-holdings/szl-papers">szl-papers</a>
|
| 242 |
-
· Run the kernel → <a class="link" href="https://github.com/szl-holdings/lutar-lean">lutar-lean</a>
|
| 243 |
-
· Deploy the mesh → <code>uds deploy oci://ghcr.io/szl-holdings/szl-mesh:0.4.0 --confirm</code></p>
|
| 244 |
</div>
|
| 245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
|
| 247 |
-
<
|
| 248 |
-
<div class="
|
| 249 |
-
|
| 250 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 251 |
</div>
|
| 252 |
-
|
| 253 |
-
Client-side reads from the Hugging Face API at page load. Timestamps are HF's own
|
| 254 |
-
metadata, not our attestation. A failed fetch says so — it never fakes green.
|
| 255 |
-
</p>
|
| 256 |
-
</div>
|
| 257 |
|
| 258 |
-
<
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 264 |
|
| 265 |
-
|
| 266 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 267 |
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
d.innerHTML = "<div style='color:var(--gold);letter-spacing:.04em;margin-bottom:6px;'>" + label + "</div>" +
|
| 282 |
-
"<div style='color:" + (ok ? "var(--ink)" : "var(--warn)") + ";line-height:1.6;'>" + body + "</div>";
|
| 283 |
-
return d;
|
| 284 |
-
}
|
| 285 |
-
function rel(iso) {
|
| 286 |
-
var s = (Date.now() - new Date(iso).getTime()) / 1000;
|
| 287 |
-
if (!isFinite(s) || s < 0) return "clock skew — showing raw timestamp only";
|
| 288 |
-
if (s < 3600) return Math.round(s / 60) + " min ago";
|
| 289 |
-
if (s < 86400) return (s / 3600).toFixed(1) + " h ago";
|
| 290 |
-
return (s / 86400).toFixed(1) + " days ago";
|
| 291 |
-
}
|
| 292 |
-
grid.innerHTML = "";
|
| 293 |
-
tiles.forEach(function (t) {
|
| 294 |
-
fetch(t.url).then(function (r) {
|
| 295 |
-
if (!r.ok) throw new Error("HTTP " + r.status);
|
| 296 |
-
return r.json();
|
| 297 |
-
}).then(function (j) {
|
| 298 |
-
var lm = j.lastModified || (j.cardData && j.cardData.lastModified);
|
| 299 |
-
grid.appendChild(tile(t.label, lm ? ("last activity " + rel(lm) + "<br/><span style='color:var(--ink-dim);font-size:11px;'>" + lm.replace("T", " ").slice(0, 16) + " UTC</span>") : "no lastModified in API reply — no claim", !!lm));
|
| 300 |
-
}).catch(function (e) {
|
| 301 |
-
grid.appendChild(tile(t.label, "FETCH FAILED (" + e.message + ") — no claim made", false));
|
| 302 |
-
});
|
| 303 |
-
});
|
| 304 |
-
Promise.all(["models", "datasets", "spaces"].map(function (k) {
|
| 305 |
-
return fetch("https://huggingface.co/api/" + k + "?author=SZLHOLDINGS&limit=100")
|
| 306 |
-
.then(function (r) { if (!r.ok) throw new Error("HTTP " + r.status); return r.json(); })
|
| 307 |
-
.then(function (j) { return j.length; });
|
| 308 |
-
})).then(function (n) {
|
| 309 |
-
grid.appendChild(tile("public footprint", n[0] + " models · " + n[1] + " datasets · " + n[2] + " spaces<br/><span style='color:var(--ink-dim);font-size:11px;'>counts capped at 100 per kind by this read</span>", true));
|
| 310 |
-
}).catch(function (e) {
|
| 311 |
-
grid.appendChild(tile("public footprint", "FETCH FAILED (" + e.message + ") — no claim made", false));
|
| 312 |
-
});
|
| 313 |
-
})();
|
| 314 |
-
</script>
|
| 315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 316 |
</body>
|
| 317 |
</html>
|
|
|
|
| 1 |
<!doctype html>
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
+
<meta charset="utf-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
|
| 6 |
+
<meta name="color-scheme" content="dark">
|
| 7 |
+
<meta name="theme-color" content="#070b12">
|
| 8 |
+
<meta name="description" content="SZL Holdings builds governed decision infrastructure for systems that must explain, constrain, and verify action.">
|
| 9 |
+
<title>SZL Holdings — Autonomy, under authority</title>
|
| 10 |
+
<style>
|
| 11 |
+
:root {
|
| 12 |
+
--void: #070b12;
|
| 13 |
+
--ground: #0b111b;
|
| 14 |
+
--panel: #101824;
|
| 15 |
+
--panel-2: #141e2c;
|
| 16 |
+
--line: #263344;
|
| 17 |
+
--ink: #f3f5f8;
|
| 18 |
+
--muted: #aab5c5;
|
| 19 |
+
--quiet: #6f7d91;
|
| 20 |
+
--teal: #47d7c4;
|
| 21 |
+
--teal-hi: #7ce8da;
|
| 22 |
+
--gold: #d7b55e;
|
| 23 |
+
--gold-hi: #e6ca82;
|
| 24 |
+
--warning: #d79b5e;
|
| 25 |
+
--radius: 18px;
|
| 26 |
+
--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
|
| 27 |
+
--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
| 28 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
+
* { box-sizing: border-box; }
|
| 31 |
+
html { scroll-behavior: smooth; }
|
| 32 |
+
body {
|
| 33 |
+
margin: 0;
|
| 34 |
+
background:
|
| 35 |
+
radial-gradient(900px 520px at 78% -8%, rgba(47, 127, 139, .24), transparent 68%),
|
| 36 |
+
var(--void);
|
| 37 |
+
color: var(--ink);
|
| 38 |
+
font-family: var(--sans);
|
| 39 |
+
line-height: 1.55;
|
| 40 |
+
-webkit-font-smoothing: antialiased;
|
| 41 |
+
}
|
| 42 |
|
| 43 |
+
a { color: inherit; }
|
| 44 |
+
a:focus-visible, button:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
|
| 45 |
+
.skip { position: absolute; left: -9999px; top: 0; }
|
| 46 |
+
.skip:focus { left: 16px; top: 16px; z-index: 20; background: var(--ink); color: var(--void); padding: 10px 14px; }
|
| 47 |
+
.shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
+
header {
|
| 50 |
+
position: sticky;
|
| 51 |
+
top: 0;
|
| 52 |
+
z-index: 10;
|
| 53 |
+
border-bottom: 1px solid rgba(132, 149, 171, .18);
|
| 54 |
+
background: rgba(7, 11, 18, .88);
|
| 55 |
+
backdrop-filter: blur(18px);
|
| 56 |
+
}
|
| 57 |
+
.nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
|
| 58 |
+
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; font-weight: 760; letter-spacing: .08em; }
|
| 59 |
+
.brand-mark { width: 13px; height: 13px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 22px rgba(71, 215, 196, .48); }
|
| 60 |
+
nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 22px; }
|
| 61 |
+
nav a { color: var(--muted); text-decoration: none; font-size: 14px; }
|
| 62 |
+
nav a:hover { color: var(--ink); }
|
| 63 |
|
| 64 |
+
main { overflow: hidden; }
|
| 65 |
+
.hero { padding: clamp(72px, 10vw, 132px) 0 84px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center; }
|
| 66 |
+
.eyebrow { color: var(--teal); font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
|
| 67 |
+
h1 { margin: 20px 0; max-width: 780px; font-size: clamp(48px, 7vw, 88px); line-height: .98; letter-spacing: -.055em; text-wrap: balance; }
|
| 68 |
+
h1 span { color: var(--gold-hi); }
|
| 69 |
+
.lede { max-width: 650px; color: var(--muted); font-size: clamp(18px, 2.2vw, 23px); }
|
| 70 |
+
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
|
| 71 |
+
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; padding: 0 20px; text-decoration: none; font-size: 14px; font-weight: 720; }
|
| 72 |
+
.button.primary { background: var(--gold); border-color: var(--gold); color: #101216; }
|
| 73 |
+
.button.primary:hover { background: var(--gold-hi); }
|
| 74 |
+
.button.secondary:hover { border-color: var(--teal); color: var(--teal-hi); }
|
| 75 |
+
.hero-visual { width: 100%; filter: drop-shadow(0 28px 80px rgba(0, 0, 0, .34)); }
|
| 76 |
|
| 77 |
+
section { padding: 82px 0; border-top: 1px solid rgba(132, 149, 171, .14); }
|
| 78 |
+
.section-head { display: grid; grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: start; margin-bottom: 36px; }
|
| 79 |
+
h2 { margin: 10px 0 0; font-size: clamp(32px, 4vw, 52px); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
|
| 80 |
+
.section-copy { color: var(--muted); font-size: 18px; max-width: 680px; margin: 6px 0 0; }
|
| 81 |
|
| 82 |
+
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
|
| 83 |
+
.card { min-height: 260px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); padding: 25px; background: linear-gradient(150deg, rgba(20, 30, 44, .9), rgba(12, 18, 28, .92)); text-decoration: none; }
|
| 84 |
+
.card:hover { transform: translateY(-3px); border-color: rgba(71, 215, 196, .5); }
|
| 85 |
+
.card .tag { color: var(--teal); font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
|
| 86 |
+
.card h3 { margin: 18px 0 10px; font-size: 24px; letter-spacing: -.025em; }
|
| 87 |
+
.card p { color: var(--muted); margin: 0; }
|
| 88 |
+
.card .arrow { margin-top: auto; padding-top: 30px; color: var(--gold-hi); font-family: var(--mono); font-size: 13px; }
|
|
|
|
|
|
|
| 89 |
|
| 90 |
+
.loop { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; padding: clamp(26px, 5vw, 54px); background: #090f17; }
|
| 91 |
+
.loop::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(71, 215, 196, .05), transparent); }
|
| 92 |
+
.steps { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
|
| 93 |
+
.step { min-height: 122px; border-top: 2px solid var(--line); padding: 16px 8px 0 0; }
|
| 94 |
+
.step strong { display: block; color: var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
|
| 95 |
+
.step span { display: block; margin-top: 10px; color: var(--quiet); font-size: 13px; }
|
| 96 |
+
.step.control { border-color: var(--teal); }
|
| 97 |
+
.step.evidence { border-color: var(--gold); }
|
|
|
|
|
|
|
| 98 |
|
| 99 |
+
.contract { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
|
| 100 |
+
.contract article { border-left: 2px solid var(--line); padding: 4px 22px 18px; }
|
| 101 |
+
.contract article:nth-child(1), .contract article:nth-child(2) { border-color: var(--teal); }
|
| 102 |
+
.contract article:nth-child(3), .contract article:nth-child(4) { border-color: var(--gold); }
|
| 103 |
+
.contract h3 { margin: 0 0 9px; font-size: 19px; }
|
| 104 |
+
.contract p { margin: 0; color: var(--muted); }
|
|
|
|
| 105 |
|
| 106 |
+
.truth { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
|
| 107 |
+
.truth-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; background: var(--panel); }
|
| 108 |
+
.truth-panel h3 { margin: 0 0 14px; }
|
| 109 |
+
.truth-panel p { color: var(--muted); margin: 0 0 18px; }
|
| 110 |
+
.labels { display: flex; flex-wrap: wrap; gap: 8px; }
|
| 111 |
+
.label { border: 1px solid var(--line); border-radius: 999px; padding: 7px 10px; color: var(--muted); font-family: var(--mono); font-size: 11px; }
|
| 112 |
+
.label.measured { border-color: rgba(71, 215, 196, .52); color: var(--teal-hi); }
|
| 113 |
+
.label.conjecture { border-color: rgba(170, 181, 197, .38); color: #c0c8d3; }
|
| 114 |
+
code { color: var(--gold-hi); font-family: var(--mono); }
|
| 115 |
|
| 116 |
+
.closing { padding-bottom: 112px; }
|
| 117 |
+
.closing-panel { border-radius: 24px; padding: clamp(34px, 7vw, 72px); background: linear-gradient(130deg, #132636, #111721 58%, #211c12); border: 1px solid rgba(215, 181, 94, .32); }
|
| 118 |
+
.closing-panel h2 { max-width: 760px; }
|
| 119 |
+
.closing-panel p { max-width: 680px; color: var(--muted); font-size: 18px; }
|
| 120 |
|
| 121 |
+
footer { border-top: 1px solid rgba(132, 149, 171, .14); padding: 32px 0 46px; color: var(--quiet); font-size: 13px; }
|
| 122 |
+
.footer-row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
|
| 123 |
+
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
|
| 124 |
+
.footer-links a { text-decoration: none; }
|
| 125 |
+
.footer-links a:hover { color: var(--ink); }
|
| 126 |
|
| 127 |
+
@media (max-width: 900px) {
|
| 128 |
+
.hero, .section-head, .truth { grid-template-columns: 1fr; }
|
| 129 |
+
.hero { gap: 42px; }
|
| 130 |
+
.hero-visual { max-width: 640px; }
|
| 131 |
+
.cards { grid-template-columns: 1fr 1fr; }
|
| 132 |
+
.steps { grid-template-columns: repeat(3, 1fr); }
|
| 133 |
+
}
|
| 134 |
+
@media (max-width: 640px) {
|
| 135 |
+
.shell { width: min(100% - 28px, 1180px); }
|
| 136 |
+
.nav { min-height: 64px; }
|
| 137 |
+
nav a:not(.essential) { display: none; }
|
| 138 |
+
.hero { padding-top: 58px; }
|
| 139 |
+
h1 { font-size: clamp(42px, 15vw, 68px); }
|
| 140 |
+
.cards, .contract { grid-template-columns: 1fr; }
|
| 141 |
+
.steps { grid-template-columns: 1fr 1fr; }
|
| 142 |
+
section { padding: 64px 0; }
|
| 143 |
+
}
|
| 144 |
+
@media (prefers-reduced-motion: reduce) {
|
| 145 |
+
html { scroll-behavior: auto; }
|
| 146 |
+
.card { transition: none; }
|
| 147 |
+
}
|
| 148 |
+
</style>
|
| 149 |
</head>
|
| 150 |
+
<body data-szl-surface="company-front-door">
|
| 151 |
+
<a class="skip" href="#main">Skip to main content</a>
|
| 152 |
+
<header>
|
| 153 |
+
<div class="shell nav">
|
| 154 |
+
<a class="brand" href="https://huggingface.co/SZLHOLDINGS" aria-label="SZL Holdings on Hugging Face">
|
| 155 |
+
<span class="brand-mark" aria-hidden="true"></span>
|
| 156 |
+
SZL HOLDINGS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
</a>
|
| 158 |
+
<nav aria-label="Primary">
|
| 159 |
+
<a href="#system">System</a>
|
| 160 |
+
<a href="#artifacts">Artifacts</a>
|
| 161 |
+
<a href="#evidence">Evidence</a>
|
| 162 |
+
<a class="essential" href="https://a-11-oy.com">Open a11oy ↗</a>
|
| 163 |
+
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 164 |
</div>
|
| 165 |
+
</header>
|
| 166 |
|
| 167 |
+
<main id="main">
|
| 168 |
+
<div class="shell hero">
|
| 169 |
+
<div>
|
| 170 |
+
<div class="eyebrow">Governed decision infrastructure</div>
|
| 171 |
+
<h1>Autonomy,<br><span>under authority.</span></h1>
|
| 172 |
+
<p class="lede">Systems that can reason, act within a declared bound, and return evidence another party can verify.</p>
|
| 173 |
+
<div class="actions">
|
| 174 |
+
<a class="button primary" href="https://a-11-oy.com">Open the command system</a>
|
| 175 |
+
<a class="button secondary" href="https://a11oy.net">Inspect the proof registry</a>
|
| 176 |
+
<a class="button secondary" href="https://github.com/szl-holdings">View source</a>
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
<img class="hero-visual" src="assets/estate-command-system.svg" alt="Signal to policy to bounded action to receipt to verification">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
</div>
|
| 181 |
|
| 182 |
+
<section id="system">
|
| 183 |
+
<div class="shell">
|
| 184 |
+
<div class="section-head">
|
| 185 |
+
<div><div class="eyebrow">One governed loop</div><h2>Control before action. Evidence after.</h2></div>
|
| 186 |
+
<p class="section-copy">The model proposes. A policy layer validates authority and evidence. The runtime executes only within a declared bound. A portable receipt records the decision path for independent review.</p>
|
| 187 |
+
</div>
|
| 188 |
+
<div class="loop" aria-label="Governed loop stages">
|
| 189 |
+
<div class="steps">
|
| 190 |
+
<div class="step"><strong>Signal</strong><span>Observe and attribute the request.</span></div>
|
| 191 |
+
<div class="step"><strong>Reason</strong><span>Ground the proposal in disclosed context.</span></div>
|
| 192 |
+
<div class="step control"><strong>Policy</strong><span>Allow, require approval, or refuse.</span></div>
|
| 193 |
+
<div class="step control"><strong>Act</strong><span>Execute only inside the permitted bound.</span></div>
|
| 194 |
+
<div class="step evidence"><strong>Receipt</strong><span>Bind inputs, policy, action, and outcome.</span></div>
|
| 195 |
+
<div class="step evidence"><strong>Verify</strong><span>Replay evidence outside the product UI.</span></div>
|
| 196 |
+
</div>
|
| 197 |
+
</div>
|
| 198 |
+
</div>
|
| 199 |
+
</section>
|
| 200 |
|
| 201 |
+
<section id="artifacts">
|
| 202 |
+
<div class="shell">
|
| 203 |
+
<div class="section-head">
|
| 204 |
+
<div><div class="eyebrow">Hugging Face portfolio</div><h2>Artifacts with explicit boundaries.</h2></div>
|
| 205 |
+
<p class="section-copy">Models, datasets, tools, and demonstrations are different product objects. Each owns its license, lineage, evaluation, runtime, and limitation evidence.</p>
|
| 206 |
+
</div>
|
| 207 |
+
<div class="cards">
|
| 208 |
+
<a class="card" href="https://huggingface.co/SZLHOLDINGS/SZL-Forge-1.5B-ReceiptAgent">
|
| 209 |
+
<span class="tag">Model family</span><h3>ReceiptAgent</h3>
|
| 210 |
+
<p>Compact receipt proposal artifact. Use with a validating controller; no autonomous or high-stakes boundary is implied.</p><span class="arrow">Inspect the card →</span>
|
| 211 |
+
</a>
|
| 212 |
+
<a class="card" href="https://huggingface.co/SZLHOLDINGS/SZL-Khipu-1.5B">
|
| 213 |
+
<span class="tag">Model family</span><h3>Khipu</h3>
|
| 214 |
+
<p>Grounded estate-navigation model family. Pair with cited retrieval and independently inspect the source evidence.</p><span class="arrow">Inspect the family →</span>
|
| 215 |
+
</a>
|
| 216 |
+
<a class="card" href="https://huggingface.co/datasets/SZLHOLDINGS/szl-lake">
|
| 217 |
+
<span class="tag">Evidence dataset</span><h3>szl-lake</h3>
|
| 218 |
+
<p>Receipt and evidence records with explicit admission boundaries. A stored row is not automatically training-admitted.</p><span class="arrow">Inspect the lake →</span>
|
| 219 |
+
</a>
|
| 220 |
+
<a class="card" href="https://huggingface.co/datasets/SZLHOLDINGS/killinchu-osint-corpus">
|
| 221 |
+
<span class="tag">Research dataset</span><h3>Killinchu corpus</h3>
|
| 222 |
+
<p>Public-source research corpus for the operator demonstration. It is not an operational intelligence feed.</p><span class="arrow">Inspect provenance →</span>
|
| 223 |
+
</a>
|
| 224 |
+
<a class="card" href="https://huggingface.co/SZLHOLDINGS/szl-kernels">
|
| 225 |
+
<span class="tag">Kernel registry</span><h3>SZL Kernels</h3>
|
| 226 |
+
<p>Runtime and computation artifacts. Kernel source and executable tests do not imply trained model weights.</p><span class="arrow">Inspect compatibility →</span>
|
| 227 |
+
</a>
|
| 228 |
+
<a class="card" href="https://huggingface.co/spaces/SZLHOLDINGS/a11oy">
|
| 229 |
+
<span class="tag">Demonstration</span><h3>a11oy</h3>
|
| 230 |
+
<p>A public command-system surface. Running transport and operational capability remain separately evidenced.</p><span class="arrow">Open the Space →</span>
|
| 231 |
+
</a>
|
| 232 |
+
</div>
|
| 233 |
</div>
|
| 234 |
+
</section>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
|
| 236 |
+
<section id="evidence">
|
| 237 |
+
<div class="shell">
|
| 238 |
+
<div class="section-head">
|
| 239 |
+
<div><div class="eyebrow">Publication contract</div><h2>A card is not proof.</h2></div>
|
| 240 |
+
<p class="section-copy">Promotion requires exact lineage, hashes, load and inference evidence, evaluation, restart reproducibility, resource context, and an explicit autonomy boundary.</p>
|
| 241 |
+
</div>
|
| 242 |
+
<div class="contract">
|
| 243 |
+
<article><h3>Weights</h3><p>Base and license lineage, immutable hashes, clean load, held-out evaluation, restart evidence, resource envelope.</p></article>
|
| 244 |
+
<article><h3>Datasets</h3><p>Schema, splits, provenance, consent, PII posture, validation, quarantine, gaps, and update policy.</p></article>
|
| 245 |
+
<article><h3>Kernels</h3><p>Canonical source, supported hardware matrix, executable tests, benchmark protocol, and non-model classification.</p></article>
|
| 246 |
+
<article><h3>Spaces</h3><p>Source revision, dependency pins, served-revision binding, privacy behavior, limits, and a reproducible local path.</p></article>
|
| 247 |
+
</div>
|
| 248 |
|
| 249 |
+
<div class="truth" style="margin-top:48px">
|
| 250 |
+
<div class="truth-panel">
|
| 251 |
+
<h3>Evidence and runtime are separate axes.</h3>
|
| 252 |
+
<p>A signature establishes integrity and origin within scope. It does not automatically establish model quality, safety, regulatory compliance, profitability, or authorization to operate.</p>
|
| 253 |
+
<div class="labels">
|
| 254 |
+
<span class="label">PROVED</span><span class="label measured">MEASURED</span><span class="label">REPORTED</span><span class="label">MODELED</span><span class="label conjecture">CONJECTURE</span><span class="label">ROADMAP</span>
|
| 255 |
+
</div>
|
| 256 |
+
</div>
|
| 257 |
+
<div class="truth-panel">
|
| 258 |
+
<h3>Inspect the served source.</h3>
|
| 259 |
+
<p>This page is published from GitHub. The running Space exposes its source binding at <code>/deployment.json</code>.</p>
|
| 260 |
+
<a class="button secondary" href="deployment.json">Open deployment evidence</a>
|
| 261 |
+
</div>
|
| 262 |
+
</div>
|
| 263 |
+
</div>
|
| 264 |
+
</section>
|
| 265 |
|
| 266 |
+
<section class="closing">
|
| 267 |
+
<div class="shell closing-panel">
|
| 268 |
+
<div class="eyebrow">Build, evaluate, verify</div>
|
| 269 |
+
<h2>Move from model output to accountable action.</h2>
|
| 270 |
+
<p>Start with the product, follow the evidence, then reproduce the exact path from source.</p>
|
| 271 |
+
<div class="actions">
|
| 272 |
+
<a class="button primary" href="https://a-11-oy.com">Enter a11oy</a>
|
| 273 |
+
<a class="button secondary" href="https://holdings.a-11-oy.com/docs-site/">Read the documentation</a>
|
| 274 |
+
<a class="button secondary" href="https://github.com/szl-holdings/.github/blob/main/huggingface/org-card/HONEST_DISCLOSURE.md">Review limitations</a>
|
| 275 |
+
</div>
|
| 276 |
+
</div>
|
| 277 |
+
</section>
|
| 278 |
+
</main>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 279 |
|
| 280 |
+
<footer>
|
| 281 |
+
<div class="shell footer-row">
|
| 282 |
+
<div>© 2026 SZL Holdings · Govern · execute · prove</div>
|
| 283 |
+
<div class="footer-links"><a href="https://a11oy.net">Evidence</a><a href="https://github.com/szl-holdings/.github/security/policy">Security</a><a href="https://github.com/szl-holdings/.github/blob/main/SUPPORT.md">Support</a></div>
|
| 284 |
+
</div>
|
| 285 |
+
</footer>
|
| 286 |
</body>
|
| 287 |
</html>
|