0hmX/am3352
This code suite comprises TypeScript scripts that analyze, verify, and assemble complex DDR memory interface hardware, focusing on physical routing, via and pad placement, electrical clearance, and physical constraints, often involving precise geometric calculations and consistent provenance tracking.
- Version
- 1.0.5
- License
- unset
- Stars
- 0
scripts/document-ddr-cpu-layer-swap.ts
/** Bind the two solver witnesses to one exact parent delta; no geometry synthesis. */
import{readFileSync,writeFileSync,mkdirSync}from'node:fs';import{resolve}from'node:path';import{objectHash as hash}from'./improve-ddr-a9-power-launches';
const root=resolve('dist/ddr-cpu-d11-d13-swap-aligned'),parent=resolve('dist/ddr-twenty-d15-power57'),final=root+'/DDR_D11/prepared',read=(p:string)=>JSON.parse(readFileSync(p,'utf8')),before=read(parent+'/candidate.circuit.json'),after=read(final+'/candidate.circuit.json'),report=read(parent+'/report.json'),hosts=read(final+'/host-bundle.json'),key=(e:any)=>e.type+':'+e[`${e.type}_id`],am=new Map(after.map((e:any)=>[key(e),e])),bm=new Map(before.map((e:any)=>[key(e),e])),replacements=before.filter((e:any)=>am.has(key(e))&&hash(am.get(key(e)))!==hash(e)).map((e:any)=>({before:e,after:am.get(key(e)),beforeSha256:hash(e),afterSha256:hash(am.get(key(e)))})),removals=before.filter((e:any)=>!am.has(key(e))),additions=after.filter((e:any)=>!bm.has(key(e)))
if(hash(before)!==report.candidateCircuitSha256||replacements.length!==4||removals.length!==1||removals[0].source_trace_id!=='source_trace_689'||additions.length||hosts.traces.length!==19)throw Error('Unexpected swap delta')
const witnesses=['DDR_D13','DDR_D11'].map(signal=>{const r=read(root+'/'+signal+'/report.json'),changes=read(root+'/'+signal+'/replacements.json'),t=changes.traces[0].after,old=before.find((e:any)=>e.type==='pcb_trace'&&e.pcb_trace_id===t.pcb_trace_id),i=old.route.findIndex((p:any)=>p.route_type==='via'),v=old.route[i],nv=t.route[i];if(!r.accepted||r.physical.violations.length||!r.allAngles.valid||!r.allJunctions.valid||hash(old.route.slice(0,i))!==hash(t.route.slice(0,i))||v.x!==nv.x||v.y!==nv.y||v.via_diameter!==nv.via_diameter||v.via_hole_diameter!==nv.via_hole_diameter)throw Error('Source/barrel witness failed');const e=t.route.at(-1);return{signal,reportSha256:hash(r),sourceTrace:t.source_trace_id,traceId:t.pcb_trace_id,worldExit:{x:e.x,y:e.y,layer:e.layer},side:'left',tangentDegrees:180,outwardCollarMm:.2,padAndBarrelPreserved:true,barrelDiameterMm:v.via_diameter,drillMm:v.via_hole_diameter,physicalViaSpan:'all ten layers',grid:{stepMm:.1,padAligned:true,origin:{x:v.x,y:v.y}},stateCount:read(root+'/'+signal+'/progress.json').at(-1).expandedStateCount}})
const write=(n:string,v:any)=>writeFileSync(root+'/'+n,JSON.stringify(v,null,2)+'\n'),manifest={captureHash:report.captureHash,parentDirectory:parent,parentCircuitSha256:hash(before),candidateCircuitSha256:hash(after),replacements,removals,additions};write('combined-original-copper-replacements.json',manifest);write('local-swap-evidence.json',{captureHash:report.captureHash,candidateCircuitSha256:hash(after),parentCandidateSha256:hash(before),manifestSha256:hash(manifest),retainedHostCount:19,witnesses,scope:'Both CPU local escapes pass together. Exactly D11host invalidated; D11andD13 hosts still require actual physical routing/nominal checks. This is not an accepted20host board or published CPU profile.'});console.log(JSON.stringify({candidateSha256:hash(after),manifestSha256:hash(manifest),witnesses},null,2))
const exportDir=root+'/cpu-swapped-parent';mkdirSync(exportDir,{recursive:true});const ew=(n:string,v:any)=>writeFileSync(exportDir+'/'+n,JSON.stringify(v,null,2)+'\n');ew('candidate.circuit.json',after);ew('original-copper-replacements.json',manifest);ew('host-bundle.json',hosts);ew('routing-input.json',read(final+'/routing-input.json'));ew('report.json',{...report,candidateCircuitSha256:hash(after),hostTracesSha256:hash(hosts.traces),hostBundleSha256:hash(hosts),connectedHostCount:19,preservedHostCount:19,originalCopperReplacementsSha256:hash(manifest),scope:'Isolated CPU K3/L3 layer swap. Nineteen retained hosts, D11 explicitly invalidated and D13 unhosted; both locals pass. Not a completed board.'});for(const n of ['ram-byte0-facing-progress.trace-paths.json','ram-byte1-facing-progress.trace-paths.json','source-provenance.json'])ew(n,read(parent+'/'+n));for(const n of ['exit-contract.json','ram-byte1-exit-contract.json'])ew(n,{...read(parent+'/'+n),candidateCircuitSha256:hash(after),cpuLayerSwapProposal:witnesses});ew('cpu-local-exit-overrides.json',{candidateCircuitSha256:hash(after),witnesses,scope:'Isolated current world-coordinate overrides; canonical CPU caches not modified.'});
for(const args of [['scripts/audit-ddr-global-power-launches.ts',exportDir,'dist/ddr-system/host-taps-54af3e346b5e'],['scripts/audit-ddr-current-byte-budgets.ts','dist/ddr-system/host-taps-54af3e346b5e',exportDir,exportDir+'/current-byte-budgets.json']]){const p=Bun.spawn(['bun',...args],{stdout:'ignore',stderr:'inherit'});if(await p.exited!==0)throw Error('Fresh partial-board audit failed')}