{"codeHash":"q1-e1fa99d08887d6cc","node":"v24.10.0","version":"0.1.0","repo":"https://github.com/Tristan-tech-ai/Quiver","hashRule":{"root":"src/engine","select":"every *.js under the root, RECURSIVELY (subdirectories included)","key":"path relative to the root, forward slashes, sorted ascending by that key","entry":"`${relativePath}:${utf8FileContents}`","join":"\"\\n\"","digest":"'q1-' + sha256(joined).hex.slice(0, 16)","fileCount":37,"files":["black76.js","calldataX.js","chart/browserRender.js","chart/echartsRender.js","chart/indicators.js","chartPress.js","compositeVerdict.js","crossMarket.js","eventVol.js","execVerify.js","ivRank.js","loopDigest.js","lpDesk.js","lpRisk.js","macroSentry.js","mot.js","oiStore.js","optionsDesk.js","optionsGex.js","optionsRisk.js","perpGate.js","polyDesk.js","polyFill.js","portfolioGate.js","proof.js","protocolPulse.js","riskAttest.js","signatureX.js","sizeGate.js","ssvi.js","stats.js","tapePulse.js","tokenScan.js","treasuryRisk.js","upDownPulse.js","vrp.js","walletAudit.js"],"note":"If your recomputation matches this file list but not the codeHash, the sources changed. If it does not match the file list, your recipe is out of date — this object is the current one."},"proofStorage":{"durable":false,"kind":"in-memory only","stored":0,"note":"Proofs are held in memory and cleared by a redeploy. Set QUIVER_PROOF_DIR to a shared path to make them durable."},"reproduce":"Rebuild from source → identical codeHash. Then re-run the open engine on proof.inputs (on this Node version) → identical result & contentHash. Correctness is re-derived, not trusted."}