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 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-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=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=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-an-asi-that-is-really-regulated-slices-is-buildable-and-verifiable|tag=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=NEW_ARTIFACT_REQUIRED-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
 
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
- d851a590eee9bb7e4fd7fdbf530672ef9ca801a96a684c5d0b8f042f61f1986d ACER-ASOLARIA-NN-SPINE-CONSISTENCY-REGULATOR-2026-06-12.hbp
 
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
- FF643EF33134A018E4590D19F65651CA1FE03C79D428D7A0D99767F269F7BFC8 TARGET-ARCHITECTURE-200-STEP-DELTA-2026-06-11.hbp
 
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
- d90ecf15db9bb68b260274bef60f127dd472a0b403e25700efa15f17438e1404 supervisor-collision-router.system.test.mjs
 
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