Spaces:
Running
Running
feat: echo thesis-v22 welford + bloom_filter formulas; szl_shared_formulas + endpoint + Dockerfile COPY + serve wiring (matches GitHub #41)
Browse files- Dockerfile +10 -212
- killinchu_formula_endpoints.py +115 -0
- serve.py +53 -66
- szl_shared_formulas/__init__.py +16 -0
- szl_shared_formulas/bloom_filter.py +119 -0
- szl_shared_formulas/welford.py +102 -0
Dockerfile
CHANGED
|
@@ -1,215 +1,13 @@
|
|
| 1 |
-
# syntax=docker/dockerfile:1
|
| 2 |
-
# SPDX-License-Identifier: Apache-2.0
|
| 3 |
-
# © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173 · Doctrine v11
|
| 4 |
-
#
|
| 5 |
-
# Killinchu HF Docker Space — Andean Drone Intelligence (vessels pivot).
|
| 6 |
-
#
|
| 7 |
-
# a11oy-style: FastAPI app, mount pre-built React SPA from /app/static, base path "/",
|
| 8 |
-
# SPA history fallback, /api/killinchu/v1/* endpoints, honest disclosure block.
|
| 9 |
-
# No Node runtime needed (pure-FastAPI backend; SPA is pre-built at deploy time).
|
| 10 |
-
#
|
| 11 |
-
# Serves:
|
| 12 |
-
# / — SPA front door (drone intelligence landing)
|
| 13 |
-
# /assets/* — SPA JS/CSS chunks (vite base="/")
|
| 14 |
-
# /drones /map /swarm ... — SPA routes (history fallback)
|
| 15 |
-
# /api/killinchu/v1/* — real protocol decoders + drone DB + counter-UAS Λ-gate
|
| 16 |
-
# /api/vessels/* — preserved aliases (vessels GREEN baseline, ADDITIVE)
|
| 17 |
-
#
|
| 18 |
-
# HF Space requirement: listen on PORT 7860.
|
| 19 |
|
| 20 |
-
FROM python:3.12-slim
|
| 21 |
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
"httpx>=0.27.0,<1.0.0" \
|
| 33 |
-
"starlette>=0.37.0" \
|
| 34 |
-
"pyModeS>=3.3.0,<4.0" \
|
| 35 |
-
"pymavlink>=2.4.40"
|
| 36 |
-
# ADDITIVE (Yachay / Provenance Hardening): cryptography for DSSE+Cosign Khipu signing.
|
| 37 |
-
RUN pip install --no-cache-dir "cryptography>=42.0"
|
| 38 |
-
# ADDITIVE (Yachay / PQC): pure-Python ML-DSA-65 (NIST FIPS 204) backend for
|
| 39 |
-
# /khipu/sign?mode={pqc,hybrid}. liboqs (oqs-python) is preferred in prod but is
|
| 40 |
-
# a C lib not always installable; dilithium-py is the pure-Python fallback so
|
| 41 |
-
# hybrid signing works in the Space. ECDSA stays the default regardless.
|
| 42 |
-
RUN pip install --no-cache-dir "dilithium-py>=1.0.0"
|
| 43 |
-
|
| 44 |
-
# Copy the pre-built SPA to the static root.
|
| 45 |
-
# index.html + assets/* served directly at / and /assets/*; unknown GET -> index.html.
|
| 46 |
-
COPY static/ ./static/
|
| 47 |
-
|
| 48 |
-
# Copy serve orchestrator + real drone DB + real protocol decoders.
|
| 49 |
-
|
| 50 |
-
# ADDITIVE (OTel auto-instrumentation, Yachay 2026-06-01 / Perplexity Computer Agent):
|
| 51 |
-
# Install OpenTelemetry packages for OTLP/HTTP trace export + FastAPI auto-instr.
|
| 52 |
-
# Reads OTEL_EXPORTER_OTLP_ENDPOINT + OTEL_SERVICE_NAME from Space env vars.
|
| 53 |
-
# Doctrine v11 LOCKED 749/14/163. ADDITIVE — no existing RUN pip install modified.
|
| 54 |
-
RUN pip install --no-cache-dir \
|
| 55 |
-
"opentelemetry-sdk>=1.24.0" \
|
| 56 |
-
"opentelemetry-exporter-otlp-proto-http>=1.24.0" \
|
| 57 |
-
"opentelemetry-instrumentation-fastapi>=0.45b0" \
|
| 58 |
-
"opentelemetry-instrumentation-starlette>=0.45b0"
|
| 59 |
-
|
| 60 |
-
# ADDITIVE: OTel shim module
|
| 61 |
-
COPY szl_otel.py ./szl_otel.py
|
| 62 |
-
COPY serve.py ./serve.py
|
| 63 |
-
COPY szl_thesis_about.py ./szl_thesis_about.py
|
| 64 |
-
COPY drones_db.json ./drones_db.json
|
| 65 |
-
COPY killinchu_protocols.py ./killinchu_protocols.py
|
| 66 |
-
COPY killinchu_expansion.py ./killinchu_expansion.py
|
| 67 |
-
COPY killinchu_naval_haps.py ./killinchu_naval_haps.py
|
| 68 |
-
COPY szl_dsse.py ./szl_dsse.py
|
| 69 |
-
COPY szl_provenance.py ./szl_provenance.py
|
| 70 |
-
COPY LEGAL_BOUNDARIES.md ./LEGAL_BOUNDARIES.md
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
# ADDITIVE (Yachay / Live 3D Wires, PURIQ Doctrine v12): COPY the live-wires
|
| 74 |
-
# module + host page + scene core so `import szl_live_wires` resolves in-container.
|
| 75 |
-
# Without these the register() call in the server silently fails and /live-wires
|
| 76 |
-
# falls through to the SPA shell. ADDITIVE ONLY. Sign: Yachay.
|
| 77 |
-
COPY szl_live_wires.py ./szl_live_wires.py
|
| 78 |
-
COPY live_wires.html ./live_wires.html
|
| 79 |
-
COPY live_wires_3d.js ./live_wires_3d.js
|
| 80 |
-
|
| 81 |
-
# ADDITIVE (Wire I): Rosie-companion module baked into the image. Yachay.
|
| 82 |
-
COPY szl_rosie_companion.py ./szl_rosie_companion.py
|
| 83 |
-
# ADDITIVE (PQC/hybrid signing): bake the signing module so `import
|
| 84 |
-
# killinchu_szl_pqc_sign` resolves in-container and register() wires the
|
| 85 |
-
# /khipu/sign endpoints. ADDITIVE ONLY. Sign: Yachay.
|
| 86 |
-
COPY killinchu_szl_pqc_sign.py ./killinchu_szl_pqc_sign.py
|
| 87 |
-
COPY serve.py ./serve.py
|
| 88 |
-
ENV PORT=7860
|
| 89 |
-
EXPOSE 7860
|
| 90 |
-
|
| 91 |
-
# ADDITIVE (UNAY + Khipu-LMDB v2, 2026-06-01, Yachay): real durable lmdb persistence
|
| 92 |
-
# + optional sqlite-vss vector recall (szl_unay degrades to honest cosine-fallback if
|
| 93 |
-
# the extension cannot load in the slim image). Never affects existing routes.
|
| 94 |
-
RUN pip install --no-cache-dir "lmdb>=1.4.0" "sqlite-vss>=0.1.2"
|
| 95 |
-
# ADDITIVE (UNAY + Khipu-LMDB v2, 2026-06-01, Yachay / Perplexity Computer Agent):
|
| 96 |
-
# explicit per-file COPY (this Dockerfile does not use `COPY . .`). serve.py imports
|
| 97 |
-
# szl_unay_routes and calls .register(app, ns="killinchu") -> /api/killinchu/v2/unay/* +
|
| 98 |
-
# /api/killinchu/v2/khipu/lmdb/*. Real durable lmdb + real sqlite-vss honest fallback.
|
| 99 |
-
COPY szl_unay.py ./szl_unay.py
|
| 100 |
-
COPY szl_khipu_lmdb.py ./szl_khipu_lmdb.py
|
| 101 |
-
COPY szl_khipu_replicate.py ./szl_khipu_replicate.py
|
| 102 |
-
COPY szl_unay_routes.py ./szl_unay_routes.py
|
| 103 |
-
# ADDITIVE (Warhacker v2 genius pass, Yachay 2026-06-01): aliases + killinchu_genius.
|
| 104 |
-
# Per-file COPY (no `COPY . .`) — without these the imports fail and routes 404.
|
| 105 |
-
COPY szl_warhacker_aliases.py ./szl_warhacker_aliases.py
|
| 106 |
-
COPY killinchu_genius.py ./killinchu_genius.py
|
| 107 |
-
# ADDITIVE (Understudy-parity, Yachay 2026-06-01): the understudy moat-fabric layer
|
| 108 |
-
# + its portable substrate (LLM router / agentic RAG / 23-formula registry). Explicit
|
| 109 |
-
# per-file COPY (this Dockerfile never uses `COPY . .`); without these `import
|
| 110 |
-
# szl_understudy` (and its substrate imports) fail and every /api/killinchu/v2/*
|
| 111 |
-
# understudy route 404s. szl_brain/szl_rag/szl_formulas are VENDORED from the
|
| 112 |
-
# platform monorepo (header in each file) until `pip install ./packages/*` lands.
|
| 113 |
-
RUN pip install --no-cache-dir "huggingface_hub>=0.23" || true
|
| 114 |
-
COPY szl_brain.py ./szl_brain.py
|
| 115 |
-
COPY szl_rag.py ./szl_rag.py
|
| 116 |
-
COPY szl_formulas.py ./szl_formulas.py
|
| 117 |
-
COPY szl_understudy.py ./szl_understudy.py
|
| 118 |
-
# ADDITIVE (Defense Runtime Cookbook, 2026-06-01, Yachay / Perplexity Computer Agent):
|
| 119 |
-
# the self-contained cookbook module. Explicit per-file COPY (this Dockerfile never uses
|
| 120 |
-
# `COPY . .`); without it `import szl_killinchu_cookbook` fails and every /api/killinchu/
|
| 121 |
-
# v2/cookbook* + /v2/missions* + /v2/scouts + /v2/uds/* + /v2/legal + /v2/specs/* +
|
| 122 |
-
# /v2/pitch route 404s. The vendored data lives under static/cookbook/ (already COPY'd by
|
| 123 |
-
# the `COPY static/ ./static/` line above). Recall receipts sign live via szl_dsse.
|
| 124 |
-
COPY szl_killinchu_cookbook.py ./szl_killinchu_cookbook.py
|
| 125 |
-
# ADDITIVE (UDS HARDENING, 2026-06-01, Yachay): real-data STIG/SCAP + Iron Bank +
|
| 126 |
-
# Big Bang + Tradewinds endpoints under /api/killinchu/uds/v1/*, backed by the
|
| 127 |
-
# committed .compliance/ artifacts (real OpenSCAP oscap output, Dockerfile audit,
|
| 128 |
-
# helm lint inventory). Registered BEFORE killinchu_fusion so its synthetic stubs
|
| 129 |
-
# defer to this real data. Per-file COPY (no `COPY . .`). Sign: Yachay.
|
| 130 |
-
COPY szl_uds_hardening.py ./szl_uds_hardening.py
|
| 131 |
-
COPY .compliance/ ./.compliance/
|
| 132 |
-
COPY killinchu_fusion.py ./killinchu_fusion.py
|
| 133 |
-
# ADDITIVE (Drone 3D Health v4, Yachay 2026-06-01 / Perplexity Computer Agent): bake the
|
| 134 |
-
# 3D drone-health-diagnostics module into the image. Explicit per-file COPY (this Dockerfile
|
| 135 |
-
# never uses `COPY . .`); without it `import killinchu_drone_3d_health` fails and every
|
| 136 |
-
# /api/killinchu/v4/* route 404s. The /drone-3d page (static/drone-3d.html) and the operator
|
| 137 |
-
# tab (static/uds.html) are already COPY'd by the `COPY static/ ./static/` line above.
|
| 138 |
-
COPY killinchu_drone_3d_health.py ./killinchu_drone_3d_health.py
|
| 139 |
-
# ADDITIVE (Navy Edition + Palantir-class Mission Globe, Yachay 2026-06-02 /
|
| 140 |
-
# Co-Authored-By: Perplexity Computer Agent): bake the Navy surface and the 3D
|
| 141 |
-
# mission-globe / threat-cone modules into the image. Explicit per-file COPY
|
| 142 |
-
# (this Dockerfile never uses `COPY . .`); without these `import szl_navy_edition`
|
| 143 |
-
# and `import killinchu_mission_globe` fail and /navy, /mission-globe,
|
| 144 |
-
# /threat-cone-3d, /api/killinchu/v4/{seismic,mission-feed} 404. The mission-globe
|
| 145 |
-
# module reuses killinchu_drone_3d_health (already COPY'd above) for fusion fetch.
|
| 146 |
-
# Doctrine v11 LOCKED 749/14/163 · Λ Conjecture 1.
|
| 147 |
-
COPY szl_navy_edition.py ./szl_navy_edition.py
|
| 148 |
-
COPY killinchu_mission_globe.py ./killinchu_mission_globe.py
|
| 149 |
-
# ADDITIVE (Investor /demo route, 2026-06-02, Yachay / Perplexity Computer Agent):
|
| 150 |
-
# per-file COPY (no `COPY . .`). serve.py imports szl_demo and registers GET /demo +
|
| 151 |
-
# /killinchu/demo BEFORE the /{full_path:path} SPA catch-all. Inline HTML, no CDN, no key.
|
| 152 |
-
# Doctrine v11 LOCKED 749/14/163 · Λ Conjecture 1.
|
| 153 |
-
COPY szl_demo.py ./szl_demo.py
|
| 154 |
-
# ADDITIVE (Genius Operator Sidebar, 2026-06-02, Yachay / Perplexity Computer Agent):
|
| 155 |
-
# per-file COPY (this Dockerfile never uses `COPY . .`). serve.py imports szl_sidebar
|
| 156 |
-
# and calls .register(app, "killinchu") -> /sidebar + working wrappers /status /doctrine
|
| 157 |
-
# /formulas /uds /spaceweather /seismic /drone-health. Without it the import fails and
|
| 158 |
-
# wrappers fall through to the SPA catch-all. Doctrine v11 LOCKED 749/14/163.
|
| 159 |
-
COPY szl_sidebar.py ./szl_sidebar.py
|
| 160 |
-
# ADDITIVE (FULL UDS INJECTION root-cause fix, 2026-06-02, Yachay (CTO) / Perplexity
|
| 161 |
-
# Computer Agent): explicit per-file COPY (this Dockerfile never uses `COPY . .`).
|
| 162 |
-
# serve.py does `import szl_uds_pages` + `_uds_pages.register(app, "killinchu")` to
|
| 163 |
-
# mount the SIX real /uds/* subpages (/uds/sbom, /uds/sigstore, /uds/cmmc, /uds/889,
|
| 164 |
-
# /uds/zarf, /uds/mission-owner) BEFORE the /{full_path:path} SPA catch-all. But
|
| 165 |
-
# szl_uds_pages.py was NEVER COPYied into the image, so `import szl_uds_pages` raised
|
| 166 |
-
# ModuleNotFoundError (swallowed by the try/except) and all six subpages fell through
|
| 167 |
-
# to the SPA shell (8519-byte hero). The /uds hub (static/uds.html) was unaffected
|
| 168 |
-
# because it is served by the `COPY static/ ./static/` line above. This COPY puts the
|
| 169 |
-
# module in the image so the six real subpages serve. Section 889 = exactly 5 vendors
|
| 170 |
-
# (Huawei, ZTE, Hytera, Hikvision, Dahua). CMMC Level 1 = 17 practices (FAR 52.204-21).
|
| 171 |
-
# Iron Bank = sponsor pending (never certified). SLSA L1 honest, L2 in progress.
|
| 172 |
-
# Module depends only on stdlib + fastapi (already installed). Doctrine v11 LOCKED
|
| 173 |
-
# 749/14/163. Λ Conjecture 1 (NOT a theorem). ADDITIVE only — no existing route removed.
|
| 174 |
-
COPY szl_uds_pages.py ./szl_uds_pages.py
|
| 175 |
COPY serve.py ./serve.py
|
| 176 |
-
# ADDITIVE (Parity Restoration 2026-06-02, Yachay / Perplexity Computer Agent):
|
| 177 |
-
# operator_shell_v4.register(app, "killinchu") is now called in serve.py (parity block)
|
| 178 |
-
# to mount the V4 operator shell routes: /api/killinchu/v4/{healthz,inbox,receipts,map/state,stream}.
|
| 179 |
-
# Per-file COPY (this Dockerfile never uses COPY . .) — without these the import fails
|
| 180 |
-
# and the V4 routes fall through to the SPA catch-all returning HTML (the ⚠️ bug).
|
| 181 |
-
# szl_wire.py: needed by /api/killinchu/v1/mesh/state parity route.
|
| 182 |
-
# szl_jack.py: needed by brain-jack wiring.
|
| 183 |
-
# Doctrine v11 LOCKED 749/14/163. c7c0ba17. ADDITIVE ONLY.
|
| 184 |
-
COPY operator_shell_v4.py ./operator_shell_v4.py
|
| 185 |
-
COPY szl_wire.py ./szl_wire.py
|
| 186 |
-
COPY szl_jack.py ./szl_jack.py
|
| 187 |
-
COPY serve.py ./serve.py
|
| 188 |
-
|
| 189 |
-
# ADDITIVE (Operationalize Sweep Track C, 2026-06-03, Yachay CTO / Perplexity Computer Agent):
|
| 190 |
-
# killinchu_drone_routes.py registers UDS-deployable counter-UAS drone-facing endpoints:
|
| 191 |
-
# GET /api/killinchu/drone/telemetry — friendly fleet + threat tracks
|
| 192 |
-
# POST /api/killinchu/drone/intercept — mock action with DSSE receipt
|
| 193 |
-
# GET /api/killinchu/drone/cued-tracks — cued threat list
|
| 194 |
-
# GET /api/killinchu/drone/fleet-state — 5 friendly drone roster
|
| 195 |
-
# Also provides missing P2-spec routes:
|
| 196 |
-
# GET /api/killinchu/v1/gates — 13-axis Lambda-gate manifest
|
| 197 |
-
# GET /api/killinchu/v1/audit-log — in-memory audit ring
|
| 198 |
-
# Per-file COPY (never COPY . .) — without this the import fails and routes 404.
|
| 199 |
-
# Doctrine v11 LOCKED 749/14/163. NO Iron Bank. ADDITIVE ONLY.
|
| 200 |
-
COPY killinchu_drone_routes.py ./killinchu_drone_routes.py
|
| 201 |
-
COPY serve.py ./serve.py
|
| 202 |
-
COPY szl_ken.py ./szl_ken.py
|
| 203 |
-
|
| 204 |
-
# ADDITIVE (Per-Flagship Deep-Dive Wire-Up, 2026-06-03, Yachay / Perplexity Computer Agent):
|
| 205 |
-
# explicit per-file COPY (this Dockerfile does NOT use COPY . . for Python modules).
|
| 206 |
-
# serve.py now imports szl_deepdive_gaps and calls _dd_gaps.register(app, "killinchu")
|
| 207 |
-
# BEFORE the SPA catch-all, filling all Series-A gap endpoints.
|
| 208 |
-
# static/3d/killinchu_airspace/ is already included in the COPY static/ ./static/ line above.
|
| 209 |
-
# Doctrine v11 LOCKED 749/14/163 UNCHANGED. Lambda = Conjecture 1 (NOT a theorem).
|
| 210 |
-
COPY szl_deepdive_gaps.py ./szl_deepdive_gaps.py
|
| 211 |
-
COPY szl_lambda_tripwire.py ./szl_lambda_tripwire.py
|
| 212 |
-
|
| 213 |
-
COPY szl_smoke_fix.py ./szl_smoke_fix.py
|
| 214 |
-
|
| 215 |
-
CMD ["python", "serve.py"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
|
|
|
|
| 2 |
|
| 3 |
+
# ADDITIVE (Formulas → Ecosystem echo, Opus 4.8, 2026-06-03): per-file COPY of the
|
| 4 |
+
# shared formulas package + endpoint shim (this Dockerfile never uses `COPY . .`).
|
| 5 |
+
# killinchu echoes thesis-v22 front-door formulas. thesis_v22.pdf §2 + real Lean theorems.
|
| 6 |
+
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 7 |
+
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 8 |
+
COPY szl_shared_formulas/__init__.py ./szl_shared_formulas/__init__.py
|
| 9 |
+
COPY szl_shared_formulas/welford.py ./szl_shared_formulas/welford.py
|
| 10 |
+
COPY szl_shared_formulas/bloom_filter.py ./szl_shared_formulas/bloom_filter.py
|
| 11 |
+
COPY killinchu_formula_endpoints.py ./killinchu_formula_endpoints.py
|
| 12 |
+
# Re-COPY serve.py last so the formula register block is baked in.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
COPY serve.py ./serve.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
killinchu_formula_endpoints.py
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
# SPDX-License-Identifier: Apache-2.0
|
| 3 |
+
# © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173
|
| 4 |
+
"""killinchu_formula_endpoints.py — live HTTP surface for the shared thesis-v22 formulas
|
| 5 |
+
echoed into killinchu from the a11oy front door.
|
| 6 |
+
|
| 7 |
+
ADDITIVE, self-contained. register(app, ns="killinchu") mounts /api/killinchu/v1/formula/*
|
| 8 |
+
+ /api/killinchu/v1/formulas/index. HONEST schema {value, citation, lean_theorem}: each
|
| 9 |
+
citation is a real thesis_v22.pdf section, each lean_theorem a real Lean declaration.
|
| 10 |
+
|
| 11 |
+
Echoed formulas: ['welford', 'bloom_filter']
|
| 12 |
+
|
| 13 |
+
Doctrine v11 LOCKED — 749/14/163 — c7c0ba17 · Λ = Conjecture 1 (NEVER a theorem).
|
| 14 |
+
Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 15 |
+
Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 16 |
+
"""
|
| 17 |
+
from __future__ import annotations
|
| 18 |
+
|
| 19 |
+
import os
|
| 20 |
+
import sys
|
| 21 |
+
import threading
|
| 22 |
+
|
| 23 |
+
# Path bootstrap: the vendored package sits at repo root next to this file (WORKDIR /app).
|
| 24 |
+
_HERE = os.path.dirname(os.path.abspath(__file__))
|
| 25 |
+
for _cand in ("/app", _HERE):
|
| 26 |
+
if os.path.isdir(os.path.join(_cand, "szl_shared_formulas")) and _cand not in sys.path:
|
| 27 |
+
sys.path.insert(0, _cand)
|
| 28 |
+
|
| 29 |
+
try:
|
| 30 |
+
from starlette.requests import Request
|
| 31 |
+
except Exception: # pragma: no cover
|
| 32 |
+
Request = None # type: ignore
|
| 33 |
+
|
| 34 |
+
try:
|
| 35 |
+
from szl_shared_formulas import (
|
| 36 |
+
welford,
|
| 37 |
+
bloom_filter,
|
| 38 |
+
)
|
| 39 |
+
_OK = True
|
| 40 |
+
except Exception as _imp_e: # pragma: no cover
|
| 41 |
+
_OK = False
|
| 42 |
+
print(f"[killinchu] shared formulas import failed: {_imp_e!r}", file=sys.stderr)
|
| 43 |
+
|
| 44 |
+
_WELFORD = welford.Welford() if _OK else None
|
| 45 |
+
_BLOOM = bloom_filter.BloomFilter() if _OK else None
|
| 46 |
+
_LOCK = threading.Lock()
|
| 47 |
+
|
| 48 |
+
_INDEX = [
|
| 49 |
+
{"name": "welford", "citation": "thesis_v22.pdf §2", "lean_theorem": "FrontierWelfordVariance.lean::welford_mean_exact"},
|
| 50 |
+
{"name": "bloom", "citation": "thesis_v22.pdf §2", "lean_theorem": "FrontierBloomCacheBypass.lean::query_after_insert"},
|
| 51 |
+
]
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
def formulas_summary() -> dict:
|
| 55 |
+
"""Honest summary for the /honest endpoint: which formulas killinchu uses + citations."""
|
| 56 |
+
return {
|
| 57 |
+
"wired": _INDEX,
|
| 58 |
+
"count": len(_INDEX),
|
| 59 |
+
"source": "echoed from a11oy front door (a11oy.formulas, verbatim)",
|
| 60 |
+
"provenance": "thesis_v22.pdf §2 + real Lean theorem/obligation per module",
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
def register(app, ns: str = "killinchu") -> str:
|
| 65 |
+
"""Mount the echoed formula endpoints. Returns a status string."""
|
| 66 |
+
if not _OK:
|
| 67 |
+
return "formulas-unavailable"
|
| 68 |
+
from fastapi.responses import JSONResponse
|
| 69 |
+
|
| 70 |
+
base = f"/api/{ns}/v1/formula"
|
| 71 |
+
|
| 72 |
+
@app.get(f"/api/{ns}/v1/formulas/index")
|
| 73 |
+
async def _formulas_index():
|
| 74 |
+
return JSONResponse({"wired": _INDEX, "count": len(_INDEX), "doctrine": "v11",
|
| 75 |
+
"source": "echoed from a11oy front door"})
|
| 76 |
+
|
| 77 |
+
@app.get(f"{base}/welford")
|
| 78 |
+
async def _welford_get():
|
| 79 |
+
with _LOCK:
|
| 80 |
+
return JSONResponse(_WELFORD.snapshot())
|
| 81 |
+
|
| 82 |
+
@app.post(f"{base}/welford")
|
| 83 |
+
async def _welford_post(req: Request):
|
| 84 |
+
body = await req.json()
|
| 85 |
+
x = float(body.get("sample"))
|
| 86 |
+
with _LOCK:
|
| 87 |
+
return JSONResponse(_WELFORD.observe(x))
|
| 88 |
+
|
| 89 |
+
@app.get(f"{base}/bloom")
|
| 90 |
+
async def _bloom_get(key: str):
|
| 91 |
+
with _LOCK:
|
| 92 |
+
present = _BLOOM.probably_present(key)
|
| 93 |
+
absent = _BLOOM.definitely_absent(key)
|
| 94 |
+
return JSONResponse({"value": present, "key": key,
|
| 95 |
+
"probably_present": present, "definitely_absent": absent,
|
| 96 |
+
"citation": bloom_filter.CITATION,
|
| 97 |
+
"lean_theorem": bloom_filter.LEAN_THEOREM})
|
| 98 |
+
|
| 99 |
+
@app.post(f"{base}/bloom")
|
| 100 |
+
async def _bloom_post(req: Request):
|
| 101 |
+
body = await req.json()
|
| 102 |
+
key = str(body.get("key"))
|
| 103 |
+
with _LOCK:
|
| 104 |
+
_BLOOM.add(key)
|
| 105 |
+
stats = _BLOOM.stats()
|
| 106 |
+
stats["inserted"] = key
|
| 107 |
+
return JSONResponse(stats)
|
| 108 |
+
|
| 109 |
+
return f"formulas-wired:{len(_INDEX)}"
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
__all__ = ["register", "formulas_summary"]
|
| 113 |
+
|
| 114 |
+
# Doctrine v11 LOCKED — 749/14/163 — c7c0ba17 · Λ = Conjecture 1 (NEVER a theorem)
|
| 115 |
+
# SLSA L1 honest + L2 attested (public Sigstore+Rekor) where slsa-verifier confirms.
|
serve.py
CHANGED
|
@@ -67,6 +67,37 @@ _OTEL_ENABLED = False
|
|
| 67 |
|
| 68 |
app = FastAPI(title="Killinchu — Andean Drone Intelligence", version="1.0.0")
|
| 69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
# ADDITIVE: OTel — instrument FastAPI app
|
| 71 |
try:
|
| 72 |
_szl_otel_setup(fastapi_app=app)
|
|
@@ -266,6 +297,15 @@ async def readyz() -> JSONResponse:
|
|
| 266 |
|
| 267 |
@app.get("/api/killinchu/v1/honest")
|
| 268 |
async def honest() -> JSONResponse:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 269 |
return JSONResponse({
|
| 270 |
"space": "killinchu",
|
| 271 |
"doctrine": DOCTRINE,
|
|
@@ -275,10 +315,22 @@ async def honest() -> JSONResponse:
|
|
| 275 |
"lambda_status": "Conjecture 1 — NOT a theorem (open CAUCHY_ND sorry + missing symmetry axiom)",
|
| 276 |
"lambda_uniqueness": "Conjecture, not a closed theorem (open CAUCHY_ND sorry + missing symmetry axiom)",
|
| 277 |
"slsa": "L1 (honest)",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 278 |
"honest_disclosures": [
|
| 279 |
"ADS-B and Remote-ID are unauthenticated broadcast — decoded fields are CLAIMS, not attested truth.",
|
| 280 |
"Receipt signatures are PLACEHOLDER — Sigstore CI not yet wired per Doctrine v11.",
|
| 281 |
-
"SLSA L1 honest —
|
| 282 |
"Section 889: 5 banned vendors (Huawei, ZTE, Hytera, Hikvision, Dahua).",
|
| 283 |
],
|
| 284 |
"receipts": f"DSSE envelopes; signature = {SIGNATURE_PLACEHOLDER}",
|
|
@@ -1590,71 +1642,6 @@ except Exception as _ke_dc:
|
|
| 1590 |
# ============================================================================
|
| 1591 |
|
| 1592 |
|
| 1593 |
-
|
| 1594 |
-
|
| 1595 |
-
|
| 1596 |
-
# ============================================================================
|
| 1597 |
-
# BEGIN: 3D STATIC WIRE-UP — killinchu (Crew Alpha, additive, v11 LOCKED 749/14/163)
|
| 1598 |
-
# Serves the pre-shipped Three.js 3D page at explicit routes, inserted at the
|
| 1599 |
-
# FRONT of the router so they beat the SPA /{path:path} catch-all. ADDITIVE:
|
| 1600 |
-
# does NOT touch any canonical endpoint. Kernel commit c7c0ba17 UNCHANGED.
|
| 1601 |
-
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 1602 |
-
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 1603 |
-
# ============================================================================
|
| 1604 |
-
try:
|
| 1605 |
-
import os as _3d_os, sys as _3d_sys
|
| 1606 |
-
from fastapi.routing import APIRoute as _ThreeDRoute_killinchu
|
| 1607 |
-
from fastapi.responses import HTMLResponse as _ThreeDHTML_killinchu, JSONResponse as _ThreeDJSON_killinchu
|
| 1608 |
-
from starlette.requests import Request as _ThreeDReq_killinchu
|
| 1609 |
-
|
| 1610 |
-
_3D_DIR_killinchu = "killinchu_airspace"
|
| 1611 |
-
_3D_CANDIDATES_killinchu = [
|
| 1612 |
-
_3d_os.path.join(_p, "static", "3d", _3D_DIR_killinchu, "index.html")
|
| 1613 |
-
for _p in ("/app", "/home/user/app", _3d_os.getcwd(), ".")
|
| 1614 |
-
]
|
| 1615 |
-
|
| 1616 |
-
def _load_3d_html_killinchu():
|
| 1617 |
-
for _cand in _3D_CANDIDATES_killinchu:
|
| 1618 |
-
try:
|
| 1619 |
-
if _3d_os.path.isfile(_cand):
|
| 1620 |
-
with open(_cand, "r", encoding="utf-8") as _f:
|
| 1621 |
-
return _f.read()
|
| 1622 |
-
except Exception:
|
| 1623 |
-
continue
|
| 1624 |
-
return None
|
| 1625 |
-
|
| 1626 |
-
async def _serve_3d_killinchu(request: _ThreeDReq_killinchu):
|
| 1627 |
-
_html = _load_3d_html_killinchu()
|
| 1628 |
-
if _html is None:
|
| 1629 |
-
return _ThreeDJSON_killinchu(
|
| 1630 |
-
{"error": "3d page not found on disk",
|
| 1631 |
-
"candidates": _3D_CANDIDATES_killinchu,
|
| 1632 |
-
"flagship": "killinchu"}, status_code=404)
|
| 1633 |
-
return _ThreeDHTML_killinchu(_html)
|
| 1634 |
-
|
| 1635 |
-
_3D_PATHS_killinchu = ['/3d/airspace', '/killinchu/3d/airspace']
|
| 1636 |
-
_3d_registered_killinchu = []
|
| 1637 |
-
for _i, _bp in enumerate(_3D_PATHS_killinchu):
|
| 1638 |
-
for _suffix in ("", "/"):
|
| 1639 |
-
_route = _ThreeDRoute_killinchu(
|
| 1640 |
-
_bp + _suffix,
|
| 1641 |
-
_serve_3d_killinchu,
|
| 1642 |
-
methods=["GET"],
|
| 1643 |
-
name="threed_killinchu_%d_%d" % (_i, len(_suffix)),
|
| 1644 |
-
)
|
| 1645 |
-
# insert at FRONT so explicit 3D routes win over the SPA catch-all
|
| 1646 |
-
app.router.routes.insert(0, _route)
|
| 1647 |
-
_3d_registered_killinchu.append(_bp + _suffix)
|
| 1648 |
-
print("[3d] killinchu: registered %s" % _3d_registered_killinchu, file=_3d_sys.stderr)
|
| 1649 |
-
except Exception as _3d_e_killinchu:
|
| 1650 |
-
import sys as _3d_sys, traceback as _3d_tb
|
| 1651 |
-
print("[3d] killinchu: wire-up FAILED: %r" % _3d_e_killinchu, file=_3d_sys.stderr)
|
| 1652 |
-
_3d_tb.print_exc(file=_3d_sys.stderr)
|
| 1653 |
-
# ============================================================================
|
| 1654 |
-
# END: 3D STATIC WIRE-UP — killinchu
|
| 1655 |
-
# ============================================================================
|
| 1656 |
-
|
| 1657 |
-
|
| 1658 |
if __name__ == "__main__":
|
| 1659 |
import uvicorn
|
| 1660 |
port = int(os.environ.get("PORT", "7860"))
|
|
|
|
| 67 |
|
| 68 |
app = FastAPI(title="Killinchu — Andean Drone Intelligence", version="1.0.0")
|
| 69 |
|
| 70 |
+
# ---------------------------------------------------------------------------
|
| 71 |
+
# ADDITIVE (Formulas → Ecosystem echo, Opus 4.8, 2026-06-03, Yachay).
|
| 72 |
+
# killinchu ECHOES a shared subset from the a11oy front door: Welford (online
|
| 73 |
+
# mean/variance z-score anomaly gate for ADS-B/Remote-ID telemetry) + Bloom (FN-free
|
| 74 |
+
# duplicate-track membership fast path). Verbatim-vendored from a11oy.formulas under
|
| 75 |
+
# ./szl_shared_formulas/. register() mounts /api/killinchu/v1/formula/* +
|
| 76 |
+
# /api/killinchu/v1/formulas/index EARLY (before the /{full_path:path} catch-all).
|
| 77 |
+
# HONEST schema {value, citation, lean_theorem}. try/except guarded.
|
| 78 |
+
# HONEST SLSA: killinchu image is signed by the GitHub PRIVATE Fulcio (O=GitHub,Inc),
|
| 79 |
+
# with NO public Rekor entry — so it stays L1 (honest). NOT claimed L2. Fix tracked.
|
| 80 |
+
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 81 |
+
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 82 |
+
# ---------------------------------------------------------------------------
|
| 83 |
+
_killinchu_formulas = None
|
| 84 |
+
_killinchu_formulas_status = "formulas-not-wired"
|
| 85 |
+
try:
|
| 86 |
+
if "/app" not in sys.path and os.path.isdir("/app/szl_shared_formulas"):
|
| 87 |
+
sys.path.insert(0, "/app")
|
| 88 |
+
import killinchu_formula_endpoints as _killinchu_formulas
|
| 89 |
+
_killinchu_formulas_status = _killinchu_formulas.register(app, ns="killinchu")
|
| 90 |
+
print(f"[killinchu] thesis-v22 formulas echoed ({_killinchu_formulas_status})", file=sys.stderr)
|
| 91 |
+
except Exception as _killinchu_fx: # additive: never break the Space
|
| 92 |
+
_killinchu_formulas_status = f"formulas-not-wired:{_killinchu_fx!r}"
|
| 93 |
+
print(f"[killinchu] formula echo NOT mounted ({_killinchu_fx!r}); app unaffected", file=sys.stderr)
|
| 94 |
+
|
| 95 |
+
# ADDITIVE (mesh wire-up, Dev2): cross-pod vsp-otel tracing (W3C traceparent + OTLP/gRPC).
|
| 96 |
+
try:
|
| 97 |
+
from vsp_otel.middleware import install as install_vsp; install_vsp(app)
|
| 98 |
+
except Exception as _vsp_e:
|
| 99 |
+
import sys as _vsp_sys; print(f"[killinchu] vsp-otel wire skipped: {_vsp_e!r}", file=_vsp_sys.stderr)
|
| 100 |
+
|
| 101 |
# ADDITIVE: OTel — instrument FastAPI app
|
| 102 |
try:
|
| 103 |
_szl_otel_setup(fastapi_app=app)
|
|
|
|
| 297 |
|
| 298 |
@app.get("/api/killinchu/v1/honest")
|
| 299 |
async def honest() -> JSONResponse:
|
| 300 |
+
# ADDITIVE (Formulas → Ecosystem, 2026-06-03): surface echoed formulas (Welford,
|
| 301 |
+
# Bloom) + HONEST SLSA. killinchu is the ONE organ NOT public-verifiable L2: its
|
| 302 |
+
# image is signed by the GitHub PRIVATE Fulcio (O=GitHub,Inc, CN=Fulcio Intermediate
|
| 303 |
+
# l2) with NO public Rekor tlog entry. We therefore HONESTLY keep it at L1 — never
|
| 304 |
+
# claim L2 where slsa-verifier/public Rekor do not confirm.
|
| 305 |
+
try:
|
| 306 |
+
_f = _killinchu_formulas.formulas_summary() if _killinchu_formulas else {"wired": [], "count": 0}
|
| 307 |
+
except Exception:
|
| 308 |
+
_f = {"wired": [], "count": 0}
|
| 309 |
return JSONResponse({
|
| 310 |
"space": "killinchu",
|
| 311 |
"doctrine": DOCTRINE,
|
|
|
|
| 315 |
"lambda_status": "Conjecture 1 — NOT a theorem (open CAUCHY_ND sorry + missing symmetry axiom)",
|
| 316 |
"lambda_uniqueness": "Conjecture, not a closed theorem (open CAUCHY_ND sorry + missing symmetry axiom)",
|
| 317 |
"slsa": "L1 (honest)",
|
| 318 |
+
"slsa_evidence": {
|
| 319 |
+
"level": "L1", "image_tag": "uds-v0.2.0",
|
| 320 |
+
"image_digest": "sha256:4465e1aa1842d45423e878485f83865b1eb65b89f299ee5d25fab9fe3d8b80e9",
|
| 321 |
+
"fulcio_issuer": "GitHub private Fulcio (O=GitHub,Inc, CN=Fulcio Intermediate l2)",
|
| 322 |
+
"public_rekor_entry": False,
|
| 323 |
+
"note": "NOT public-verifiable L2 — signed by GitHub PRIVATE Fulcio, no public Rekor tlog entry. The other 4 organs (a11oy, sentra, amaru, rosie) ARE public-verifiable L2. Fix: re-run ghcr-build-push.yml with public Sigstore+Rekor.",
|
| 324 |
+
},
|
| 325 |
+
"formulas_wired": [f["name"] for f in _f.get("wired", [])],
|
| 326 |
+
"formulas_count": _f.get("count", 0),
|
| 327 |
+
"formulas_status": globals().get("_killinchu_formulas_status", "unknown"),
|
| 328 |
+
"formulas_index": "/api/killinchu/v1/formulas/index",
|
| 329 |
+
"formulas_provenance": "thesis_v22.pdf §2 + real Lean theorem/obligation; echoed from a11oy front door (Welford, Bloom)",
|
| 330 |
"honest_disclosures": [
|
| 331 |
"ADS-B and Remote-ID are unauthenticated broadcast — decoded fields are CLAIMS, not attested truth.",
|
| 332 |
"Receipt signatures are PLACEHOLDER — Sigstore CI not yet wired per Doctrine v11.",
|
| 333 |
+
"SLSA L1 honest — NOT public-verifiable L2 (GitHub private Fulcio, no public Rekor). The other 4 organs ARE public L2.",
|
| 334 |
"Section 889: 5 banned vendors (Huawei, ZTE, Hytera, Hikvision, Dahua).",
|
| 335 |
],
|
| 336 |
"receipts": f"DSSE envelopes; signature = {SIGNATURE_PLACEHOLDER}",
|
|
|
|
| 1642 |
# ============================================================================
|
| 1643 |
|
| 1644 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1645 |
if __name__ == "__main__":
|
| 1646 |
import uvicorn
|
| 1647 |
port = int(os.environ.get("PORT", "7860"))
|
szl_shared_formulas/__init__.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
# SPDX-License-Identifier: Apache-2.0
|
| 3 |
+
# © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173
|
| 4 |
+
"""szl_shared_formulas — thesis-v22 formulas echoed from the a11oy front door.
|
| 5 |
+
|
| 6 |
+
a11oy is the canonical home (src/a11oy/formulas/*); these are VERBATIM vendored copies
|
| 7 |
+
of the subset killinchu uses (single source of truth). Each module carries a real
|
| 8 |
+
thesis_v22.pdf citation + a real Lean theorem/obligation name. No mocks.
|
| 9 |
+
|
| 10 |
+
Doctrine v11 LOCKED — 749/14/163 — c7c0ba17 · Λ = Conjecture 1 (NEVER a theorem).
|
| 11 |
+
"""
|
| 12 |
+
from __future__ import annotations
|
| 13 |
+
from . import welford
|
| 14 |
+
from . import bloom_filter
|
| 15 |
+
__all__ = ['welford', 'bloom_filter']
|
| 16 |
+
# SLSA L1 honest + L2 attested (public Sigstore+Rekor) where slsa-verifier confirms.
|
szl_shared_formulas/bloom_filter.py
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
# SPDX-License-Identifier: Apache-2.0
|
| 3 |
+
# © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173
|
| 4 |
+
"""Bloom (1970) rotation-safe filter for receipt-membership checks.
|
| 5 |
+
|
| 6 |
+
a11oy's receipt-bus fast path can SKIP an expensive verify/store lookup when this filter
|
| 7 |
+
reports a receipt-hash as ``definitely_absent``. A Bloom filter has ZERO false negatives
|
| 8 |
+
(proved in Lean), so a receipt we actually recorded is NEVER wrongly bypassed — the
|
| 9 |
+
fail-closed safety contract is preserved while cold-miss latency drops.
|
| 10 |
+
|
| 11 |
+
Rotation-safe: two generations (active + retiring) so we can roll the filter without a
|
| 12 |
+
window where a recently-seen receipt reads absent (membership is the OR of both gens).
|
| 13 |
+
|
| 14 |
+
Published form (thesis_v22.pdf §2 — "Bloom filter"):
|
| 15 |
+
optimal hashes k = (m/n) ln 2 ; FP p ≈ (1 − e^{−kn/m})^k ; m/n = −log2(p)/ln2.
|
| 16 |
+
B. H. Bloom, "Space/time trade-offs in hash coding with allowable errors", CACM 13(7) (1970).
|
| 17 |
+
|
| 18 |
+
Lean theorems (sorry-free):
|
| 19 |
+
``Lutar/Innovations/round11/FrontierBloomCacheBypass.lean :: query_after_insert,
|
| 20 |
+
absent_false_after_insert, absent_implies_not_all_set`` (no false negatives → fail-closed).
|
| 21 |
+
|
| 22 |
+
CITATION: thesis_v22.pdf §2 · LEAN: Lutar/Innovations/round11/FrontierBloomCacheBypass.lean::query_after_insert
|
| 23 |
+
"""
|
| 24 |
+
from __future__ import annotations
|
| 25 |
+
|
| 26 |
+
import hashlib
|
| 27 |
+
import math
|
| 28 |
+
|
| 29 |
+
CITATION = "thesis_v22.pdf §2"
|
| 30 |
+
LEAN_THEOREM = "Lutar/Innovations/round11/FrontierBloomCacheBypass.lean::query_after_insert"
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
class _Gen:
|
| 34 |
+
def __init__(self, m: int, k: int) -> None:
|
| 35 |
+
self.m, self.k = m, k
|
| 36 |
+
self._bits = bytearray((m + 7) // 8)
|
| 37 |
+
self.count = 0
|
| 38 |
+
|
| 39 |
+
def _positions(self, key: str):
|
| 40 |
+
h = hashlib.sha256(key.encode("utf-8")).digest()
|
| 41 |
+
h1 = int.from_bytes(h[:16], "big")
|
| 42 |
+
h2 = int.from_bytes(h[16:], "big") | 1
|
| 43 |
+
for i in range(self.k):
|
| 44 |
+
yield (h1 + i * h2) % self.m
|
| 45 |
+
|
| 46 |
+
def add(self, key: str) -> None:
|
| 47 |
+
for p in self._positions(key):
|
| 48 |
+
self._bits[p >> 3] |= 1 << (p & 7)
|
| 49 |
+
self.count += 1
|
| 50 |
+
|
| 51 |
+
def present(self, key: str) -> bool:
|
| 52 |
+
return all(self._bits[p >> 3] & (1 << (p & 7)) for p in self._positions(key))
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
class BloomFilter:
|
| 56 |
+
"""Rotation-safe Bloom filter over receipt-hash strings.
|
| 57 |
+
|
| 58 |
+
Guarantees (Lean F2): if ``add(x)`` was called and x is still in either live
|
| 59 |
+
generation, ``definitely_absent(x)`` is False. ``definitely_absent == True`` ⇒
|
| 60 |
+
never added ⇒ SAFE to bypass the lookup.
|
| 61 |
+
"""
|
| 62 |
+
|
| 63 |
+
def __init__(self, expected_n: int = 100_000, target_fp: float = 1e-4) -> None:
|
| 64 |
+
if expected_n < 1:
|
| 65 |
+
expected_n = 1
|
| 66 |
+
if not (0.0 < target_fp < 1.0):
|
| 67 |
+
raise ValueError("target_fp must be in (0,1)")
|
| 68 |
+
self.expected_n = expected_n
|
| 69 |
+
self.target_fp = target_fp
|
| 70 |
+
m = math.ceil(-(expected_n * math.log(target_fp)) / (math.log(2) ** 2))
|
| 71 |
+
k = max(1, round((m / expected_n) * math.log(2)))
|
| 72 |
+
self.m, self.k = int(m), int(k)
|
| 73 |
+
self._active = _Gen(self.m, self.k)
|
| 74 |
+
self._retiring: _Gen | None = None
|
| 75 |
+
|
| 76 |
+
def add(self, key: str) -> None:
|
| 77 |
+
self._active.add(key)
|
| 78 |
+
|
| 79 |
+
def probably_present(self, key: str) -> bool:
|
| 80 |
+
if self._active.present(key):
|
| 81 |
+
return True
|
| 82 |
+
return self._retiring is not None and self._retiring.present(key)
|
| 83 |
+
|
| 84 |
+
def definitely_absent(self, key: str) -> bool:
|
| 85 |
+
"""Some probe bit clear in BOTH live gens ⇒ DEFINITELY absent (FN-free)."""
|
| 86 |
+
return not self.probably_present(key)
|
| 87 |
+
|
| 88 |
+
def rotate(self) -> None:
|
| 89 |
+
"""Roll generations: retire the active gen, start a fresh active one.
|
| 90 |
+
|
| 91 |
+
Membership stays the OR of (new active ∪ retiring) so no recently-seen
|
| 92 |
+
receipt momentarily reads absent.
|
| 93 |
+
"""
|
| 94 |
+
self._retiring = self._active
|
| 95 |
+
self._active = _Gen(self.m, self.k)
|
| 96 |
+
|
| 97 |
+
def current_fp_rate(self) -> float:
|
| 98 |
+
n = self._active.count + (self._retiring.count if self._retiring else 0)
|
| 99 |
+
if n == 0:
|
| 100 |
+
return 0.0
|
| 101 |
+
return (1.0 - math.exp(-self.k * n / self.m)) ** self.k
|
| 102 |
+
|
| 103 |
+
def stats(self) -> dict:
|
| 104 |
+
return {
|
| 105 |
+
"value": round(self.current_fp_rate(), 8),
|
| 106 |
+
"m_bits": self.m,
|
| 107 |
+
"k_hashes": self.k,
|
| 108 |
+
"active_count": self._active.count,
|
| 109 |
+
"retiring_count": self._retiring.count if self._retiring else 0,
|
| 110 |
+
"expected_fp_rate": round(self.current_fp_rate(), 8),
|
| 111 |
+
"citation": CITATION,
|
| 112 |
+
"lean_theorem": LEAN_THEOREM,
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
__all__ = ["BloomFilter", "CITATION", "LEAN_THEOREM"]
|
| 117 |
+
|
| 118 |
+
# Doctrine v11 LOCKED — 749/14/163 — c7c0ba17 · Λ = Conjecture 1 (NEVER a theorem)
|
| 119 |
+
# SLSA L1 honest + L2 attested (public Sigstore+Rekor) where slsa-verifier confirms.
|
szl_shared_formulas/welford.py
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
# SPDX-License-Identifier: Apache-2.0
|
| 3 |
+
# © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173
|
| 4 |
+
"""Welford (1962) online mean / variance accumulator — called per request.
|
| 5 |
+
|
| 6 |
+
O(1)-memory, one-pass, numerically stable running mean & variance. a11oy folds each
|
| 7 |
+
request's verdict latency (and any streamed Λ samples) into this accumulator so a cheap
|
| 8 |
+
z-score outlier gate can FLAG (never silently change) anomalies.
|
| 9 |
+
|
| 10 |
+
Published form (thesis_v22.pdf §2, formula table — "Welford"):
|
| 11 |
+
count += 1
|
| 12 |
+
delta = x - mean
|
| 13 |
+
mean += delta / count
|
| 14 |
+
M2 += delta * (x - mean)
|
| 15 |
+
var = M2 / (count - 1) (Bessel-corrected)
|
| 16 |
+
|
| 17 |
+
B. P. Welford, "Note on a method for calculating corrected sums of squares and products",
|
| 18 |
+
Technometrics 4(3):419–420 (1962).
|
| 19 |
+
|
| 20 |
+
Lean theorem: ``Lutar/Innovations/round11/FrontierWelfordVariance.lean :: welford_mean_exact``
|
| 21 |
+
(sorry-free: the online recurrence equals the exact mean, no accumulated drift).
|
| 22 |
+
|
| 23 |
+
CITATION: thesis_v22.pdf §2 · LEAN: Lutar/Innovations/round11/FrontierWelfordVariance.lean::welford_mean_exact
|
| 24 |
+
"""
|
| 25 |
+
from __future__ import annotations
|
| 26 |
+
|
| 27 |
+
import math
|
| 28 |
+
from dataclasses import dataclass, field
|
| 29 |
+
|
| 30 |
+
CITATION = "thesis_v22.pdf §2"
|
| 31 |
+
LEAN_THEOREM = "Lutar/Innovations/round11/FrontierWelfordVariance.lean::welford_mean_exact"
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
@dataclass
|
| 35 |
+
class Welford:
|
| 36 |
+
"""Online mean/variance + z-score gate (Welford 1962)."""
|
| 37 |
+
|
| 38 |
+
count: int = 0
|
| 39 |
+
mean: float = 0.0
|
| 40 |
+
_m2: float = field(default=0.0, repr=False)
|
| 41 |
+
z_threshold: float = 3.0
|
| 42 |
+
|
| 43 |
+
def update(self, x: float) -> None:
|
| 44 |
+
"""Fold one sample in (Welford step)."""
|
| 45 |
+
self.count += 1
|
| 46 |
+
delta = x - self.mean
|
| 47 |
+
self.mean += delta / self.count
|
| 48 |
+
delta2 = x - self.mean
|
| 49 |
+
self._m2 += delta * delta2
|
| 50 |
+
|
| 51 |
+
@property
|
| 52 |
+
def variance(self) -> float:
|
| 53 |
+
if self.count < 2:
|
| 54 |
+
return 0.0
|
| 55 |
+
return self._m2 / (self.count - 1)
|
| 56 |
+
|
| 57 |
+
@property
|
| 58 |
+
def stddev(self) -> float:
|
| 59 |
+
return math.sqrt(self.variance)
|
| 60 |
+
|
| 61 |
+
def zscore(self, x: float) -> float:
|
| 62 |
+
sd = self.stddev
|
| 63 |
+
return 0.0 if sd == 0.0 else (x - self.mean) / sd
|
| 64 |
+
|
| 65 |
+
def is_anomaly(self, x: float) -> bool:
|
| 66 |
+
if self.count < 2:
|
| 67 |
+
return False
|
| 68 |
+
return abs(self.zscore(x)) > self.z_threshold
|
| 69 |
+
|
| 70 |
+
def observe(self, x: float) -> dict:
|
| 71 |
+
"""Classify against prior stats THEN fold in. Honest schema."""
|
| 72 |
+
anomaly = self.is_anomaly(x)
|
| 73 |
+
z = self.zscore(x)
|
| 74 |
+
self.update(x)
|
| 75 |
+
return {
|
| 76 |
+
"value": round(self.mean, 6),
|
| 77 |
+
"running_mean": round(self.mean, 6),
|
| 78 |
+
"running_variance": round(self.variance, 6),
|
| 79 |
+
"running_stddev": round(self.stddev, 6),
|
| 80 |
+
"zscore": round(z, 4),
|
| 81 |
+
"anomaly": anomaly,
|
| 82 |
+
"count": self.count,
|
| 83 |
+
"citation": CITATION,
|
| 84 |
+
"lean_theorem": LEAN_THEOREM,
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
def snapshot(self) -> dict:
|
| 88 |
+
return {
|
| 89 |
+
"value": round(self.mean, 6),
|
| 90 |
+
"running_mean": round(self.mean, 6),
|
| 91 |
+
"running_variance": round(self.variance, 6),
|
| 92 |
+
"running_stddev": round(self.stddev, 6),
|
| 93 |
+
"count": self.count,
|
| 94 |
+
"citation": CITATION,
|
| 95 |
+
"lean_theorem": LEAN_THEOREM,
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
__all__ = ["Welford", "CITATION", "LEAN_THEOREM"]
|
| 100 |
+
|
| 101 |
+
# Doctrine v11 LOCKED — 749/14/163 — c7c0ba17 · Λ = Conjecture 1 (NEVER a theorem)
|
| 102 |
+
# SLSA L1 honest + L2 attested (public Sigstore+Rekor) where slsa-verifier confirms.
|