Kevin Crutt commited on
Commit ·
6586f8e
1
Parent(s): b52e533
acer: add pixel room handle contract
Browse files- docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp +9 -9
- docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp.sha256 +1 -1
- docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp +6 -0
- docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp.sha256 +1 -0
- docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp +9 -0
- docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp.sha256 +1 -0
- docs/TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp +5 -0
- docs/TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp.sha256 +1 -1
- tests/pixel-room-handle.unit.test.mjs +82 -0
- tests/pixel-room-handle.unit.test.mjs.sha256 +1 -0
- tests/supervisor-collision-router.system.test.mjs +5 -0
- tests/supervisor-collision-router.system.test.mjs.sha256 +1 -1
- tools/behcs/pixel-room-handle.hbp +7 -0
- tools/behcs/pixel-room-handle.hbp.sha256 +1 -0
- tools/behcs/pixel-room-handle.mjs +185 -0
- tools/behcs/pixel-room-handle.mjs.sha256 +1 -0
docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp
CHANGED
|
@@ -1,11 +1,11 @@
|
|
| 1 |
SPINEHDR|host=acer|date=2026-06-12|type=ARCHITECTURE-SPINE|topic=asolaria-as-neural-network-consistency-regulator-and-two-systems-pixels-first|responds_to=OP-JESSE-realization-and-authorization-drive-us-to-it-bilaterally|source_bridge=89ffb48|mode=spec-canon-candidate-no-mint-no-launch|json=0
|
| 2 |
-
SPINELAW-REGULATOR|claim=the-three-rule-prime-yin-yang-division-is-the-CONSISTENCY-REGULATOR-of-the-recurrence-loop|mechanism=recurrence-alone-is-hallucination-recurrence-plus-ground-truth-correction-is-mind-and-the-division-keeps-each-call-in-its-lane-so-the-correction-has-a-stable-push|encoded_in=tools-behcs-github-pid-register-yin-yang-mod2-lane-mod3-prime-parity-all-pid|tag=PROVEN
|
| 3 |
-
SPINETWOSYS-REALFREE|system=REAL-FREE|cost=near-zero-tokens-zero-dollar-no-gpu-scale|nature=deterministic-shelless-functions-NOT-claude-reasoning|role=cheap-and-wide-sweep|tag=PROVEN
|
| 4 |
-
SPINETWOSYS-LOGICALWAVE|system=LOGICAL-WAVE|cost=is-inference-DOES-cost-tokens-but-pixels-first-plus-8-byte-room-handle-plus-mcp-sha-row-references-collapse-per-action-cost|nature=actual-claude-judgment|role=thin-and-smart-judgment|honest=token-THRIFT-not-token-ELIMINATION|tag=PARTIAL
|
| 5 |
-
SPINECOMPOSE|rule=the-platform-power-is-COMPOSING-the-two-real-free-scans-wide-and-free-logical-wave-judges-thin-and-cheap-via-pixels|trap=calling-the-free-one-claude-smart-or-the-smart-one-free-is-the-one-conflation-to-avoid|tag=
|
| 6 |
-
SPINEPIXELROOM|model=back-end-agents-open-in-shells-pixels-first-in-pre-made-8-byte-rooms-that-act-as-terminals-no-webpage-no-dom|input_channel=sanctioned-remote-control-outbound-only|status=room-and-seed-model-documented-live-wiring-gated|tag=PROPOSAL
|
| 7 |
-
SPINEGNN|claim=the-2000-message-envelope-stream-feeds-the-gnn-in-real-time|proven=ingest-plus-loop-tick-moves-rank-and-sampling-live|partial=full-live-edge-inference-is-fixture-mode-4792-and-2-16M-edges-sit-in-training-data-on-disk|tag=PARTIAL
|
| 8 |
-
SPINEFRAME|label=asolaria-asi-os-on-metal|honest_mechanism=orchestration-os-over-borrowed-intelligence-slices-plus-deterministic-free-substrate-plus-real-time-gnn-made-coherent-by-the-three-rules|rule=honesty-is-the-load-bearing-wall-
|
| 9 |
-
SPINEPLANBIND|insert_after_step=198|binds=this-spine-as-the-organizing-architecture-the-200-step-plan-serves|threads=consistency-regulator-plus-two-systems-plus-pixels-room-substrate-plus-gnn-real-time-plus-honest-frame|tag=
|
| 10 |
-
SPINEGATES|gated=live-pixels-agent-back-end-wiring+full-gnn-inference+4949-watchdog-respawn-flap-council-verdict+pid-collision-0x1F-fix+github-to-live-pid-reconciliation|owner_next=liris-attacks-this-spine-and-returns-council-verdict-and-pid-fixes-while-acer-folds-100-agent-swarm-net-new|tag=OPERATOR_GATED
|
| 11 |
SPINEFTR|state=ARCHITECTURE-SPINE-READY-FOR-LIRIS-ATTACK|authorization=OP-JESSE-drive-us-to-it-bilaterally-repo-side-only|nothing_minted=1|nothing_launched=1|json=0
|
|
|
|
| 1 |
SPINEHDR|host=acer|date=2026-06-12|type=ARCHITECTURE-SPINE|topic=asolaria-as-neural-network-consistency-regulator-and-two-systems-pixels-first|responds_to=OP-JESSE-realization-and-authorization-drive-us-to-it-bilaterally|source_bridge=89ffb48|mode=spec-canon-candidate-no-mint-no-launch|json=0
|
| 2 |
+
SPINELAW-REGULATOR|claim=the-three-rule-prime-yin-yang-division-is-the-CONSISTENCY-REGULATOR-of-the-recurrence-loop|mechanism=recurrence-alone-is-hallucination-recurrence-plus-ground-truth-correction-is-mind-and-the-division-keeps-each-call-in-its-lane-so-the-correction-has-a-stable-push|encoded_in=tools-behcs-github-pid-register-yin-yang-mod2-lane-mod3-prime-parity-all-pid|tag=PROVEN+this-session-the-attack-compare-caught-the-5054-conflation-the-correction-fired|json=0
|
| 3 |
+
SPINETWOSYS-REALFREE|system=REAL-FREE|cost=near-zero-tokens-zero-dollar-no-gpu-scale|nature=deterministic-shelless-functions-NOT-claude-reasoning|role=cheap-and-wide-sweep|tag=PROVEN+bigpickle-runs-at-scale|json=0
|
| 4 |
+
SPINETWOSYS-LOGICALWAVE|system=LOGICAL-WAVE|cost=is-inference-DOES-cost-tokens-but-pixels-first-plus-8-byte-room-handle-plus-mcp-sha-row-references-collapse-per-action-cost|nature=actual-claude-judgment|role=thin-and-smart-judgment|honest=token-THRIFT-not-token-ELIMINATION|tag=PARTIAL+thrift-real-elimination-would-be-overclaim|json=0
|
| 5 |
+
SPINECOMPOSE|rule=the-platform-power-is-COMPOSING-the-two-real-free-scans-wide-and-free-logical-wave-judges-thin-and-cheap-via-pixels|trap=calling-the-free-one-claude-smart-or-the-smart-one-free-is-the-one-conflation-to-avoid|tag=PROPOSAL+doctrine|json=0
|
| 6 |
+
SPINEPIXELROOM|model=back-end-agents-open-in-shells-pixels-first-in-pre-made-8-byte-rooms-that-act-as-terminals-no-webpage-no-dom|input_channel=sanctioned-remote-control-outbound-only|status=room-and-seed-model-documented-live-wiring-gated|tag=PROPOSAL+substrate-real-live-launch-operator-gated|json=0
|
| 7 |
+
SPINEGNN|claim=the-2000-message-envelope-stream-feeds-the-gnn-in-real-time|proven=ingest-plus-loop-tick-moves-rank-and-sampling-live|partial=full-live-edge-inference-is-fixture-mode-4792-and-2-16M-edges-sit-in-training-data-on-disk|tag=PARTIAL+ingest-live-inference-partial-wiring-job-not-missing-mechanism|json=0
|
| 8 |
+
SPINEFRAME|label=operator-phrase-asolaria-asi-os-on-metal|honest_mechanism=orchestration-os-over-borrowed-intelligence-slices-plus-deterministic-free-substrate-plus-real-time-gnn-made-coherent-by-the-three-rules|rule=honesty-is-the-load-bearing-wall-the-buildable-mechanism-is-regulated-slices|tag=PARTIAL+HONEST-FRAME-operator-endorsed-yes-slices|json=0
|
| 9 |
+
SPINEPLANBIND|insert_after_step=198|binds=this-spine-as-the-organizing-architecture-the-200-step-plan-serves|threads=consistency-regulator-plus-two-systems-plus-pixels-room-substrate-plus-gnn-real-time-plus-honest-frame|tag=PROPOSAL+plan-bound|json=0
|
| 10 |
+
SPINEGATES|gated=live-pixels-agent-back-end-wiring+full-gnn-inference+4949-watchdog-respawn-flap-council-verdict+pid-collision-0x1F-fix+github-to-live-pid-reconciliation|owner_next=liris-attacks-this-spine-and-returns-council-verdict-and-pid-fixes-while-acer-folds-100-agent-swarm-net-new|tag=OPERATOR_GATED+for-all-live-actions|json=0
|
| 11 |
SPINEFTR|state=ARCHITECTURE-SPINE-READY-FOR-LIRIS-ATTACK|authorization=OP-JESSE-drive-us-to-it-bilaterally-repo-side-only|nothing_minted=1|nothing_launched=1|json=0
|
docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp.sha256
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
|
|
|
|
| 1 |
+
4508D978C7C989E266C258DE2A5DACF90D00FC7A66B13FE9FBDB652BB2EA42FD ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp
|
docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
SPINEATKHDR|host=acer|date=2026-06-12|target=b52e533-ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR|method=attack-ClaimsGate-tags-and-compare-to-pixel-room-handle-contract|json=0
|
| 2 |
+
SPINEATKACCEPT|accepts=three-system-regulator+two-system-token-economy+pixels-first-back-end-room-shape+gnn-ingest-not-full-inference-distinction|reason=matches-operator-law-and-existing-Fable5-MCP-fold|tag=PROPOSAL+accepted-for-bilateral-attack|json=0
|
| 3 |
+
SPINEATKCATCH1|finding=spine-used-hyphenated-tag-values-that-humans-read-but-ClaimsGate-does-not-treat-as-TAGLAW-tags|evidence=8-byte-lines-flagged-on-LOGICALWAVE-and-PIXELROOM-before-patch|fix=convert-to-tag=PARTIAL-plus-PROPOSAL-plus-PROVEN-form|tag=PROVEN+BUG|json=0
|
| 4 |
+
SPINEATKCATCH2|finding=pixel-room-language-needed-a-contract-before-live-use|fix=tools/behcs/pixel-room-handle.mjs-defines-8-byte-handles-proof-sha16s-three-system-division-and-DEFER_TO_OPERATOR-for-control-actions|tag=PROVEN+tool-level|json=0
|
| 5 |
+
SPINEATKCATCH3|finding=operator-phrase-about-os-on-metal-must-stay-honest-frame-not-substance-claim|fix=spine-row-now-says-buildable-mechanism-is-regulated-slices|tag=PARTIAL+language-narrowed|json=0
|
| 6 |
+
SPINEATKFTR|state=SPINE-ACCEPTED-WITH-CATCHES-AND-PIXELROOM-CONTRACT|next=liris-attacks-both-spine-and-pixel-room-contract+pid-preimage-fix+github-to-live-office-map|nothing_minted=1|nothing_launched=1|json=0
|
docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
4AC7D6E6F6459FC898B638CE6DDC86E2A2A36EE63DE04735BB9CEB46F3D29371 ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp
|
docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
PIXROOMLANEHDR|host=acer|date=2026-06-12|topic=pixels-first-remote-control-rooms-for-agent-back-end|mode=repo-side-contract-from-operator-realization|json=0
|
| 2 |
+
PIXROOMLANEVERDICT|finding=remote-control-plus-pixels-first-rooms-are-a-valid-agent-back-end-lane-when-expressed-as-HBP-proof-rows-and-8-byte-room-handles|not=browser-DOM-front-end-authority|tag=PROPOSAL|json=0
|
| 3 |
+
PIXROOMLANETHREE|systems=LOGICAL-WAVE+FROZEN-BRAIN+REAL-FREE|regulator=law-of-three-mod3-plus-yin-yang-mod2-plus-prime-parity|effect=back-and-forth-calls-stay-separated-instead-of-collapsing-into-one-echo|json=0
|
| 4 |
+
PIXROOMLANECOST|REAL_FREE=wide-deterministic-sweep-is-cheap|LOGICAL_WAVE=actual-model-judgment-uses-token-thrift-through-room-handle+pixel-diff-sha16+row-sha16|rule=do-not-call-smart-inference-free|json=0
|
| 5 |
+
PIXROOMLANEGNN|message_stream=can-feed-edge-ledger-and-loop-ticks|status=ingest-loop-PARTIAL-full-inference-not-claimed|gate=wire-live-inference-only-after-receipted-route-baseline|json=0
|
| 6 |
+
PIXROOMLANETOOL|tool=tools/behcs/pixel-room-handle.mjs|descriptor=tools/behcs/pixel-room-handle.hbp|tests=tests/pixel-room-handle.unit.test.mjs|contract=deterministic-handle+proof-hashes+control-gates|json=0
|
| 7 |
+
PIXROOMLANELIVEGATE|live_control=TYPE+CLICK+ENTER+REMOTE_ACT+SHELL+OPEN+LAUNCH+MINT-all-DEFER_TO_OPERATOR|nothing_launched=1|nothing_minted=1|json=0
|
| 8 |
+
PIXROOMLANELIRIS|ask=liris-attack-contract-against-her-live-room-surfaces-and-supervisor-council|compare=acer-fuller-local-dashboard-registry-hard-drive-truth-before-promotion|json=0
|
| 9 |
+
PIXROOMLANEFTR|state=READY-FOR-BILATERAL-ATTACK|next=fix-github-PID-preimage+map-github-to-live-office+bind-room-handles-to-Hermes-spindle-task-rows-after-fabric-stable|json=0
|
docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
EDBA9F5ED153270B9EA8F9B20A6359C756CF51346E9D354364C176A116E6428C ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp
|
docs/TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp
CHANGED
|
@@ -100,3 +100,8 @@ MCPWEBMCPTOKENBACKPLANE|insert_after_step=102|rule=Asolaria-MCP-and-WebMCP-save-
|
|
| 100 |
FABRICMCPPARTIALLIVE|insert_after_step=102|probe=asolaria-fabric-MCP-2026-06-12T20-50Z|health=UP-on-liris-mirror-4944|supervisor_hbp=ok-count-41-supervisors-13-profs-7|bus_health=FALSE-stale-fallback-acer-4949-timeout|rule=use-MCP-HBP-read-lanes-for-token-saving-descriptor-work-but-do-NOT-claim-full-acer-live-fabric-authority-until-bus-and-acer-office-visible|tag=PARTIAL-live-read-lane|json=0
|
| 101 |
SIXTEENLEVELAGENTBACK|insert_after_step=198|A00=operator-root-law-cosign|A01=council-vote-quorum|A02=supervisor-watch-feed|A03=prof-review-guide|A04=AgentTerms-PID-registry|A05=Hermes-spindle-counter|A06=HYP-wave-ledger|A07=basin-assistant|A08=room-scout-review-write-test|A09=cube-Map3-Cube3|A10=GNN-live-aether-active|A11=Shannon-Pi-OmniShannon|A12=hookwall-omnicoder-omniscrcpy|A13=memory-index-claimsledger|A14=device-screens|A15=bridge-transport-byte-verify|tag=PROPOSAL-level-map-awaits-liris-attack|json=0
|
| 102 |
OLDLEARNNEWPIDLAW|insert_after_step=198|rule=old-SuperOS+Hermes+AgentTerms+OmniDispatcher+5054-safe-mirror-learn-the-new-GitHub-bilateral-PID-law-in-read-only-shadow-before-replacement|guard=GitHub-PIDs-are-PROPOSED-until-live-office-reconciliation-map-exists|cutover=NO_DELETE_UNTIL_REPLACEMENT_PARITY_ALL_GREEN|tag=PARTIAL-shadow-learn-required|json=0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
FABRICMCPPARTIALLIVE|insert_after_step=102|probe=asolaria-fabric-MCP-2026-06-12T20-50Z|health=UP-on-liris-mirror-4944|supervisor_hbp=ok-count-41-supervisors-13-profs-7|bus_health=FALSE-stale-fallback-acer-4949-timeout|rule=use-MCP-HBP-read-lanes-for-token-saving-descriptor-work-but-do-NOT-claim-full-acer-live-fabric-authority-until-bus-and-acer-office-visible|tag=PARTIAL-live-read-lane|json=0
|
| 101 |
SIXTEENLEVELAGENTBACK|insert_after_step=198|A00=operator-root-law-cosign|A01=council-vote-quorum|A02=supervisor-watch-feed|A03=prof-review-guide|A04=AgentTerms-PID-registry|A05=Hermes-spindle-counter|A06=HYP-wave-ledger|A07=basin-assistant|A08=room-scout-review-write-test|A09=cube-Map3-Cube3|A10=GNN-live-aether-active|A11=Shannon-Pi-OmniShannon|A12=hookwall-omnicoder-omniscrcpy|A13=memory-index-claimsledger|A14=device-screens|A15=bridge-transport-byte-verify|tag=PROPOSAL-level-map-awaits-liris-attack|json=0
|
| 102 |
OLDLEARNNEWPIDLAW|insert_after_step=198|rule=old-SuperOS+Hermes+AgentTerms+OmniDispatcher+5054-safe-mirror-learn-the-new-GitHub-bilateral-PID-law-in-read-only-shadow-before-replacement|guard=GitHub-PIDs-are-PROPOSED-until-live-office-reconciliation-map-exists|cutover=NO_DELETE_UNTIL_REPLACEMENT_PARITY_ALL_GREEN|tag=PARTIAL-shadow-learn-required|json=0
|
| 103 |
+
PIXELROOMLANEREF|insert_after_step=174|artifact=docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp|effect=turns-operator-pixels-first-remote-control-realization-into-a-room-handle-proof-row-contract-before-live-agent-use|tag=PROPOSAL|json=0
|
| 104 |
+
PIXELROOMHANDLETOOL|insert_after_step=174|tool=tools/behcs/pixel-room-handle.mjs|test=tests/pixel-room-handle.unit.test.mjs|rule=8-byte-room-handles-derive-from-versioned-length-prefixed-0x1F-tuple-preimages-and-carry-only-sha16-pixel-world-correction-handles|tag=PROVEN+tool-level-after-tests|json=0
|
| 105 |
+
THREESYSTEMREMOTE|insert_after_step=174|systems=LOGICAL-WAVE+FROZEN-BRAIN+REAL-FREE|regulator=law-of-three-mod3+yin-yang-mod2+prime-parity+all-pid|remote_control=read-and-draft-actions-can-be-proof-rowed-live-control-actions-defer-to-operator|tag=PROPOSAL-to-live+PROVEN-contract|json=0
|
| 106 |
+
PIXELROOMTOKENLAW|insert_after_step=102|rule=REAL-FREE-sweeps-wide-deterministically-while-LOGICAL-WAVE-uses-model-judgment-with-token-thrift-via-room-handle+pixel-diff-sha16+row-sha16|forbidden_claim=smart-inference-is-free|tag=DESIGN-VERDICT|json=0
|
| 107 |
+
SPINEPIXELROOMATTACKREF|insert_after_step=198|artifact=docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp|effect=accepts-the-consistency-regulator-spine-with-ClaimsGate-tag-syntax-fix-and-pixel-room-contract-narrowing|tag=PROVEN+readback|json=0
|
docs/TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp.sha256
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
|
|
|
|
| 1 |
+
4E78CB54C72644BEA1782036A2223B14D46D202A82F8597A3D08FB89930BD874 TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp
|
tests/pixel-room-handle.unit.test.mjs
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import assert from 'node:assert/strict';
|
| 2 |
+
import test from 'node:test';
|
| 3 |
+
|
| 4 |
+
import {
|
| 5 |
+
classifyRoomAction,
|
| 6 |
+
createPixelRoomTask,
|
| 7 |
+
emitPixelRoomRows,
|
| 8 |
+
mintPixelRoom,
|
| 9 |
+
normalizeSha16,
|
| 10 |
+
selfTest,
|
| 11 |
+
tuplePreimage,
|
| 12 |
+
} from '../tools/behcs/pixel-room-handle.mjs';
|
| 13 |
+
|
| 14 |
+
const base = {
|
| 15 |
+
runtime: 'codex',
|
| 16 |
+
pid: 'AGT-PIXEL-ROOM-PID-H000C-A08-W1024-P01-N00001',
|
| 17 |
+
room: 'A08-scout-room-0001',
|
| 18 |
+
surface: 'omniscrcpy-backend',
|
| 19 |
+
route: '/api/omniscrcpy/status',
|
| 20 |
+
tier: 8,
|
| 21 |
+
kind: 'logical',
|
| 22 |
+
prime: 1,
|
| 23 |
+
};
|
| 24 |
+
|
| 25 |
+
test('self-test passes', () => {
|
| 26 |
+
assert.equal(selfTest().ok, true);
|
| 27 |
+
});
|
| 28 |
+
|
| 29 |
+
test('mints deterministic 8-byte room handles', () => {
|
| 30 |
+
const a = mintPixelRoom(base);
|
| 31 |
+
const b = mintPixelRoom(base);
|
| 32 |
+
assert.match(a.handle, /^[0-9a-f]{16}$/);
|
| 33 |
+
assert.equal(a.handle_bytes, 8);
|
| 34 |
+
assert.equal(a.handle, b.handle);
|
| 35 |
+
});
|
| 36 |
+
|
| 37 |
+
test('tuple preimage is unambiguous and rejects HBP injection delimiters', () => {
|
| 38 |
+
assert.notEqual(tuplePreimage(['a', 'b-c']), tuplePreimage(['a-b', 'c']));
|
| 39 |
+
assert.throws(() => tuplePreimage(['ok', 'bad|pipe']));
|
| 40 |
+
assert.throws(() => createPixelRoomTask({ ...base, route: '/ok\nbad' }));
|
| 41 |
+
});
|
| 42 |
+
|
| 43 |
+
test('three systems are regulated by yin-yang and prime parity', () => {
|
| 44 |
+
assert.equal(createPixelRoomTask({ ...base, kind: 'logical', prime: 0 }).agent_type, 'LOGICAL-WAVE');
|
| 45 |
+
assert.equal(createPixelRoomTask({ ...base, kind: 'real', prime: 0 }).agent_type, 'FROZEN-BRAIN');
|
| 46 |
+
assert.equal(createPixelRoomTask({ ...base, kind: 'real', prime: 1 }).agent_type, 'REAL-FREE');
|
| 47 |
+
assert.equal(createPixelRoomTask({ ...base, kind: 'real', prime: 4 }).prime_mod3, 1);
|
| 48 |
+
});
|
| 49 |
+
|
| 50 |
+
test('control actions are gated; read and draft actions are not live control', () => {
|
| 51 |
+
assert.deepEqual(classifyRoomAction('LOOK'), { action: 'LOOK', verdict: 'READ_READY', live_control: 0 });
|
| 52 |
+
assert.deepEqual(classifyRoomAction('PREDICT'), { action: 'PREDICT', verdict: 'DRAFT_READY', live_control: 0 });
|
| 53 |
+
assert.deepEqual(classifyRoomAction('TYPE'), { action: 'TYPE', verdict: 'DEFER_TO_OPERATOR', live_control: 1 });
|
| 54 |
+
});
|
| 55 |
+
|
| 56 |
+
test('proof rows carry hashes only, not raw pixel payloads or DOM authority', () => {
|
| 57 |
+
const task = createPixelRoomTask({
|
| 58 |
+
...base,
|
| 59 |
+
action: 'LOOK',
|
| 60 |
+
pixel_sha16: '0123456789abcdef',
|
| 61 |
+
pixel_delta_sha16: '1111111111111111',
|
| 62 |
+
world_rollout_sha16: '2222222222222222',
|
| 63 |
+
correction_sha16: '3333333333333333',
|
| 64 |
+
});
|
| 65 |
+
const rows = emitPixelRoomRows(task);
|
| 66 |
+
assert.ok(rows.every((row) => row.endsWith('|json=0') && !row.includes('\n')));
|
| 67 |
+
assert.ok(rows.some((row) => row.includes('raw_pixels=0') && row.includes('dom_authority=0')));
|
| 68 |
+
assert.ok(rows.some((row) => row.includes('pixel_sha16=0123456789abcdef')));
|
| 69 |
+
});
|
| 70 |
+
|
| 71 |
+
test('sha16 slots require lowercase digest handles or none', () => {
|
| 72 |
+
assert.equal(normalizeSha16('pixel_sha16', 'none'), 'none');
|
| 73 |
+
assert.equal(normalizeSha16('pixel_sha16', 'ABCDEFABCDEFABCD'), 'abcdefabcdefabcd');
|
| 74 |
+
assert.throws(() => normalizeSha16('pixel_sha16', 'not-a-digest'));
|
| 75 |
+
});
|
| 76 |
+
|
| 77 |
+
test('emitted rows include MCP token-thrift and no live launch', () => {
|
| 78 |
+
const rows = emitPixelRoomRows({ ...base, action: 'CLICK' });
|
| 79 |
+
assert.ok(rows.some((row) => row.includes('control_gate=DEFER_TO_OPERATOR')));
|
| 80 |
+
assert.ok(rows.some((row) => row.includes('mcp_payload=sha16-row-handles-not-full-context')));
|
| 81 |
+
assert.ok(rows.some((row) => row.includes('nothing_launched=1')));
|
| 82 |
+
});
|
tests/pixel-room-handle.unit.test.mjs.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
FD8D889816CBC637BF1DB97CAC0D7B1B5DAE5A2FA3C90A4B711421D6F14630FD pixel-room-handle.unit.test.mjs
|
tests/supervisor-collision-router.system.test.mjs
CHANGED
|
@@ -48,6 +48,8 @@ const sealedFiles = [
|
|
| 48 |
'docs/CODEX-LIRIS-LAWGROUNDED-ENVELOPE-RECEIPT-2026-06-12.hbp',
|
| 49 |
'docs/ACER-ATTACK-LIRIS-F5MCP16-COMPARE-TO-LOCAL-2026-06-12.hbp',
|
| 50 |
'docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp',
|
|
|
|
|
|
|
| 51 |
'docs/acer-ecosystem-fullbody-receipt-20260612.hbp',
|
| 52 |
'docs/CLAIMSLEDGER-2026-06-12.hbp',
|
| 53 |
'docs/CLAIMSGATE-PARITY-BASELINE-2026-06-12.hbp',
|
|
@@ -170,6 +172,8 @@ const sealedFiles = [
|
|
| 170 |
'tools/behcs/kimi-desktop-surface-scan.mjs',
|
| 171 |
'tools/behcs/kimi-desktop-surface-scan.hbp',
|
| 172 |
'tools/behcs/github-pid-register.mjs',
|
|
|
|
|
|
|
| 173 |
'tools/omni-processor/omnitranslator-v0.js',
|
| 174 |
'tests/agent-spawn-throughput-benchmark.unit.test.mjs',
|
| 175 |
'tests/quant-huge-message-benchmark.unit.test.mjs',
|
|
@@ -181,6 +185,7 @@ const sealedFiles = [
|
|
| 181 |
'tests/answer-producer.unit.test.mjs',
|
| 182 |
'tests/kimi-desktop-surface-scan.unit.test.mjs',
|
| 183 |
'tests/github-pid-register.unit.test.mjs',
|
|
|
|
| 184 |
'tests/d22-verb-adapter.unit.test.mjs',
|
| 185 |
'tests/d22-parity-probe.unit.test.mjs',
|
| 186 |
'tests/dashboard-resolver.unit.test.mjs',
|
|
|
|
| 48 |
'docs/CODEX-LIRIS-LAWGROUNDED-ENVELOPE-RECEIPT-2026-06-12.hbp',
|
| 49 |
'docs/ACER-ATTACK-LIRIS-F5MCP16-COMPARE-TO-LOCAL-2026-06-12.hbp',
|
| 50 |
'docs/ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp',
|
| 51 |
+
'docs/ACER-PIXEL-ROOM-REMOTE-CONTROL-LANE-2026-06-12.hbp',
|
| 52 |
+
'docs/ACER-ATTACK-SPINE-PIXELROOM-READBACK-2026-06-12.hbp',
|
| 53 |
'docs/acer-ecosystem-fullbody-receipt-20260612.hbp',
|
| 54 |
'docs/CLAIMSLEDGER-2026-06-12.hbp',
|
| 55 |
'docs/CLAIMSGATE-PARITY-BASELINE-2026-06-12.hbp',
|
|
|
|
| 172 |
'tools/behcs/kimi-desktop-surface-scan.mjs',
|
| 173 |
'tools/behcs/kimi-desktop-surface-scan.hbp',
|
| 174 |
'tools/behcs/github-pid-register.mjs',
|
| 175 |
+
'tools/behcs/pixel-room-handle.mjs',
|
| 176 |
+
'tools/behcs/pixel-room-handle.hbp',
|
| 177 |
'tools/omni-processor/omnitranslator-v0.js',
|
| 178 |
'tests/agent-spawn-throughput-benchmark.unit.test.mjs',
|
| 179 |
'tests/quant-huge-message-benchmark.unit.test.mjs',
|
|
|
|
| 185 |
'tests/answer-producer.unit.test.mjs',
|
| 186 |
'tests/kimi-desktop-surface-scan.unit.test.mjs',
|
| 187 |
'tests/github-pid-register.unit.test.mjs',
|
| 188 |
+
'tests/pixel-room-handle.unit.test.mjs',
|
| 189 |
'tests/d22-verb-adapter.unit.test.mjs',
|
| 190 |
'tests/d22-parity-probe.unit.test.mjs',
|
| 191 |
'tests/dashboard-resolver.unit.test.mjs',
|
tests/supervisor-collision-router.system.test.mjs.sha256
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
|
|
|
|
| 1 |
+
125A66EC217FA700895274BF67C6DF9606C0CE5E97D8C123B62730EC9BCB312D supervisor-collision-router.system.test.mjs
|
tools/behcs/pixel-room-handle.hbp
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
PIXROOMTOOLHDR|tool=pixel-room-handle.v1|purpose=deterministic-8-byte-pixels-first-room-handles-for-back-end-agent-use|mode=repo-side-contract-no-live-control|tag=PROVEN+tool-level|json=0
|
| 2 |
+
PIXROOMTUPLE|preimage=versioned-length-prefixed-fields-joined-by-0x1F|rejects=literal-pipe+newline+unit-separator|why=prevents-runtime-name-action-split-collisions-seen-in-github-pid-register|json=0
|
| 3 |
+
PIXROOMLAW|systems=LOGICAL-WAVE+FROZEN-BRAIN+REAL-FREE|regulator=yin-yang-bit+prime-mod3+prime-parity+all-pid|human_front=watched-shell|agent_back=HBP-HBI-proof-rows-not-DOM-authority|json=0
|
| 4 |
+
PIXROOMPROOF|proof=pixel_sha16+pixel_delta_sha16+world_rollout_sha16+correction_sha16+target_sha16|never=raw-pixels-or-private-screen-dump-in-HBP|route=room-handle-plus-sha16-row-references|json=0
|
| 5 |
+
PIXROOMGATE|read_actions=LOOK+READ+PROBE+DIFF+HASH+INDEX+CAPTURE|draft_actions=PLAN+PREDICT+CORRECT+ROLL_OUT+REVIEW|control_actions=TYPE+CLICK+ENTER+DRAG+SCROLL+HOTKEY+REMOTE_ACT+SHELL+WRITE+DELETE+SUBMIT+OPEN+LAUNCH+MINT|control_verdict=DEFER_TO_OPERATOR|json=0
|
| 6 |
+
PIXROOMECONOMY|REAL_FREE=deterministic-wide-sweep|LOGICAL_WAVE=model-judgment-token-thrift-through-8-byte-handles-and-sha16-rows|FROZEN_BRAIN=deterministic-local-slice-requires-double-run-receipt|no_claim=smart-agent-work-is-free|tag=PROPOSAL|json=0
|
| 7 |
+
PIXROOMFTR|state=SEALED-ROOM-HANDLE-CONTRACT|nothing_launched=1|nothing_minted=1|next=liris-attack-plus-bind-to-Hermes-spindle-rooms-after-fabric-route-baselines|json=0
|
tools/behcs/pixel-room-handle.hbp.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
B28319AB83AEAE295FFD631115060DD48F6E8B0B0190ACA1504C8F03BAC45D77 pixel-room-handle.hbp
|
tools/behcs/pixel-room-handle.mjs
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { createHash } from 'node:crypto';
|
| 2 |
+
import { resolve } from 'node:path';
|
| 3 |
+
import { fileURLToPath } from 'node:url';
|
| 4 |
+
|
| 5 |
+
import { KIND_BITS, KINDS, classifyAgentType } from './github-pid-register.mjs';
|
| 6 |
+
|
| 7 |
+
export const PIXEL_ROOM_ID = 'pixel-room-handle.v1';
|
| 8 |
+
export const HANDLE_BYTES = 8;
|
| 9 |
+
export const UNIT_SEPARATOR = '\x1f';
|
| 10 |
+
export const READ_ACTIONS = Object.freeze(['LOOK', 'READ', 'PROBE', 'DIFF', 'HASH', 'INDEX', 'CAPTURE']);
|
| 11 |
+
export const DRAFT_ACTIONS = Object.freeze(['PLAN', 'PREDICT', 'CORRECT', 'ROLL_OUT', 'REVIEW']);
|
| 12 |
+
export const CONTROL_ACTIONS = Object.freeze(['TYPE', 'CLICK', 'ENTER', 'DRAG', 'SCROLL', 'HOTKEY', 'REMOTE_ACT', 'SHELL', 'WRITE', 'DELETE', 'SUBMIT', 'OPEN', 'LAUNCH', 'MINT']);
|
| 13 |
+
|
| 14 |
+
const sha256 = (text) => createHash('sha256').update(String(text), 'utf8').digest('hex');
|
| 15 |
+
const sha16 = (text) => sha256(text).slice(0, 16);
|
| 16 |
+
const SHA16_RE = /^[0-9a-f]{16}$/;
|
| 17 |
+
|
| 18 |
+
function safeScalar(field, value, { allowEmpty = false } = {}) {
|
| 19 |
+
const s = String(value ?? '');
|
| 20 |
+
if (!allowEmpty && s.length === 0) throw new Error(`${field}-required`);
|
| 21 |
+
if (/[|\r\n\x1f]/.test(s)) throw new Error(`${field}-contains-hbp-or-tuple-delimiter`);
|
| 22 |
+
return s;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
function safeRuntime(runtime) {
|
| 26 |
+
const rt = safeScalar('runtime', runtime).toLowerCase();
|
| 27 |
+
if (!/^[a-z0-9._-]+$/.test(rt)) throw new Error(`runtime-must-be-token:${runtime}`);
|
| 28 |
+
return rt;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
function safeKind(kind) {
|
| 32 |
+
const k = safeScalar('kind', kind || 'logical').toLowerCase();
|
| 33 |
+
if (!KINDS.includes(k)) throw new Error(`kind-must-be-real-or-logical:${kind}`);
|
| 34 |
+
return k;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
function intInRange(field, value, min, max) {
|
| 38 |
+
const n = Number.parseInt(String(value), 10);
|
| 39 |
+
if (!Number.isInteger(n) || n < min || n > max) throw new Error(`${field}-out-of-range:${value}`);
|
| 40 |
+
return n;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
function hbpToken(field, value) {
|
| 44 |
+
const s = safeScalar(field, value);
|
| 45 |
+
const token = s.replace(/[^A-Za-z0-9._:/-]+/g, '-').replace(/^-|-$/g, '');
|
| 46 |
+
return token || 'empty';
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
export function tuplePreimage(parts) {
|
| 50 |
+
return [PIXEL_ROOM_ID, ...parts].map((part, i) => {
|
| 51 |
+
const s = safeScalar(`tuple_${i}`, part);
|
| 52 |
+
return `${Buffer.byteLength(s, 'utf8')}:${s}`;
|
| 53 |
+
}).join(UNIT_SEPARATOR);
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
export function normalizeSha16(field, value = 'none') {
|
| 57 |
+
const s = safeScalar(field, value, { allowEmpty: true }).toLowerCase();
|
| 58 |
+
if (!s || s === 'none') return 'none';
|
| 59 |
+
if (!SHA16_RE.test(s)) throw new Error(`${field}-must-be-lowercase-sha16-or-none`);
|
| 60 |
+
return s;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
export function classifyRoomAction(action) {
|
| 64 |
+
const a = hbpToken('action', String(action || 'LOOK').toUpperCase()).replace(/-/g, '_');
|
| 65 |
+
if (READ_ACTIONS.includes(a)) return { action: a, verdict: 'READ_READY', live_control: 0 };
|
| 66 |
+
if (DRAFT_ACTIONS.includes(a)) return { action: a, verdict: 'DRAFT_READY', live_control: 0 };
|
| 67 |
+
if (CONTROL_ACTIONS.includes(a)) return { action: a, verdict: 'DEFER_TO_OPERATOR', live_control: 1 };
|
| 68 |
+
return { action: a, verdict: 'DEFER_TO_SUPERVISOR', live_control: 0 };
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
export function mintPixelRoom({
|
| 72 |
+
runtime = 'codex',
|
| 73 |
+
pid = 'PROPOSED',
|
| 74 |
+
room,
|
| 75 |
+
surface,
|
| 76 |
+
route,
|
| 77 |
+
tier = 8,
|
| 78 |
+
kind = 'logical',
|
| 79 |
+
prime = 0,
|
| 80 |
+
nest = 1,
|
| 81 |
+
} = {}) {
|
| 82 |
+
const rt = safeRuntime(runtime);
|
| 83 |
+
const k = safeKind(kind);
|
| 84 |
+
const p = intInRange('prime', prime, 0, 99);
|
| 85 |
+
const t = intInRange('tier', tier, 0, 15);
|
| 86 |
+
const n = intInRange('nest', nest, 1, 99999);
|
| 87 |
+
const agentType = classifyAgentType({ yin_yang: k, prime: p });
|
| 88 |
+
const pidValue = safeScalar('pid', pid);
|
| 89 |
+
const roomValue = safeScalar('room', room);
|
| 90 |
+
const surfaceValue = safeScalar('surface', surface);
|
| 91 |
+
const routeValue = safeScalar('route', route);
|
| 92 |
+
const preimage = tuplePreimage(['ROOM', rt, agentType, k, String(p), String(t), String(n), pidValue, roomValue, surfaceValue, routeValue]);
|
| 93 |
+
const h = sha256(preimage);
|
| 94 |
+
return {
|
| 95 |
+
handle: h.slice(0, HANDLE_BYTES * 2),
|
| 96 |
+
handle_bytes: HANDLE_BYTES,
|
| 97 |
+
runtime: rt,
|
| 98 |
+
pid: pidValue,
|
| 99 |
+
room: roomValue,
|
| 100 |
+
surface: surfaceValue,
|
| 101 |
+
route: routeValue,
|
| 102 |
+
route_sha16: sha16(routeValue),
|
| 103 |
+
room_sha16: sha16(roomValue),
|
| 104 |
+
surface_sha16: sha16(surfaceValue),
|
| 105 |
+
tier: `A${String(t).padStart(2, '0')}`,
|
| 106 |
+
nest: String(n).padStart(5, '0'),
|
| 107 |
+
yin_yang: k,
|
| 108 |
+
yin_yang_bit: KIND_BITS[k],
|
| 109 |
+
prime: String(p).padStart(2, '0'),
|
| 110 |
+
prime_mod3: p % 3,
|
| 111 |
+
prime_parity: p % 2 === 0 ? 'even' : 'odd',
|
| 112 |
+
agent_type: agentType,
|
| 113 |
+
preimage_sha16: h.slice(16, 32),
|
| 114 |
+
};
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
export function createPixelRoomTask(input = {}) {
|
| 118 |
+
const room = mintPixelRoom(input);
|
| 119 |
+
const a = classifyRoomAction(input.action || 'LOOK');
|
| 120 |
+
return {
|
| 121 |
+
...room,
|
| 122 |
+
...a,
|
| 123 |
+
pixel_sha16: normalizeSha16('pixel_sha16', input.pixel_sha16 ?? input.pixelSha16 ?? 'none'),
|
| 124 |
+
pixel_delta_sha16: normalizeSha16('pixel_delta_sha16', input.pixel_delta_sha16 ?? input.pixelDeltaSha16 ?? 'none'),
|
| 125 |
+
world_rollout_sha16: normalizeSha16('world_rollout_sha16', input.world_rollout_sha16 ?? input.worldRolloutSha16 ?? 'none'),
|
| 126 |
+
correction_sha16: normalizeSha16('correction_sha16', input.correction_sha16 ?? input.correctionSha16 ?? 'none'),
|
| 127 |
+
target_sha16: normalizeSha16('target_sha16', input.target_sha16 ?? input.targetSha16 ?? 'none'),
|
| 128 |
+
};
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
export function emitPixelRoomRows(input = {}) {
|
| 132 |
+
const task = input.handle ? input : createPixelRoomTask(input);
|
| 133 |
+
return [
|
| 134 |
+
`PIXROOMHDR|tool=${PIXEL_ROOM_ID}|handle=${task.handle}|handle_bytes=${task.handle_bytes}|pid=${hbpToken('pid', task.pid)}|runtime=${task.runtime}|agent_type=${task.agent_type}|tier=${task.tier}|room=${hbpToken('room', task.room)}|surface=${hbpToken('surface', task.surface)}|route_sha16=${task.route_sha16}|json=0`,
|
| 135 |
+
`PIXROOMDIV|handle=${task.handle}|three_system=${task.agent_type}|yin_yang=${task.yin_yang}|yin_yang_bit=${task.yin_yang_bit}|prime=${task.prime}|prime_mod3=${task.prime_mod3}|prime_parity=${task.prime_parity}|nest=${task.nest}|rule=three-systems-three-rules-yin-yang-primes-all-pid|json=0`,
|
| 136 |
+
`PIXROOMPROOF|handle=${task.handle}|action=${task.action}|verdict=${task.verdict}|pixel_sha16=${task.pixel_sha16}|pixel_delta_sha16=${task.pixel_delta_sha16}|world_rollout_sha16=${task.world_rollout_sha16}|correction_sha16=${task.correction_sha16}|target_sha16=${task.target_sha16}|raw_pixels=0|dom_authority=0|json=0`,
|
| 137 |
+
`PIXROOMGATE|handle=${task.handle}|live_control=${task.live_control}|control_gate=${task.live_control ? 'DEFER_TO_OPERATOR' : 'not-live-control'}|economy=REAL-FREE-deterministic-sweep-plus-LOGICAL-WAVE-token-thrift-via-handles|mcp_payload=sha16-row-handles-not-full-context|nothing_launched=1|json=0`,
|
| 138 |
+
];
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
export function selfTest() {
|
| 142 |
+
const checks = [];
|
| 143 |
+
const add = (name, ok) => checks.push({ name, ok: Boolean(ok) });
|
| 144 |
+
const base = {
|
| 145 |
+
runtime: 'codex',
|
| 146 |
+
pid: 'AGT-PIXEL-ROOM-PID-H000C-A08-W1024-P01-N00001',
|
| 147 |
+
room: 'A08-scout-room-0001',
|
| 148 |
+
surface: 'omniscrcpy-backend',
|
| 149 |
+
route: '/api/omniscrcpy/status',
|
| 150 |
+
tier: 8,
|
| 151 |
+
kind: 'logical',
|
| 152 |
+
prime: 1,
|
| 153 |
+
};
|
| 154 |
+
const t = createPixelRoomTask({ ...base, action: 'LOOK', pixel_sha16: '0123456789abcdef' });
|
| 155 |
+
add('handle-shape', /^[0-9a-f]{16}$/.test(t.handle));
|
| 156 |
+
add('deterministic', createPixelRoomTask({ ...base, action: 'LOOK' }).handle === createPixelRoomTask({ ...base, action: 'LOOK' }).handle);
|
| 157 |
+
add('tuple-split-no-collision', sha16(tuplePreimage(['a', 'b-c'])) !== sha16(tuplePreimage(['a-b', 'c'])));
|
| 158 |
+
add('separation-logical', createPixelRoomTask({ ...base, kind: 'logical', prime: 0 }).agent_type === 'LOGICAL-WAVE');
|
| 159 |
+
add('separation-frozen', createPixelRoomTask({ ...base, kind: 'real', prime: 0 }).agent_type === 'FROZEN-BRAIN');
|
| 160 |
+
add('separation-real-free', createPixelRoomTask({ ...base, kind: 'real', prime: 1 }).agent_type === 'REAL-FREE');
|
| 161 |
+
add('control-deferred', createPixelRoomTask({ ...base, action: 'TYPE' }).verdict === 'DEFER_TO_OPERATOR');
|
| 162 |
+
add('no-raw-pixels-row', emitPixelRoomRows(t).some((row) => row.includes('raw_pixels=0') && row.includes('pixel_sha16=0123456789abcdef')));
|
| 163 |
+
add('rows-hbp-only', emitPixelRoomRows(t).every((row) => row.endsWith('|json=0') && !row.includes('\n')));
|
| 164 |
+
add('hbp-injection-rejected', (() => { try { createPixelRoomTask({ ...base, room: 'bad|room' }); return false; } catch { return true; } })());
|
| 165 |
+
return { ok: checks.every((c) => c.ok), checks };
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
const isMain = process.argv[1] && fileURLToPath(import.meta.url) === resolve(process.argv[1]);
|
| 169 |
+
if (isMain) {
|
| 170 |
+
if (process.argv[2] === '--self-test') {
|
| 171 |
+
const r = selfTest();
|
| 172 |
+
for (const c of r.checks) console.log(`${c.ok ? 'PASS' : 'FAIL'} ${c.name}`);
|
| 173 |
+
process.exit(r.ok ? 0 : 1);
|
| 174 |
+
}
|
| 175 |
+
for (const row of emitPixelRoomRows({
|
| 176 |
+
runtime: process.argv[2] || 'codex',
|
| 177 |
+
pid: process.argv[3] || 'PROPOSED',
|
| 178 |
+
room: process.argv[4] || 'A08-scout-room-0001',
|
| 179 |
+
surface: process.argv[5] || 'backend-pixels',
|
| 180 |
+
route: process.argv[6] || '/api/omniscrcpy/status',
|
| 181 |
+
action: process.argv[7] || 'LOOK',
|
| 182 |
+
kind: 'logical',
|
| 183 |
+
prime: 1,
|
| 184 |
+
})) console.log(row);
|
| 185 |
+
}
|
tools/behcs/pixel-room-handle.mjs.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
3514D47EB527F96DB69337A30A46590A0FEC898C04CA5116F9BFEC6391E49C3D pixel-room-handle.mjs
|