betterwithage Claude Opus 4.7 commited on
Commit
45077af
·
verified ·
1 Parent(s): 99fa558

deploy(hf): sync szl-holdings/a11oy@main derived COPY set

Browse files

Reusable Dockerfile-COPY-derived deploy from szl-holdings/a11oy main.
Files: 936 Pruned: 0
Derived from Dockerfile COPY sources (NO hand-maintained allowlist).

Signed-off-by: SZL Holdings <noreply@szlholdings.ai>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Files changed (1) hide show
  1. static/3d/surfaces/energy.js +23 -12
static/3d/surfaces/energy.js CHANGED
@@ -24,10 +24,15 @@
24
  // THE FUNNEL (founder's explicit ask — centerpiece): visualize OUR real harvested joules
25
  // as a live-filling reservoir, fed from the MEASURED exporter (joules_evidence.
26
  // joules_measured_total / power_w_sample), with negative-price windows soaking in real
27
- // time. HONEST NOTE: off-box this API emits joules_label="sample" and joules_evidence={}
28
- // (MEASURED requires on-box NVML). So off-box the reservoir shows its structure + the
29
- // honest SAMPLE/NO-LIVE-DATA posture and does NOT invent a fill height; on-box, when a
30
- // real fresh exporter sample arrives, the same geometry fills from the MEASURED joules.
 
 
 
 
 
31
  //
32
  // LIVE ENDPOINTS:
33
  // /api/a11oy/v1/energy/mesh — PER-NODE live NVML energy from the MERGED multi-meter
@@ -183,7 +188,11 @@ function _meshNodes(json) {
183
  });
184
  }
185
 
186
- // joules evidence — MEASURED only on-box; off-box {} (we render the honest empty posture)
 
 
 
 
187
  function _getJoules(json) {
188
  const ev = (json && json.joules_evidence) || {};
189
  const total = _num(ev.joules_measured_total);
@@ -598,10 +607,10 @@ function buildHUD() {
598
  _overlay.appendChild(_hud.nodeBox);
599
  _hud.nodeRows = {};
600
 
601
- // doctrine note (the off-box joules honesty reality)
602
  const note = document.createElement("div");
603
  note.style.cssText = "color:#6d7d8a;font-size:10.5px;line-height:1.45;margin-top:4px;border-top:1px solid #15212c;padding-top:6px";
604
- note.textContent = "Per-node joules/watts are MEASURED live from the merged NVML meters (tower meter.a-11-oy.com + laptop meter2.a-11-oy.com) via /energy/mesh; a node with no live meter shows OFFLINE — never a fabricated watt or joule. When /energy/mesh is missing the funnel falls back to the harvest-posture structure (STRUCTURAL-ONLY), never inventing a fill. Modeled on Electricity Maps + deck.gl; rendered in three.js (see manifest).";
605
  _overlay.appendChild(note);
606
 
607
  _show.body.appendChild(_overlay);
@@ -826,12 +835,14 @@ function onPosture(json, meta) {
826
  _anim.negCountT = nw.count;
827
  } else { _setRow("neg", "NO-LIVE-DATA", "STRUCTURAL-ONLY"); _anim.negCountT = 0; }
828
 
829
- // THE FUNNEL — joules. MEASURED only on-box; off-box honest sample posture, no fill.
 
830
  // IMPORTANT (Dev2, binding): when /energy/mesh has delivered a MEASURED aggregate this
831
  // session (_meshMeasured), the LIVE merged-meter reading is the source of truth for the
832
  // reservoir fill, the power gauge, the joules/power HUD rows, and the reservoir billboard.
833
- // The off-box posture carries NO NVML sample (joules_evidence={}, joules_label=sample), so
834
- // we must NOT let it overwrite the honest mesh-measured values with an empty SAMPLE posture.
 
835
  // We therefore GUARD every reservoir/gauge/joules write below behind !_meshMeasured.
836
  const j = _getJoules(json);
837
  const jlabel = j.label || (json.joules_label ? String(json.joules_label).toUpperCase() : "STRUCTURAL-ONLY");
@@ -853,9 +864,9 @@ function onPosture(json, meta) {
853
  _setRow("joules", j.total.toFixed(0) + " J (" + (j.node || "exporter") + ")", "MEASURED");
854
  _scene.RES.fluidMat.color.setHex(C.green); _scene.RES.fluidMat.emissive.setHex(C.green);
855
  } else {
856
- // off-box / no fresh sample: honest — reservoir stays empty, label sample/structural
857
  _anim.fillT = 0;
858
- _setRow("joules", jlabel === "SAMPLE" ? "sample (no on-box NVML)" : "NO-LIVE-DATA", jlabel === "SAMPLE" ? "SAMPLE" : "STRUCTURAL-ONLY");
859
  _scene.RES.fluidMat.color.setHex(C.blue); _scene.RES.fluidMat.emissive.setHex(C.blue);
860
  }
861
 
 
24
  // THE FUNNEL (founder's explicit ask — centerpiece): visualize OUR real harvested joules
25
  // as a live-filling reservoir, fed from the MEASURED exporter (joules_evidence.
26
  // joules_measured_total / power_w_sample), with negative-price windows soaking in real
27
+ // time. HONEST NOTE: the joules reservoir fills from a MEASURED reading via TWO honest
28
+ // paths, and ONLY those: (1) the per-node /energy/mesh aggregate when a node's own NVML
29
+ // meter read live, and (2) /harvest/posture's joules channel, which now reads the LIVE
30
+ // remote NVML joule meter (engine 'omen') via A11OY_JOULE_METER_URLS this request and is
31
+ // gated by szl_joules_truth — so posture carries joules_label="measured" + joules_evidence
32
+ // ONLY when that meter responds live THIS request (with monotonic-reset detection). When
33
+ // NEITHER path has a live meter this request, posture honestly emits joules_label="sample"
34
+ // and joules_evidence={}: the reservoir shows its structure + the honest SAMPLE/
35
+ // STRUCTURAL-ONLY posture and does NOT invent a fill height. We NEVER fabricate a joule.
36
  //
37
  // LIVE ENDPOINTS:
38
  // /api/a11oy/v1/energy/mesh — PER-NODE live NVML energy from the MERGED multi-meter
 
188
  });
189
  }
190
 
191
+ // joules evidence read STRAIGHT off the posture JSON. MEASURED when the posture joules
192
+ // channel got a LIVE meter reading this request (remote NVML via A11OY_JOULE_METER_URLS,
193
+ // gated by szl_joules_truth) -> joules_label="measured" + joules_evidence{joules_measured_total,
194
+ // exporter_node, power_w_sample}. Otherwise joules_label="sample" + joules_evidence={} and
195
+ // we render the honest empty posture — never a fabricated joule.
196
  function _getJoules(json) {
197
  const ev = (json && json.joules_evidence) || {};
198
  const total = _num(ev.joules_measured_total);
 
607
  _overlay.appendChild(_hud.nodeBox);
608
  _hud.nodeRows = {};
609
 
610
+ // doctrine note (the joules honesty reality: measured only on a live meter read)
611
  const note = document.createElement("div");
612
  note.style.cssText = "color:#6d7d8a;font-size:10.5px;line-height:1.45;margin-top:4px;border-top:1px solid #15212c;padding-top:6px";
613
+ note.textContent = "Per-node joules/watts are MEASURED live from the merged NVML meters (tower meter.a-11-oy.com + laptop meter2.a-11-oy.com) via /energy/mesh; a node with no live meter shows OFFLINE — never a fabricated watt or joule. When /energy/mesh is missing, the funnel falls back to /harvest/posture's joules channel, which reads the LIVE remote NVML joule meter (engine 'omen') via A11OY_JOULE_METER_URLS this request (szl_joules_truth-gated, monotonic-reset checked): joules_label='measured' with provenance ONLY when the meter responds live this request, else honest STRUCTURAL-ONLY with no invented fill. Modeled on Electricity Maps + deck.gl; rendered in three.js (see manifest).";
614
  _overlay.appendChild(note);
615
 
616
  _show.body.appendChild(_overlay);
 
835
  _anim.negCountT = nw.count;
836
  } else { _setRow("neg", "NO-LIVE-DATA", "STRUCTURAL-ONLY"); _anim.negCountT = 0; }
837
 
838
+ // THE FUNNEL — joules. MEASURED when the posture joules channel got a LIVE remote NVML
839
+ // meter reading this request (szl_joules_truth-gated); else honest sample posture, no fill.
840
  // IMPORTANT (Dev2, binding): when /energy/mesh has delivered a MEASURED aggregate this
841
  // session (_meshMeasured), the LIVE merged-meter reading is the source of truth for the
842
  // reservoir fill, the power gauge, the joules/power HUD rows, and the reservoir billboard.
843
+ // The posture joules channel is itself honest (MEASURED only on a live remote-meter read
844
+ // this request), but when the per-node mesh is already MEASURED it is the finer-grained
845
+ // source of truth, so we must NOT let posture overwrite the mesh-measured values.
846
  // We therefore GUARD every reservoir/gauge/joules write below behind !_meshMeasured.
847
  const j = _getJoules(json);
848
  const jlabel = j.label || (json.joules_label ? String(json.joules_label).toUpperCase() : "STRUCTURAL-ONLY");
 
864
  _setRow("joules", j.total.toFixed(0) + " J (" + (j.node || "exporter") + ")", "MEASURED");
865
  _scene.RES.fluidMat.color.setHex(C.green); _scene.RES.fluidMat.emissive.setHex(C.green);
866
  } else {
867
+ // no live meter reading this request: honest — reservoir stays empty, label sample/structural
868
  _anim.fillT = 0;
869
+ _setRow("joules", jlabel === "SAMPLE" ? "sample (no live meter this request)" : "NO-LIVE-DATA", jlabel === "SAMPLE" ? "SAMPLE" : "STRUCTURAL-ONLY");
870
  _scene.RES.fluidMat.color.setHex(C.blue); _scene.RES.fluidMat.emissive.setHex(C.blue);
871
  }
872