Spaces:
Running
Running
sync(space): Dockerfile COPY fix so parity endpoints register (CTO)
Browse files- Dockerfile +246 -9
Dockerfile
CHANGED
|
@@ -1,12 +1,249 @@
|
|
| 1 |
-
#
|
| 2 |
-
#
|
| 3 |
-
#
|
| 4 |
#
|
| 5 |
-
#
|
| 6 |
-
#
|
| 7 |
-
#
|
| 8 |
-
#
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
# HF Spaces requires the app to listen on port 7860 (image already binds 0.0.0.0:7860)
|
| 12 |
EXPOSE 7860
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+
# a11oy HF Docker Space — RESET build (Brand Orchestration Layer at /).
|
| 6 |
+
#
|
| 7 |
+
# RESET 2026-05-31 (Yachay CTO): a11oy is NOT a /console/ admin panel.
|
| 8 |
+
# Per Replit .replit-artifact/artifact.toml: BASE_PATH="/", serve="static" from dist/public,
|
| 9 |
+
# rewrite /* -> /index.html (SPA history fallback). The React SPA IS the Brand
|
| 10 |
+
# Orchestration Layer; its HomePage (Vessels-DNA / investor-facing landing) renders at /.
|
| 11 |
+
#
|
| 12 |
+
# Serves:
|
| 13 |
+
# / — SPA front door (Brand Orchestration Layer landing)
|
| 14 |
+
# /assets/* — SPA JS/CSS chunks (vite base="/")
|
| 15 |
+
# /boardroom, /investor-demo, /sovereign, /fabric, /nexus, /command, ... — SPA routes (history fallback)
|
| 16 |
+
# /api/a11oy/* — a11oy serve endpoints (health, gates, reason, policy/evaluate, proxy)
|
| 17 |
+
#
|
| 18 |
+
# HF Space requirement: listen on PORT 7860.
|
| 19 |
+
|
| 20 |
+
FROM python:3.12-slim
|
| 21 |
+
|
| 22 |
+
WORKDIR /app
|
| 23 |
+
|
| 24 |
+
# Install Node 22 (for a11oy serve TypeScript runner)
|
| 25 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 26 |
+
curl ca-certificates gnupg git && \
|
| 27 |
+
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
|
| 28 |
+
apt-get install -y --no-install-recommends nodejs && \
|
| 29 |
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 30 |
+
|
| 31 |
+
# Install Python dependencies
|
| 32 |
+
# ADDITIVE (Yachay): huggingface_hub + openai power the a11oy.code orchestrator's
|
| 33 |
+
# unified open-LLM router (HF Router inference). python-multipart is required by
|
| 34 |
+
# FastAPI UploadFile for the Whisper /voice/stt endpoint. None of these change the
|
| 35 |
+
# existing SPA / gates runtime; the orchestrator import is try/except-guarded in serve.py.
|
| 36 |
+
RUN pip install --no-cache-dir \
|
| 37 |
+
"fastapi>=0.111.0,<1.0.0" \
|
| 38 |
+
"uvicorn[standard]>=0.29.0,<1.0.0" \
|
| 39 |
+
"httpx>=0.27.0,<1.0.0" \
|
| 40 |
+
"starlette>=0.37.0" \
|
| 41 |
+
"huggingface_hub>=0.25.0" \
|
| 42 |
+
"openai>=1.40.0" \
|
| 43 |
+
"python-multipart>=0.0.9" \
|
| 44 |
+
"cryptography>=42.0.0" \
|
| 45 |
+
"lmdb>=1.4.0"
|
| 46 |
+
# BE hardening: slowapi rate limiter (60/min/IP). pydantic+fastapi already present.
|
| 47 |
+
RUN pip install --no-cache-dir "slowapi>=0.1.9"
|
| 48 |
+
|
| 49 |
+
# sqlite-vss removed from build: no pre-built wheel for python:3.12-slim;
|
| 50 |
+
# szl_khipu_lmdb.py and szl_unay.py already have honest try/except fallback
|
| 51 |
+
# to cosine similarity if the sqlite-vss .so cannot load. (P0 CI fix, Dev1 Rumi)
|
| 52 |
+
|
| 53 |
+
# a11oy source for the serve runtime (receipt-substrate + policy gates only).
|
| 54 |
+
# FIX (2026-06-03, HF Verification Squad): the previous `git clone` of the PRIVATE
|
| 55 |
+
# github.com/szl-holdings/a11oy repo failed in the HF build sandbox (no GitHub creds)
|
| 56 |
+
# with exit code 128, leaving the Space stuck in BUILD_ERROR. The required source is
|
| 57 |
+
# already vendored in THIS Space repo under packages/, so we COPY it locally to the
|
| 58 |
+
# exact path serve.py expects (/app/a11oy-src/packages/...). No network, no auth.
|
| 59 |
+
# Doctrine v11 LOCKED 749/14/163. ADDITIVE-equivalent: same files, same runtime path.
|
| 60 |
+
COPY packages/receipt-substrate/src /app/a11oy-src/packages/receipt-substrate/src
|
| 61 |
+
COPY packages/policy/src/gates /app/a11oy-src/packages/policy/src/gates
|
| 62 |
+
|
| 63 |
+
# Copy the pre-built SPA (Brand Orchestration Layer) to the static root.
|
| 64 |
+
# index.html + assets/* are served directly at / and /assets/*; unknown GET -> index.html.
|
| 65 |
+
COPY console/ ./static/
|
| 66 |
+
|
| 67 |
+
# Copy serve orchestrator and gates manifest
|
| 68 |
+
COPY szl_parity_gaps.py ./szl_parity_gaps.py
|
| 69 |
+
COPY serve.py ./serve.py
|
| 70 |
+
COPY gates_manifest.json ./gates_manifest.json
|
| 71 |
+
# ADDITIVE: a11oy.code conversational orchestrator module (imported by serve.py).
|
| 72 |
+
COPY a11oy_code_orchestrator.py ./a11oy_code_orchestrator.py
|
| 73 |
+
# ADDITIVE (WAYRA organ): explicit per-file COPY (this Dockerfile does not use COPY . .).
|
| 74 |
+
# serve.py mounts wayra_serve.router -> /wayra, /wayra-digest, /api/a11oy/v1/wayra/*.
|
| 75 |
+
COPY wayra_serve.py ./wayra_serve.py
|
| 76 |
+
COPY wayra_snapshot.json ./wayra_snapshot.json
|
| 77 |
+
COPY wayra_digests_7d.json ./wayra_digests_7d.json
|
| 78 |
+
# ADDITIVE (KHIPU-OS agentic DAG organ, 2026-06-01, Yachay): explicit per-file COPY
|
| 79 |
+
# (this Dockerfile does not use COPY . .). serve.py imports szl_khipu_os_routes and
|
| 80 |
+
# mounts GET/POST /api/a11oy/v1/khipu-os/{stats,verify,checkpoint,archive}. Self-driving
|
| 81 |
+
# Merkle DAG + Reed-Solomon erasure (reedsolo optional; honest, NOT holographic/quantum).
|
| 82 |
+
COPY szl_khipu_os_routes.py ./szl_khipu_os_routes.py
|
| 83 |
+
# ADDITIVE (PURIQ Agentic Formulas, 2026-06-01, Yachay): explicit per-file COPY
|
| 84 |
+
# (this Dockerfile does not use COPY . .). serve.py imports szl_puriq_formulas and
|
| 85 |
+
# calls .register(app) -> GET /formulas + /api/a11oy/v1/puriq/formulas*. Doctrine v11 LOCKED.
|
| 86 |
+
COPY szl_puriq_formulas.py ./szl_puriq_formulas.py
|
| 87 |
+
|
| 88 |
+
# ADDITIVE (Yachay / AYNI-OS, 2026-06-01): reciprocity organism + event-sourced replay
|
| 89 |
+
# + Tinkuy (Kuramoto) flow. Explicit per-file COPY (this Dockerfile does not use COPY . .).
|
| 90 |
+
# serve.py imports ayni_os_serve.router -> /v1/ayni, /v1/replay, /v1/tinkuy and serves the
|
| 91 |
+
# /ayni tab from /app/pages/ayni.html. HONEST: replay=event-sourcing (NOT time-travel);
|
| 92 |
+
# Ayni=game-theory primitive (Axelrod-Hamilton 1981, NOT mystical); Tinkuy=Kuramoto 1975.
|
| 93 |
+
# LOCKED preserved: 749/14/163, 13-axis yuyay_v3, replay bacf5443…631fc5. Pure additive.
|
| 94 |
+
COPY ayni_os_serve.py ./ayni_os_serve.py
|
| 95 |
+
COPY ayni_os/ ./ayni_os/
|
| 96 |
+
COPY pages/ ./pages/
|
| 97 |
+
|
| 98 |
+
# ADDITIVE (Live 3D Wires / PURIQ Doctrine v12, Yachay): explicit per-file COPY.
|
| 99 |
+
# This Dockerfile uses per-file COPY (no `COPY . .`), so the live-wires module +
|
| 100 |
+
# its static assets must be copied explicitly or `import szl_live_wires` 404s and
|
| 101 |
+
# /live-wires falls through to the SPA shell. serve.py registers these FIRST.
|
| 102 |
+
COPY szl_live_wires.py ./szl_live_wires.py
|
| 103 |
+
COPY live_wires.html ./live_wires.html
|
| 104 |
+
COPY live_wires_3d.js ./live_wires_3d.js
|
| 105 |
+
|
| 106 |
+
# ADDITIVE (Provenance Hardening / Wire D + DSSE Cosign REAL signing, 2026-06-01, Yachay):
|
| 107 |
+
# explicit per-file COPY (this Dockerfile does not use `COPY . .`). serve.py imports
|
| 108 |
+
# szl_provenance (which imports szl_dsse) and calls register_provenance(app, "a11oy") ->
|
| 109 |
+
# GET /api/a11oy/wires/D, POST /khipu/sign, POST /khipu/verify, GET /khipu/ledger,
|
| 110 |
+
# GET /api/a11oy/provenance. Without these COPYs the import fails and the routes fall
|
| 111 |
+
# through to the Node :8081 proxy (503). cryptography (added above) backs the real
|
| 112 |
+
# ECDSA-P256-SHA256 cosign signatures. Real signatures only when SZL_COSIGN_PRIVATE_PEM
|
| 113 |
+
# runtime secret is present (else honestly UNSIGNED). SLSA L1 honest (signing live); L2 roadmap via Wire D; L3 NOT claimed.
|
| 114 |
+
COPY szl_dsse.py ./szl_dsse.py
|
| 115 |
+
COPY szl_provenance.py ./szl_provenance.py
|
| 116 |
+
|
| 117 |
+
ENV PORT=7860
|
| 118 |
+
# BE hardening (Greene) — per-file COPY (this Dockerfile uses per-file COPY).
|
| 119 |
+
COPY szl_be_hardening.py ./szl_be_hardening.py
|
| 120 |
|
|
|
|
| 121 |
EXPOSE 7860
|
| 122 |
+
|
| 123 |
+
# ADDITIVE (UNAY + Khipu-LMDB v2, 2026-06-01, Yachay / Perplexity Computer Agent):
|
| 124 |
+
# explicit per-file COPY (this Dockerfile does not use `COPY . .`). serve.py imports
|
| 125 |
+
# szl_unay_routes and calls .register(app, ns="a11oy") -> /api/a11oy/v2/unay/* +
|
| 126 |
+
# /api/a11oy/v2/khipu/lmdb/*. Real durable lmdb + real sqlite-vss (honest cosine-
|
| 127 |
+
# fallback if the .so cannot load in the slim image). a11oy carries Khipu-LMDB PRIMARY.
|
| 128 |
+
COPY szl_unay.py ./szl_unay.py
|
| 129 |
+
COPY szl_khipu_lmdb.py ./szl_khipu_lmdb.py
|
| 130 |
+
COPY szl_khipu_replicate.py ./szl_khipu_replicate.py
|
| 131 |
+
COPY szl_unay_routes.py ./szl_unay_routes.py
|
| 132 |
+
# ADDITIVE (Warhacker aliases, Yachay 2026-06-01): top-level /healthz + /khipu/* + /wires/D.
|
| 133 |
+
# Per-file COPY (no `COPY . .`) — without this `import szl_warhacker_aliases` fails.
|
| 134 |
+
COPY szl_warhacker_aliases.py ./szl_warhacker_aliases.py
|
| 135 |
+
# ADDITIVE (Hickok dual-stream ingest, 2026-06-01, Yachay / Perplexity Computer Agent):
|
| 136 |
+
# explicit per-file COPY (this Dockerfile does not use `COPY . .`). serve.py imports
|
| 137 |
+
# a11oy_v4_hickok and calls .register(app, ns="a11oy") -> POST /api/a11oy/v4/{dorsal,
|
| 138 |
+
# ventral,spt,when,what} + GET /api/a11oy/v4/stream (SSE) + GET /brain, plus the
|
| 139 |
+
# dual-stream router middleware on /agent/ask + /predict. Without this COPY the import
|
| 140 |
+
# fails and the routes fall through to the Node :8081 proxy (503). Every receipt carries
|
| 141 |
+
# neuro_citations[]. Anchors A36/A37/A38 (ts-only, honest `sorry` proofs). The three Lean
|
| 142 |
+
# anchor files (DualStreamRouting/InternalFeedback/HierarchicalLinearization.lean) arrive
|
| 143 |
+
# via the sparse-checkout of packages/policy/src/gates above (no explicit COPY needed).
|
| 144 |
+
# Grounded in Hickok & Poeppel 2007 (DOI 10.1038/nrn2113). Doctrine v11 LOCKED 749/14/163.
|
| 145 |
+
COPY a11oy_v4_hickok.py ./a11oy_v4_hickok.py
|
| 146 |
+
|
| 147 |
+
# ADDITIVE (Anatomy 3D + live formula wiring, 2026-06-02, Yachay / Perplexity
|
| 148 |
+
# Computer Agent): explicit per-file COPY (this Dockerfile does not use `COPY . .`).
|
| 149 |
+
# serve.py imports a11oy_v4_formulas (38-formula manifest + 15 live evaluators) and
|
| 150 |
+
# szl_anatomy_3d (7 sovereign Three.js r128 anatomy surfaces + 6 live JSON endpoints).
|
| 151 |
+
# szl_anatomy_3d self-serves Three.js at /anatomy-three.min.js from static-vendor/.
|
| 152 |
+
# Receipts sign via szl_dsse (already COPYed) using szl_khipu + szl_formulas. Without
|
| 153 |
+
# these COPYs the imports fail and the pages/endpoints fall through to the SPA shell.
|
| 154 |
+
# Doctrine v11 LOCKED 749/14/163. Lambda = Conjecture 1 (NOT a theorem). NO external CDN.
|
| 155 |
+
COPY szl_khipu.py ./szl_khipu.py
|
| 156 |
+
COPY szl_formulas.py ./szl_formulas.py
|
| 157 |
+
COPY a11oy_v4_formulas.py ./a11oy_v4_formulas.py
|
| 158 |
+
COPY web/formulas.html ./web/formulas.html
|
| 159 |
+
COPY static-vendor/three.min.js ./static-vendor/three.min.js
|
| 160 |
+
COPY szl_anatomy_3d.py ./szl_anatomy_3d.py
|
| 161 |
+
|
| 162 |
+
# ADDITIVE (V4 Fleet Panel + /api/health fix, 2026-06-02, Dev2 Inti):
|
| 163 |
+
# explicit per-file COPY (this Dockerfile does not use COPY . .).
|
| 164 |
+
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 165 |
+
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 166 |
+
# szl_v4_fleet.py: /api/health + /api/a11oy/v4/fleet[/doctrine] + /fleet + /thesis
|
| 167 |
+
# v4_fleet_panel.html: canonical fleet panel served at /fleet
|
| 168 |
+
# operator_shell_v4.py: Unified Operator Shell v4 endpoints (fix import failure)
|
| 169 |
+
# web/operator.html: operator shell desktop cockpit HTML
|
| 170 |
+
COPY szl_v4_fleet.py ./szl_v4_fleet.py
|
| 171 |
+
COPY web/v4_fleet_panel.html ./web/v4_fleet_panel.html
|
| 172 |
+
COPY operator_shell_v4.py ./operator_shell_v4.py
|
| 173 |
+
COPY web/operator.html ./web/operator.html
|
| 174 |
+
|
| 175 |
+
# ADDITIVE (Cross-Harness Receipt Bridge — Hermes + OpenClaw; 2026-06-01, Yachay /
|
| 176 |
+
# Perplexity Computer Agent; closeout PR superseding #198 runtime files). serve.py
|
| 177 |
+
# already imports szl_bridge + a11oy_v4_agent and calls .register(app) BEFORE the
|
| 178 |
+
# /api/a11oy/{path} Node proxy + SPA catch-all, but the bridge runtime modules were
|
| 179 |
+
# never COPY'd, so `import szl_bridge` failed at boot and POST /api/a11oy/v4/bridge/
|
| 180 |
+
# {hermes,openclaw} + GET /api/a11oy/v4/bridge/receipt/{id} + GET /bridge fell through
|
| 181 |
+
# to the SPA (404). Explicit per-file COPY (this Dockerfile never uses `COPY . .`).
|
| 182 |
+
# szl_bridge imports szl_bridge_schemas (JSON Schema 2020-12 tool registry) and reuses
|
| 183 |
+
# the already-COPY'd szl_dsse + szl_receipt_substrate signing/ledger modules. Doctrine
|
| 184 |
+
# v11 LOCKED 749/14/163 UNCHANGED.
|
| 185 |
+
COPY szl_bridge.py ./szl_bridge.py
|
| 186 |
+
COPY szl_bridge_schemas.py ./szl_bridge_schemas.py
|
| 187 |
+
COPY agent.html ./agent.html
|
| 188 |
+
# a11oy-bridge CLI (sign --from hermes/openclaw, verify --receipt-id). Standalone
|
| 189 |
+
# operator tool; not imported at boot but shipped so it is runnable in-container.
|
| 190 |
+
COPY a11oy_bridge_cli.py ./a11oy_bridge_cli.py
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
# ADDITIVE (SZL Ken Agent Pattern v1, CTO Yachay Convergence Cycle 1, 2026-06-03):
|
| 194 |
+
# Explicit per-file COPY of szl_ken.py (this Dockerfile never uses `COPY . .`).
|
| 195 |
+
# serve.py tries `import szl_ken` at startup; without this COPY the import fails
|
| 196 |
+
# silently and /v1/agent/loop + /v1/mcp/tools return 404 instead of 200.
|
| 197 |
+
# ADDITIVE ONLY — zero existing routes touched. Doctrine v11 LOCKED 749/14/163.
|
| 198 |
+
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 199 |
+
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 200 |
+
COPY szl_ken.py ./szl_ken.py
|
| 201 |
+
|
| 202 |
+
|
| 203 |
+
# ADDITIVE (Formulas → Ecosystem instillation, Opus 4.8, 2026-06-03):
|
| 204 |
+
# Per-file COPY of the a11oy.formulas package (this Dockerfile never uses `COPY . .`).
|
| 205 |
+
# serve.py imports a11oy_formula_endpoints, which imports a11oy.formulas.* — without
|
| 206 |
+
# these COPYs the import fails and /api/a11oy/v1/formula/* fall through to the SPA shell.
|
| 207 |
+
# Real implementations of PAC-Bayes, BLS12-381 aggregate, Welford, Byzantine quorum,
|
| 208 |
+
# Holevo, Bloom, Kalman, HNSW (amaru-delegate), Reidemeister. Each cites thesis_v22.pdf
|
| 209 |
+
# + a real Lean theorem/obligation. Λ = Conjecture 1 (NEVER a theorem). SLSA L1 honest
|
| 210 |
+
# + L2 attested (public Sigstore + Rekor verified for a11oy image).
|
| 211 |
+
# Signed-off-by: Yachay <yachay@szlholdings.ai>
|
| 212 |
+
# Co-Authored-By: Perplexity Computer Agent <agent@perplexity.ai>
|
| 213 |
+
COPY src/a11oy/__init__.py ./src/a11oy/__init__.py
|
| 214 |
+
COPY src/a11oy/formulas/__init__.py ./src/a11oy/formulas/__init__.py
|
| 215 |
+
COPY src/a11oy/formulas/pac_bayes.py ./src/a11oy/formulas/pac_bayes.py
|
| 216 |
+
COPY src/a11oy/formulas/bls_aggregate.py ./src/a11oy/formulas/bls_aggregate.py
|
| 217 |
+
COPY src/a11oy/formulas/welford.py ./src/a11oy/formulas/welford.py
|
| 218 |
+
COPY src/a11oy/formulas/byzantine_quorum.py ./src/a11oy/formulas/byzantine_quorum.py
|
| 219 |
+
COPY src/a11oy/formulas/holevo_bound.py ./src/a11oy/formulas/holevo_bound.py
|
| 220 |
+
COPY src/a11oy/formulas/bloom_filter.py ./src/a11oy/formulas/bloom_filter.py
|
| 221 |
+
COPY src/a11oy/formulas/kalman.py ./src/a11oy/formulas/kalman.py
|
| 222 |
+
COPY src/a11oy/formulas/hnsw_retrieval.py ./src/a11oy/formulas/hnsw_retrieval.py
|
| 223 |
+
COPY src/a11oy/formulas/reidemeister.py ./src/a11oy/formulas/reidemeister.py
|
| 224 |
+
COPY a11oy_formula_endpoints.py ./a11oy_formula_endpoints.py
|
| 225 |
+
# ADDITIVE (Formulas SECTION page — closeout): serve.py imports a11oy_formulas_page
|
| 226 |
+
# and calls .register(app) BEFORE the SPA catch-all, mounting GET /formulas/wired
|
| 227 |
+
# (premium Inca-palette list of every live formula + thesis citation + Lean permalink
|
| 228 |
+
# + "Try it") and GET /api/a11oy/v1/formulas/page-manifest. Per-file COPY (never
|
| 229 |
+
# `COPY . .`); without it the import fails and the route falls through to the SPA.
|
| 230 |
+
COPY a11oy_formulas_page.py ./a11oy_formulas_page.py
|
| 231 |
+
|
| 232 |
+
# ADDITIVE (Missing modules fix, 2026-06-04, Perplexity Computer Agent):
|
| 233 |
+
# The following .py files exist in the repo and are imported via try/except
|
| 234 |
+
# in serve.py, but were never COPY'd into the Docker image. Without them the
|
| 235 |
+
# imports fail silently and the associated routes/tabs are unavailable.
|
| 236 |
+
# Per-file COPY (this Dockerfile never uses `COPY . .`).
|
| 237 |
+
# Signed-off-by: Stephen P. Lutar Jr. <stephenlutar2@gmail.com>
|
| 238 |
+
COPY a11oy_frontier_patch.py ./a11oy_frontier_patch.py
|
| 239 |
+
COPY a11oy_v4_agent.py ./a11oy_v4_agent.py
|
| 240 |
+
COPY szl_brain.py ./szl_brain.py
|
| 241 |
+
COPY szl_wire.py ./szl_wire.py
|
| 242 |
+
COPY szl_hub.py ./szl_hub.py
|
| 243 |
+
COPY szl_rosie_companion.py ./szl_rosie_companion.py
|
| 244 |
+
|
| 245 |
+
CMD ["python", "serve.py"]
|
| 246 |
+
|
| 247 |
+
|
| 248 |
+
# Build cache-bust 2026-06-03T18:37Z (HF Real Verify Squad): force fresh build after
|
| 249 |
+
# adding web/v4_fleet_panel.html so the 38-tab consolidated SPA bundle finally deploys.
|