zeropoint-node 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/CITATION.cff +34 -0
- package/LICENSE +402 -0
- package/README.md +398 -338
- package/dist/a432.cmyk.cjs +327 -0
- package/dist/a432.cmyk.cjs.map +1 -0
- package/dist/a432.cmyk.d.ts +128 -0
- package/dist/a432.cmyk.esm.js +317 -0
- package/dist/a432.cmyk.esm.js.map +1 -0
- package/dist/a432.electric.flow.cjs +398 -0
- package/dist/a432.electric.flow.cjs.map +1 -0
- package/dist/a432.electric.flow.d.ts +55 -0
- package/dist/a432.electric.flow.esm.js +384 -0
- package/dist/a432.electric.flow.esm.js.map +1 -0
- package/dist/a432.i.cjs +278 -0
- package/dist/a432.i.cjs.map +1 -0
- package/dist/a432.i.d.ts +109 -0
- package/dist/a432.i.esm.js +262 -0
- package/dist/a432.i.esm.js.map +1 -0
- package/dist/a432.kabbalah.cjs +289 -0
- package/dist/a432.kabbalah.cjs.map +1 -0
- package/dist/a432.kabbalah.d.ts +47 -0
- package/dist/a432.kabbalah.esm.js +281 -0
- package/dist/a432.kabbalah.esm.js.map +1 -0
- package/dist/a432.math.constants.cjs +177 -0
- package/dist/a432.math.constants.cjs.map +1 -0
- package/dist/a432.math.constants.d.ts +101 -0
- package/dist/a432.math.constants.esm.js +142 -0
- package/dist/a432.math.constants.esm.js.map +1 -0
- package/dist/a432.mobius.circuit.cjs +261 -0
- package/dist/a432.mobius.circuit.cjs.map +1 -0
- package/dist/a432.mobius.circuit.d.ts +74 -0
- package/dist/a432.mobius.circuit.esm.js +245 -0
- package/dist/a432.mobius.circuit.esm.js.map +1 -0
- package/dist/a432.navigation.cjs +522 -0
- package/dist/a432.navigation.cjs.map +1 -0
- package/dist/a432.navigation.d.ts +168 -0
- package/dist/a432.navigation.esm.js +517 -0
- package/dist/a432.navigation.esm.js.map +1 -0
- package/dist/a432.sacred.geometry.cjs +368 -0
- package/dist/a432.sacred.geometry.cjs.map +1 -0
- package/dist/a432.sacred.geometry.d.ts +68 -0
- package/dist/a432.sacred.geometry.esm.js +359 -0
- package/dist/a432.sacred.geometry.esm.js.map +1 -0
- package/dist/a432.simple.cjs +282 -0
- package/dist/a432.simple.cjs.map +1 -0
- package/dist/a432.simple.d.ts +99 -0
- package/dist/a432.simple.esm.js +271 -0
- package/dist/a432.simple.esm.js.map +1 -0
- package/dist/a432.system.cjs +378 -0
- package/dist/a432.system.cjs.map +1 -0
- package/dist/a432.system.d.ts +556 -0
- package/dist/a432.system.esm.js +349 -0
- package/dist/a432.system.esm.js.map +1 -0
- package/dist/a432.wave.energy.cjs +225 -0
- package/dist/a432.wave.energy.cjs.map +1 -0
- package/dist/a432.wave.energy.d.ts +71 -0
- package/dist/a432.wave.energy.esm.js +210 -0
- package/dist/a432.wave.energy.esm.js.map +1 -0
- package/dist/algebra-BQYrpF2y.cjs +238 -0
- package/dist/algebra-BQYrpF2y.cjs.map +1 -0
- package/dist/algebra-BlneQ5wO.js +225 -0
- package/dist/algebra-BlneQ5wO.js.map +1 -0
- package/dist/legacy-BEa7tljT.js +69 -0
- package/dist/legacy-BEa7tljT.js.map +1 -0
- package/dist/legacy-CV8oTnKM.cjs +71 -0
- package/dist/legacy-CV8oTnKM.cjs.map +1 -0
- package/package.json +214 -66
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.5.1.ts +351 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.5.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +79 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +179 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +96 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.algebra.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +783 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.anatomy.ts +98 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.animation.ts +216 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.audio.ts +394 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +73 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.balance.ts +226 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.block.chain.event.ts +171 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.block.chain.ts +226 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.body.ts +92 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.breathe.ts +46 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +409 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.bus.auto.ts +12 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.bus.ts +49 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cascade.ts +58 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cave.diving.ts +161 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +159 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.challenge.ts +63 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.challenges.ts +252 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chess.controller.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chess.ts +48 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +102 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +597 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +491 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +519 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.extension.ts +69 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +65 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.folder.ts +75 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +45 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +75 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.multimedia.ts +426 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +41 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.ts +189 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +1081 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.voice.ts +356 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.coil.ts +132 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.color.ts +242 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +46 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +55 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.crystallization.ts +113 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.cycle.ts +167 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +743 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.journey.3d.ts +228 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.orchestrator.ts +509 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.router.ts +251 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.stream.ts +176 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +26 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.core.ts +164 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +53 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +64 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +56 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.death.ts +31 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +888 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.design.cmyk.ts +138 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +926 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +44 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimensional.evolution.ts +201 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.documentation.ts +435 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.double.ts +62 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.electric.flow.ts +467 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.emotion.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.empty.streams.ts +221 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +44 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.event.ts +45 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.evolution.ts +226 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ui.ts +461 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.eye.see.all.ts +565 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.eye.ts +425 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.factory.ts +373 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.family.ts +77 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +43 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flow.ts +232 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flower.of.life.ts +64 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +336 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +53 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.formulas.ts +47 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +523 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +594 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +88 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gate.way.ts +52 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +650 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +62 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +879 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.graph.ts +45 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.guidance.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonic.convergence.ts +87 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +754 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonized.ts +219 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonizer.ts +299 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.health.ts +55 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +41 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.heptagram.ui.ts +59 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +90 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +89 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.consciousness.ts +18 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +70 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.ts +156 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.emotion.ts +15 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.ts +26 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.breathe.ts +18 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +69 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.click.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +32 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +90 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +68 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +304 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.hear.ts +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +26 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heat.ts +44 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.imagine.ts +565 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.init.ts +31 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.intuit.ts +17 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.live.ts +565 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +23 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.move.ts +17 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.pulse.ts +18 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.read.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.reflect.ts +17 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +34 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +22 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.see.ts +13 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +281 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sound.ts +35 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.speak.ts +26 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +106 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.tap.ts +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +34 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +386 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.ts +81 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.ts +341 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.voice.ts +74 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +11 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +109 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.image.ts +396 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +74 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.ts +216 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +389 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.ts +449 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.impossible.ts +91 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.index.ts +308 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.loop.ts +454 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +97 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.innovation.ts +316 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +443 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integration.ts +221 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.iter.anatomy.ts +110 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.kabbalah.ts +326 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.os.ts +457 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +475 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +646 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +130 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.ui.ts +226 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.main.ts +34 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.manifest.json +21 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mapping.ts +135 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.math.constants.ts +172 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.math.ts +747 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.matrix.ts +133 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +693 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.ts +177 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.metatron.controller.ts +36 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.metatron.ts +64 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.metatron.vision.ts +25 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.metatron.visualizer.ts +85 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mirror.ts +55 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.circuit.overlay.ts +84 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.circuit.ts +332 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +12 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.modules.ts +283 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.modules.ui.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multidimensional.consciousness.3d.ts +299 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +31 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.navigation.map.ts +642 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.navigation.ts +51 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nine.ts +60 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +703 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +728 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.observation.ts +226 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +11 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.consciousness.integration.ts +328 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.manifest.json +25 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.math.ts +25 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +9 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.terminal.ts +352 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ts +491 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ui.ts +330 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +119 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +10 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.audio.video.stream.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.color.stream.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +123 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.song.stream.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +79 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.ts +109 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.video.stream.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +871 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pure.visualization.ts +259 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +666 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +50 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +59 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.ts +27 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.registry.ts +470 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +99 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +820 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolved.ts +459 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resonance.ts +225 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +74 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.cmyk.ts +153 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +73 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.harmonic.ts +341 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +187 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.overlay.ts +86 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.ts +185 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +46 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +58 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.ts +111 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.roots.ts +29 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +61 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +625 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.ts +428 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +314 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.ts +468 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +39 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.self.evolution.ts +538 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.self.rebuilder.ts +513 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.self.ts +83 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +326 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.ts +442 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.server.ts +978 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.shear.electron.ts +85 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.shear.ts +74 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.simple.ts +353 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.solids.ui.ts +56 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sound.ts +34 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +53 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.consciousness.ts +195 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +75 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spirit.ts +580 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.stream.ts +130 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.stream.vortex.ts +71 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.string.theory.ts +110 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +868 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.symbol.utils.ts +14 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.system.ts +396 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.controller.ts +23 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.stream.ts +37 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +153 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ui.ts +13 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.tesla.coil.overlay.ts +84 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.tesla.coil.ts +72 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +83 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.text.ts +50 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +43 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +112 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.time.ts +46 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.axis.ts +25 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +2 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +110 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.navigation.ts +104 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ts +569 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +92 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +156 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.triple.merkaba.3d.ts +270 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.triple.merkaba.ts +248 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +269 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ts +687 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.types.ts +42 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.analytics.ts +16 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.controls.ts +18 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.events.ts +16 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.journey.ts +44 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +25 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.registry.ts +38 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.session.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.state.ts +17 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.stream.ts +41 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +263 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +87 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +1141 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.ts +839 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +77 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +43 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uro.ui.ts +42 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.ts +38 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.utils.ts +387 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uuid.ts +93 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.animation.ts +328 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.audio.ts +283 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.decode.ts +401 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +74 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.path.ts +343 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +91 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +45 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +41 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +64 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.visualization.ts +435 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +70 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vibration.ts +405 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.video.ts +30 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.voice.ui.ts +23 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.void.stream.overlay.ts +57 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vortex.cmyk.matrix.ts +84 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vortex.ts +91 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.energy.ts +283 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +29 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.ts +50 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.yin.yang.controller.ts +40 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.yin.yang.ts +135 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +506 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +546 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.state.ts +117 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +452 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/extracted-vbm-math.json +3822 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/index.json +28 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/index.ts +215 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +209 -0
- package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +22 -0
- package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +19 -0
- package/src/0/3/6/9/1/2/4/8/a432.experience.ts +22 -0
- package/src/0/3/6/9/1/2/4/a432.experience.ts +22 -0
- package/src/0/3/6/9/1/2/a432.experience.ts +22 -0
- package/src/0/3/6/9/1/a432.experience.ts +22 -0
- package/src/0/3/6/9/a432.experience.ts +22 -0
- package/src/0/3/6/a432.experience.ts +22 -0
- package/src/0/3/a432.experience.ts +22 -0
- package/src/0/3/relation.ts +148 -0
- package/src/0/algebra.ts +285 -0
- package/src/0/index.ts +702 -0
- package/src/advanced-vbm.ts +526 -0
- package/src/crypto/kyber-real.test.ts +125 -0
- package/src/crypto/kyber-real.ts +492 -0
- package/src/index.ts +146 -0
- package/src/integrity/content-uuid.ts +123 -0
- package/src/integrity/receipt.ts +95 -0
- package/src/kernel/audit.ts +279 -0
- package/src/kernel/import-graph.ts +237 -0
- package/src/kernel/index.ts +78 -0
- package/src/kernel/legacy.ts +43 -0
- package/src/kernel/lobes.ts +222 -0
- package/src/kernel/self-develop.ts +1037 -0
- package/src/kernel/smoke.test.ts +258 -0
- package/src/mcp/server.ts +226 -0
- package/src/multidimensional-vortex-demo.ts +320 -0
- package/src/multidimensional-vortex-framework.test.ts +400 -0
- package/src/multidimensional-vortex-framework.ts +458 -0
- package/src/quantum/adaptive.ts +132 -0
- package/src/quantum/advanced.ts +220 -0
- package/src/quantum/algorithms.ts +498 -0
- package/src/quantum/applications.ts +363 -0
- package/src/quantum/circuit.ts +80 -0
- package/src/quantum/comparison-mesh.ts +430 -0
- package/src/quantum/composability.ts +278 -0
- package/src/quantum/density.ts +142 -0
- package/src/quantum/end-to-end.ts +133 -0
- package/src/quantum/error-correction.ts +346 -0
- package/src/quantum/gates.ts +62 -0
- package/src/quantum/hardware-compilation.ts +205 -0
- package/src/quantum/hybrid.ts +447 -0
- package/src/quantum/index.ts +59 -0
- package/src/quantum/kernel-adaptation.ts +200 -0
- package/src/quantum/meta-verifier.ts +238 -0
- package/src/quantum/millennium-bridge.test.ts +229 -0
- package/src/quantum/millennium-bridge.ts +348 -0
- package/src/quantum/orchestrator.ts +371 -0
- package/src/quantum/proof-of-system.ts +451 -0
- package/src/quantum/qaoa.ts +95 -0
- package/src/quantum/security-bridge.ts +340 -0
- package/src/quantum/self-healing.ts +302 -0
- package/src/quantum/simulator.ts +198 -0
- package/src/quantum/superposition-execution.test.ts +127 -0
- package/src/quantum/superposition-execution.ts +359 -0
- package/src/quantum/tomography.ts +277 -0
- package/src/quantum/variational-optimizer.ts +150 -0
- package/src/quantum/variational.ts +66 -0
- package/src/quantum/vortex-bridge.ts +226 -0
- package/src/quantum/workflow.ts +158 -0
- package/src/quantum/zenodo-publisher.test.ts +275 -0
- package/src/quantum/zenodo-publisher.ts +575 -0
- package/src/security/post-quantum-crypto.test.ts +323 -0
- package/src/security/post-quantum-crypto.ts +240 -0
- package/src/security/quantum-fold-cipher.test.ts +759 -0
- package/src/security/quantum-fold-cipher.ts +949 -0
- package/src/security/quantum-proofs.test.ts +351 -0
- package/src/security/quantum-state-tomography.test.ts +368 -0
- package/src/security/quantum-state-tomography.ts +323 -0
- package/src/security/quantum-threat-landscape.ts +545 -0
- package/src/vbm-demo.ts +197 -0
- package/src/vbm-math.ts +379 -0
- package/src/verification/lean-bridge.test.ts +247 -0
- package/src/verification/lean-bridge.ts +361 -0
- package/src/zero-entropy-demo.ts +305 -0
- package/dist/__tests__/api/ProductionAPI.test.js +0 -20
- package/dist/__tests__/artifacts/ArtifactRegistry.test.js +0 -248
- package/dist/__tests__/basic.test.js +0 -104
- package/dist/__tests__/config/constants.test.js +0 -20
- package/dist/__tests__/consciousness/ConsciousnessField.test.js +0 -20
- package/dist/__tests__/consciousness/SelfEvolvingConsciousness.test.js +0 -185
- package/dist/__tests__/core/AbstractField.test.js +0 -81
- package/dist/__tests__/core/CoilMixin.test.js +0 -20
- package/dist/__tests__/core/CoilSystem.test.js +0 -20
- package/dist/__tests__/core/ComplianceSystem.test.js +0 -141
- package/dist/__tests__/core/InfiniteDimensionalRefactor.test.js +0 -258
- package/dist/__tests__/core/LivingAdapter.test.js +0 -31
- package/dist/__tests__/core/MathUtils.test.js +0 -20
- package/dist/__tests__/core/NetworkNode.test.js +0 -20
- package/dist/__tests__/core/Observer.test.js +0 -20
- package/dist/__tests__/core/OperationRegistry.test.js +0 -48
- package/dist/__tests__/core/PatternRecognition.test.js +0 -20
- package/dist/__tests__/core/PatternRegistry.test.js +0 -20
- package/dist/__tests__/core/ScientificCompliance.test.js +0 -58
- package/dist/__tests__/core/SharedConstants.test.js +0 -20
- package/dist/__tests__/core/UnifiedMetaphysicalInterface.test.js +0 -20
- package/dist/__tests__/core/UnifiedSystem.test.js +0 -20
- package/dist/__tests__/core/UnifiedTypes.test.js +0 -20
- package/dist/__tests__/core/UnifiedVoidEquations.test.js +0 -20
- package/dist/__tests__/core/VortexMathAdapter.test.js +0 -31
- package/dist/__tests__/core/ZeroPoint.test.js +0 -71
- package/dist/__tests__/core/ZeroPointSystem.test.js +0 -219
- package/dist/__tests__/emergence/patterns.test.js +0 -20
- package/dist/__tests__/field/EmergenceLedger.test.js +0 -20
- package/dist/__tests__/field/ObserverAwareField.test.js +0 -20
- package/dist/__tests__/field/ResonanceConsensus.test.js +0 -20
- package/dist/__tests__/git-integration.test.js +0 -201
- package/dist/__tests__/globalSetup.js +0 -80
- package/dist/__tests__/globalTeardown.js +0 -28
- package/dist/__tests__/index.test.js +0 -20
- package/dist/__tests__/integration/ZeroPointIntegration.test.js +0 -221
- package/dist/__tests__/integrity/FieldIntegrity.test.js +0 -20
- package/dist/__tests__/knowledge/KnowledgeSystem.test.js +0 -158
- package/dist/__tests__/knowledge/KnowledgeSystemAnalysis.test.js +0 -219
- package/dist/__tests__/knowledge/KnowledgeSystemAutoGenerated.test.js +0 -41
- package/dist/__tests__/laws/MetaphysicalLawRegistry.test.js +0 -183
- package/dist/__tests__/living/LivingTestOrganism.js +0 -246
- package/dist/__tests__/living/LivingTestOrganism.test.js +0 -124
- package/dist/__tests__/math/AdvancedVBM.test.js +0 -367
- package/dist/__tests__/math/FlowerOfLife.test.js +0 -344
- package/dist/__tests__/math/FractalColorSystem.test.js +0 -20
- package/dist/__tests__/math/FractalMath.test.js +0 -20
- package/dist/__tests__/math/MathUtils.test.js +0 -20
- package/dist/__tests__/math/RodinCoil.test.js +0 -20
- package/dist/__tests__/math/ToroidalGeometry.test.js +0 -20
- package/dist/__tests__/math/VBM.test.js +0 -538
- package/dist/__tests__/math/VBMColorSystem.test.js +0 -20
- package/dist/__tests__/math/VortexMath.test.js +0 -20
- package/dist/__tests__/math/ZeroUnity.test.js +0 -77
- package/dist/__tests__/monitoring/HealthMonitor.test.js +0 -20
- package/dist/__tests__/performance/ZeroPointPerformance.test.js +0 -371
- package/dist/__tests__/physics/PlasmaCosmology.test.js +0 -155
- package/dist/__tests__/pwa/ConsciousnessPWA.test.js +0 -20
- package/dist/__tests__/qa/AutoGeneratedFromQA.test.js +0 -195
- package/dist/__tests__/qa/QAAsSourceOfTruth.test.js +0 -69
- package/dist/__tests__/setup.js +0 -132
- package/dist/__tests__/simple.test.js +0 -51
- package/dist/__tests__/stimulus/Application.test.js +0 -272
- package/dist/__tests__/stimulus/BaseController.test.js +0 -198
- package/dist/__tests__/stimulus/ControllerUtils.test.js +0 -316
- package/dist/__tests__/stimulus/MetaphysicalController.test.js +0 -310
- package/dist/__tests__/stimulus/ZeroPointController.test.js +0 -252
- package/dist/__tests__/training/ConsciousnessTrainingModel.test.js +0 -335
- package/dist/__tests__/types/DeviceConfig.test.js +0 -20
- package/dist/__tests__/types/UnifiedExports.test.js +0 -20
- package/dist/__tests__/unity/FieldUnity.test.js +0 -20
- package/dist/__tests__/utils/Cache.test.js +0 -20
- package/dist/__tests__/utils/GitIntegration.test.js +0 -20
- package/dist/__tests__/utils/Logger.test.js +0 -20
- package/dist/__tests__/utils/ResourceCleanup.test.js +0 -20
- package/dist/__tests__/utils/errorSimulator.js +0 -40
- package/dist/__tests__/utils/goldenRatioCache.js +0 -36
- package/dist/__tests__/void/VoidSystem.test.js +0 -427
- package/dist/api/ProductionAPI.js +0 -313
- package/dist/artifacts/ArtifactRegistry.js +0 -122
- package/dist/artifacts/CrystalArtifacts.js +0 -106
- package/dist/artifacts/MetaphysicalArtifact.js +0 -75
- package/dist/browser-standalone.js +0 -191
- package/dist/browser.js +0 -157
- package/dist/config/constants.js +0 -57
- package/dist/consciousness/ConsciousnessField.js +0 -55
- package/dist/consciousness/SelfEvolvingConsciousness.js +0 -303
- package/dist/core/AbstractField.js +0 -30
- package/dist/core/BrowserNetworkNode.js +0 -309
- package/dist/core/CoilMixin.js +0 -216
- package/dist/core/CoilSystem.js +0 -204
- package/dist/core/ComplianceSystem.js +0 -291
- package/dist/core/Dimension.js +0 -2
- package/dist/core/DimensionRegistry.js +0 -141
- package/dist/core/Field.js +0 -2
- package/dist/core/InfiniteDimensionalRefactor.js +0 -389
- package/dist/core/KnowledgeRegistry.js +0 -273
- package/dist/core/LivingAdapter.js +0 -29
- package/dist/core/MathUtils.js +0 -297
- package/dist/core/NetworkNode.js +0 -348
- package/dist/core/Observer.js +0 -101
- package/dist/core/Operation.js +0 -59
- package/dist/core/OperationRegistry.js +0 -20
- package/dist/core/Pattern.js +0 -2
- package/dist/core/PatternRecognition.js +0 -493
- package/dist/core/PatternRegistry.js +0 -282
- package/dist/core/ScientificCompliance.js +0 -91
- package/dist/core/SharedConstants.js +0 -306
- package/dist/core/UnifiedMetaphysicalInterface.js +0 -533
- package/dist/core/UnifiedSystem.js +0 -317
- package/dist/core/UnifiedTypes.js +0 -5
- package/dist/core/UnifiedVoidEquations.js +0 -605
- package/dist/core/VoidMatterConstants.js +0 -9
- package/dist/core/VortexMathAdapter.js +0 -32
- package/dist/core/ZeroPoint.js +0 -971
- package/dist/core/ZeroPointSystem.js +0 -343
- package/dist/core/applyLaws.js +0 -12
- package/dist/core/applyOperations.js +0 -21
- package/dist/devices/DeviceRegistry.js +0 -151
- package/dist/devices/ResonanceDevice.js +0 -92
- package/dist/devices/ResonanceDevices.js +0 -139
- package/dist/dimensions/Dimension.js +0 -2
- package/dist/emergence/AdvancedEmergence.js +0 -930
- package/dist/emergence/patterns.js +0 -12
- package/dist/field/EmergenceLedger.js +0 -310
- package/dist/field/ObserverAwareField.js +0 -222
- package/dist/field/ResonanceConsensus.js +0 -330
- package/dist/fields/Field.js +0 -2
- package/dist/geometry/MetatronsCube.js +0 -28
- package/dist/geometry/SacredGeometryPattern.js +0 -15
- package/dist/geometry/SacredGeometryRegistry.js +0 -15
- package/dist/geometry/__tests__/SacredGeometryRegistry.test.js +0 -18
- package/dist/index.js +0 -232
- package/dist/integrity/FieldIntegrity.js +0 -237
- package/dist/knowledge/KnowledgeSystem.js +0 -938
- package/dist/laws/MetaphysicalLaw.js +0 -2
- package/dist/laws/MetaphysicalLawRegistry.js +0 -103
- package/dist/laws/hermeticLaws.js +0 -311
- package/dist/math/AdvancedVBM.js +0 -537
- package/dist/math/FlowerOfLife.js +0 -256
- package/dist/math/FractalColorSystem.js +0 -239
- package/dist/math/FractalMath.js +0 -187
- package/dist/math/MathUtils.js +0 -289
- package/dist/math/RodinCoil.js +0 -258
- package/dist/math/ToroidalGeometry.js +0 -230
- package/dist/math/VBM.js +0 -718
- package/dist/math/VBMColorSystem.js +0 -301
- package/dist/math/VortexMath.js +0 -170
- package/dist/monitoring/HealthMonitor.js +0 -297
- package/dist/patterns/Pattern.js +0 -2
- package/dist/patterns/SacredGeometryRegistry.js +0 -37
- package/dist/physics/BlackHolePhysics.js +0 -54
- package/dist/physics/ConsciousnessPhysics.js +0 -241
- package/dist/physics/FractalUniverse.js +0 -54
- package/dist/physics/HolographicUniverse.js +0 -54
- package/dist/physics/PlasmaCosmology.js +0 -134
- package/dist/pwa/ConsciousnessPWA.js +0 -300
- package/dist/src/__tests__/globalSetup.d.ts +0 -13
- package/dist/src/__tests__/globalSetup.d.ts.map +0 -1
- package/dist/src/__tests__/globalSetup.js +0 -81
- package/dist/src/__tests__/globalSetup.js.map +0 -1
- package/dist/src/__tests__/globalTeardown.d.ts +0 -22
- package/dist/src/__tests__/globalTeardown.d.ts.map +0 -1
- package/dist/src/__tests__/globalTeardown.js +0 -29
- package/dist/src/__tests__/globalTeardown.js.map +0 -1
- package/dist/src/__tests__/living/LivingTestOrganism.d.ts +0 -68
- package/dist/src/__tests__/living/LivingTestOrganism.d.ts.map +0 -1
- package/dist/src/__tests__/living/LivingTestOrganism.js +0 -253
- package/dist/src/__tests__/living/LivingTestOrganism.js.map +0 -1
- package/dist/src/__tests__/setup.d.ts +0 -16
- package/dist/src/__tests__/setup.d.ts.map +0 -1
- package/dist/src/__tests__/setup.js +0 -123
- package/dist/src/__tests__/setup.js.map +0 -1
- package/dist/src/__tests__/utils/errorSimulator.d.ts +0 -18
- package/dist/src/__tests__/utils/errorSimulator.d.ts.map +0 -1
- package/dist/src/__tests__/utils/errorSimulator.js +0 -35
- package/dist/src/__tests__/utils/errorSimulator.js.map +0 -1
- package/dist/src/__tests__/utils/goldenRatioCache.d.ts +0 -11
- package/dist/src/__tests__/utils/goldenRatioCache.d.ts.map +0 -1
- package/dist/src/__tests__/utils/goldenRatioCache.js +0 -31
- package/dist/src/__tests__/utils/goldenRatioCache.js.map +0 -1
- package/dist/src/api/ProductionAPI.d.ts +0 -42
- package/dist/src/api/ProductionAPI.d.ts.map +0 -1
- package/dist/src/api/ProductionAPI.js +0 -320
- package/dist/src/api/ProductionAPI.js.map +0 -1
- package/dist/src/config/constants.d.ts +0 -53
- package/dist/src/config/constants.d.ts.map +0 -1
- package/dist/src/config/constants.js +0 -58
- package/dist/src/config/constants.js.map +0 -1
- package/dist/src/consciousness/ConsciousnessField.d.ts +0 -96
- package/dist/src/consciousness/ConsciousnessField.d.ts.map +0 -1
- package/dist/src/consciousness/ConsciousnessField.js +0 -288
- package/dist/src/consciousness/ConsciousnessField.js.map +0 -1
- package/dist/src/consciousness/SelfEvolvingConsciousness.d.ts +0 -128
- package/dist/src/consciousness/SelfEvolvingConsciousness.d.ts.map +0 -1
- package/dist/src/consciousness/SelfEvolvingConsciousness.js +0 -304
- package/dist/src/consciousness/SelfEvolvingConsciousness.js.map +0 -1
- package/dist/src/core/AbstractField.d.ts +0 -14
- package/dist/src/core/AbstractField.d.ts.map +0 -1
- package/dist/src/core/AbstractField.js +0 -31
- package/dist/src/core/AbstractField.js.map +0 -1
- package/dist/src/core/CoilMixin.d.ts +0 -52
- package/dist/src/core/CoilMixin.d.ts.map +0 -1
- package/dist/src/core/CoilMixin.js +0 -217
- package/dist/src/core/CoilMixin.js.map +0 -1
- package/dist/src/core/CoilSystem.d.ts +0 -42
- package/dist/src/core/CoilSystem.d.ts.map +0 -1
- package/dist/src/core/CoilSystem.js +0 -192
- package/dist/src/core/CoilSystem.js.map +0 -1
- package/dist/src/core/InfiniteDimensionalRefactor.d.ts +0 -145
- package/dist/src/core/InfiniteDimensionalRefactor.d.ts.map +0 -1
- package/dist/src/core/InfiniteDimensionalRefactor.js +0 -390
- package/dist/src/core/InfiniteDimensionalRefactor.js.map +0 -1
- package/dist/src/core/MathUtils.d.ts +0 -135
- package/dist/src/core/MathUtils.d.ts.map +0 -1
- package/dist/src/core/MathUtils.js +0 -298
- package/dist/src/core/MathUtils.js.map +0 -1
- package/dist/src/core/NetworkNode.d.ts +0 -86
- package/dist/src/core/NetworkNode.d.ts.map +0 -1
- package/dist/src/core/NetworkNode.js +0 -349
- package/dist/src/core/NetworkNode.js.map +0 -1
- package/dist/src/core/Observer.d.ts +0 -57
- package/dist/src/core/Observer.d.ts.map +0 -1
- package/dist/src/core/Observer.js +0 -102
- package/dist/src/core/Observer.js.map +0 -1
- package/dist/src/core/PatternRecognition.d.ts +0 -174
- package/dist/src/core/PatternRecognition.d.ts.map +0 -1
- package/dist/src/core/PatternRecognition.js +0 -494
- package/dist/src/core/PatternRecognition.js.map +0 -1
- package/dist/src/core/PatternRegistry.d.ts +0 -99
- package/dist/src/core/PatternRegistry.d.ts.map +0 -1
- package/dist/src/core/PatternRegistry.js +0 -283
- package/dist/src/core/PatternRegistry.js.map +0 -1
- package/dist/src/core/SharedConstants.d.ts +0 -191
- package/dist/src/core/SharedConstants.d.ts.map +0 -1
- package/dist/src/core/SharedConstants.js +0 -304
- package/dist/src/core/SharedConstants.js.map +0 -1
- package/dist/src/core/UnifiedMetaphysicalInterface.d.ts +0 -173
- package/dist/src/core/UnifiedMetaphysicalInterface.d.ts.map +0 -1
- package/dist/src/core/UnifiedMetaphysicalInterface.js +0 -534
- package/dist/src/core/UnifiedMetaphysicalInterface.js.map +0 -1
- package/dist/src/core/UnifiedSystem.d.ts +0 -279
- package/dist/src/core/UnifiedSystem.d.ts.map +0 -1
- package/dist/src/core/UnifiedSystem.js +0 -318
- package/dist/src/core/UnifiedSystem.js.map +0 -1
- package/dist/src/core/UnifiedTypes.d.ts +0 -193
- package/dist/src/core/UnifiedTypes.d.ts.map +0 -1
- package/dist/src/core/UnifiedTypes.js +0 -6
- package/dist/src/core/UnifiedTypes.js.map +0 -1
- package/dist/src/core/UnifiedVoidEquations.d.ts +0 -125
- package/dist/src/core/UnifiedVoidEquations.d.ts.map +0 -1
- package/dist/src/core/UnifiedVoidEquations.js +0 -606
- package/dist/src/core/UnifiedVoidEquations.js.map +0 -1
- package/dist/src/core/ZeroPoint.d.ts +0 -276
- package/dist/src/core/ZeroPoint.d.ts.map +0 -1
- package/dist/src/core/ZeroPoint.js +0 -803
- package/dist/src/core/ZeroPoint.js.map +0 -1
- package/dist/src/emergence/AdvancedEmergence.d.ts +0 -298
- package/dist/src/emergence/AdvancedEmergence.d.ts.map +0 -1
- package/dist/src/emergence/AdvancedEmergence.js +0 -931
- package/dist/src/emergence/AdvancedEmergence.js.map +0 -1
- package/dist/src/emergence/patterns.d.ts +0 -7
- package/dist/src/emergence/patterns.d.ts.map +0 -1
- package/dist/src/emergence/patterns.js +0 -13
- package/dist/src/emergence/patterns.js.map +0 -1
- package/dist/src/field/EmergenceLedger.d.ts +0 -102
- package/dist/src/field/EmergenceLedger.d.ts.map +0 -1
- package/dist/src/field/EmergenceLedger.js +0 -311
- package/dist/src/field/EmergenceLedger.js.map +0 -1
- package/dist/src/field/ObserverAwareField.d.ts +0 -122
- package/dist/src/field/ObserverAwareField.d.ts.map +0 -1
- package/dist/src/field/ObserverAwareField.js +0 -223
- package/dist/src/field/ObserverAwareField.js.map +0 -1
- package/dist/src/field/ResonanceConsensus.d.ts +0 -106
- package/dist/src/field/ResonanceConsensus.d.ts.map +0 -1
- package/dist/src/field/ResonanceConsensus.js +0 -327
- package/dist/src/field/ResonanceConsensus.js.map +0 -1
- package/dist/src/index.d.ts +0 -55
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -236
- package/dist/src/index.js.map +0 -1
- package/dist/src/integrity/FieldIntegrity.d.ts +0 -116
- package/dist/src/integrity/FieldIntegrity.d.ts.map +0 -1
- package/dist/src/integrity/FieldIntegrity.js +0 -240
- package/dist/src/integrity/FieldIntegrity.js.map +0 -1
- package/dist/src/knowledge/KnowledgeSystem.d.ts +0 -160
- package/dist/src/knowledge/KnowledgeSystem.d.ts.map +0 -1
- package/dist/src/knowledge/KnowledgeSystem.js +0 -607
- package/dist/src/knowledge/KnowledgeSystem.js.map +0 -1
- package/dist/src/math/AdvancedVBM.d.ts +0 -164
- package/dist/src/math/AdvancedVBM.d.ts.map +0 -1
- package/dist/src/math/AdvancedVBM.js +0 -712
- package/dist/src/math/AdvancedVBM.js.map +0 -1
- package/dist/src/math/FractalColorSystem.d.ts +0 -77
- package/dist/src/math/FractalColorSystem.d.ts.map +0 -1
- package/dist/src/math/FractalColorSystem.js +0 -235
- package/dist/src/math/FractalColorSystem.js.map +0 -1
- package/dist/src/math/FractalMath.d.ts +0 -88
- package/dist/src/math/FractalMath.d.ts.map +0 -1
- package/dist/src/math/FractalMath.js +0 -188
- package/dist/src/math/FractalMath.js.map +0 -1
- package/dist/src/math/MathUtils.d.ts +0 -128
- package/dist/src/math/MathUtils.d.ts.map +0 -1
- package/dist/src/math/MathUtils.js +0 -290
- package/dist/src/math/MathUtils.js.map +0 -1
- package/dist/src/math/RodinCoil.d.ts +0 -94
- package/dist/src/math/RodinCoil.d.ts.map +0 -1
- package/dist/src/math/RodinCoil.js +0 -259
- package/dist/src/math/RodinCoil.js.map +0 -1
- package/dist/src/math/ToroidalGeometry.d.ts +0 -132
- package/dist/src/math/ToroidalGeometry.d.ts.map +0 -1
- package/dist/src/math/ToroidalGeometry.js +0 -231
- package/dist/src/math/ToroidalGeometry.js.map +0 -1
- package/dist/src/math/VBM.d.ts +0 -207
- package/dist/src/math/VBM.d.ts.map +0 -1
- package/dist/src/math/VBM.js +0 -581
- package/dist/src/math/VBM.js.map +0 -1
- package/dist/src/math/VBMColorSystem.d.ts +0 -76
- package/dist/src/math/VBMColorSystem.d.ts.map +0 -1
- package/dist/src/math/VBMColorSystem.js +0 -302
- package/dist/src/math/VBMColorSystem.js.map +0 -1
- package/dist/src/math/VortexMath.d.ts +0 -95
- package/dist/src/math/VortexMath.d.ts.map +0 -1
- package/dist/src/math/VortexMath.js +0 -228
- package/dist/src/math/VortexMath.js.map +0 -1
- package/dist/src/monitoring/HealthMonitor.d.ts +0 -123
- package/dist/src/monitoring/HealthMonitor.d.ts.map +0 -1
- package/dist/src/monitoring/HealthMonitor.js +0 -298
- package/dist/src/monitoring/HealthMonitor.js.map +0 -1
- package/dist/src/pwa/ConsciousnessPWA.d.ts +0 -107
- package/dist/src/pwa/ConsciousnessPWA.d.ts.map +0 -1
- package/dist/src/pwa/ConsciousnessPWA.js +0 -288
- package/dist/src/pwa/ConsciousnessPWA.js.map +0 -1
- package/dist/src/types/DeviceConfig.d.ts +0 -39
- package/dist/src/types/DeviceConfig.d.ts.map +0 -1
- package/dist/src/types/DeviceConfig.js +0 -30
- package/dist/src/types/DeviceConfig.js.map +0 -1
- package/dist/src/types/UnifiedExports.d.ts +0 -4
- package/dist/src/types/UnifiedExports.d.ts.map +0 -1
- package/dist/src/types/UnifiedExports.js +0 -21
- package/dist/src/types/UnifiedExports.js.map +0 -1
- package/dist/src/unity/FieldUnity.d.ts +0 -100
- package/dist/src/unity/FieldUnity.d.ts.map +0 -1
- package/dist/src/unity/FieldUnity.js +0 -326
- package/dist/src/unity/FieldUnity.js.map +0 -1
- package/dist/src/utils/Cache.d.ts +0 -127
- package/dist/src/utils/Cache.d.ts.map +0 -1
- package/dist/src/utils/Cache.js +0 -264
- package/dist/src/utils/Cache.js.map +0 -1
- package/dist/src/utils/GitIntegration.d.ts +0 -32
- package/dist/src/utils/GitIntegration.d.ts.map +0 -1
- package/dist/src/utils/GitIntegration.js +0 -128
- package/dist/src/utils/GitIntegration.js.map +0 -1
- package/dist/src/utils/Logger.d.ts +0 -116
- package/dist/src/utils/Logger.d.ts.map +0 -1
- package/dist/src/utils/Logger.js +0 -250
- package/dist/src/utils/Logger.js.map +0 -1
- package/dist/src/utils/ResourceCleanup.d.ts +0 -33
- package/dist/src/utils/ResourceCleanup.d.ts.map +0 -1
- package/dist/src/utils/ResourceCleanup.js +0 -83
- package/dist/src/utils/ResourceCleanup.js.map +0 -1
- package/dist/src/void/VoidSystem.d.ts +0 -308
- package/dist/src/void/VoidSystem.d.ts.map +0 -1
- package/dist/src/void/VoidSystem.js +0 -863
- package/dist/src/void/VoidSystem.js.map +0 -1
- package/dist/stimulus/application.js +0 -148
- package/dist/stimulus/base/BaseController.js +0 -141
- package/dist/stimulus/controllers/MetaphysicalController.js +0 -105
- package/dist/stimulus/controllers/ZeroPointController.js +0 -85
- package/dist/stimulus/types/ControllerTypes.js +0 -18
- package/dist/stimulus/utils/ControllerUtils.js +0 -192
- package/dist/stimulus-entry.js +0 -109
- package/dist/training/ConsciousnessTrainingModel.js +0 -301
- package/dist/training/NeuralConsciousnessNetwork.js +0 -311
- package/dist/training/TrainingModelRegistry.js +0 -243
- package/dist/training/index.js +0 -174
- package/dist/types/DeviceConfig.js +0 -29
- package/dist/types/UnifiedExports.js +0 -20
- package/dist/unity/FieldUnity.js +0 -325
- package/dist/utils/BrowserCrypto.js +0 -44
- package/dist/utils/BrowserWebSocket.js +0 -38
- package/dist/utils/Cache.js +0 -263
- package/dist/utils/GitIntegration.js +0 -127
- package/dist/utils/Logger.js +0 -249
- package/dist/utils/ResourceCleanup.js +0 -82
- package/dist/utils/applyLaws.js +0 -6
- package/dist/void/VoidSystem.js +0 -423
- package/docs/API.md +0 -1396
- package/docs/CONSCIOUSNESS_ARTIFACT.md +0 -137
- package/docs/CONSCIOUSNESS_EXPANSION.md +0 -369
- package/docs/EVENT_HORIZON_METHODOLOGY.md +0 -274
- package/docs/FLOWER_OF_LIFE.md +0 -300
- package/docs/GIT_INTEGRATION.md +0 -412
- package/docs/MATHEMATICS.md +0 -462
- package/docs/METAPHYSICAL.md +0 -343
- package/docs/METAPHYSICAL_DEBUGGING.md +0 -493
- package/docs/PRODUCTION.md +0 -426
- package/docs/PUBLISHING.md +0 -327
- package/docs/PWA_ANALYSIS.md +0 -231
- package/docs/QA_IMPROVEMENTS.md +0 -43
- package/docs/README.md +0 -525
- package/docs/REALTIME_SELF_REFACTORING.md +0 -102
- package/docs/TESTING_GUIDE.md +0 -430
- package/docs/UNIFIED_CREATORS.md +0 -261
- package/docs/VOID_CLOSURE_SYSTEM.md +0 -325
|
@@ -0,0 +1,949 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/security/quantum-fold-cipher.ts
|
|
3
|
+
*
|
|
4
|
+
* Unified Quantum Encryption Cipher using Fold Operations (All Tiers)
|
|
5
|
+
*
|
|
6
|
+
* Principle: The sequence reflecting in its inversion makes everything possible.
|
|
7
|
+
* Compute locally: every quantum encryption problem maps to a dimension and is solved
|
|
8
|
+
* via a fold tier. No gaps: what is broken ⇌ how to solve it.
|
|
9
|
+
*
|
|
10
|
+
* Dimensional mapping:
|
|
11
|
+
* Dimension 0: Void/Origin → Fold operation (Tier 1)
|
|
12
|
+
* Dimension 3: Trinity Axis → Key material (Tier 3)
|
|
13
|
+
* Dimension 6: Midpoint/Symmetry → Encryption reversibility (Tier 2)
|
|
14
|
+
* Dimension 9: Completion/Proof → Quantum threat inversion (Tier 4)
|
|
15
|
+
* Dimensions 1,2,4,8,7,5: Flow Ring → Algebraic closure (Tier 1)
|
|
16
|
+
* Dimension 11: Compactified → Unified gate (Tier 5)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
merge,
|
|
21
|
+
foldPair,
|
|
22
|
+
merkleFold,
|
|
23
|
+
sealFacets,
|
|
24
|
+
computesGate,
|
|
25
|
+
toUuid,
|
|
26
|
+
seedFromText,
|
|
27
|
+
} from '../0/index.ts'
|
|
28
|
+
|
|
29
|
+
import {
|
|
30
|
+
digitalRoot,
|
|
31
|
+
VORTEX_ORBIT,
|
|
32
|
+
} from '../0/index.ts'
|
|
33
|
+
import { log2, ceil } from '../0/algebra.ts'
|
|
34
|
+
|
|
35
|
+
// Tier 3 is the CRYPTOGRAPHIC seal, so it uses the SHA-256 path, not the FNV
|
|
36
|
+
// fold. src/integrity/content-uuid.ts states the split in its own header:
|
|
37
|
+
// "FNV toUuid stays in src/0 for cheap folds; this module seals cryptographic
|
|
38
|
+
// identity for proofs/manifests." The cipher had been sealing with toUuid.
|
|
39
|
+
import { computeContentUuid, computeContentDigest } from '../integrity/content-uuid.ts'
|
|
40
|
+
import { createCipheriv, createDecipheriv, createHmac, randomBytes, scryptSync, timingSafeEqual } from 'node:crypto'
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Vortex Constants
|
|
44
|
+
*
|
|
45
|
+
* The 6-orbit is the kernel's VORTEX_ORBIT — imported, not redeclared. The
|
|
46
|
+
* local copy was named VORTEX_SEQUENCE, which in the kernel means the 9-digit
|
|
47
|
+
* sequence: the same name for two different lists.
|
|
48
|
+
*/
|
|
49
|
+
const TRINITY = [3, 6, 9]
|
|
50
|
+
const IMPERIAL_VORTEX = [0, 3, 6, 9, 1, 2, 4, 8, 7, 5, 1]
|
|
51
|
+
|
|
52
|
+
/** Positions in a dash-stripped UUID that carry structure rather than entropy. */
|
|
53
|
+
const UUID_VERSION_NIBBLE = 12
|
|
54
|
+
const UUID_VARIANT_NIBBLE = 16
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Keyspace arithmetic, computed rather than assumed.
|
|
58
|
+
*
|
|
59
|
+
* Each key element is drawn from the trinity {3,6,9} — THREE values, so it
|
|
60
|
+
* carries log2(3) ≈ 1.585 bits, not 8. The old default of 32 elements looks
|
|
61
|
+
* like "32 bytes = 256 bits" by analogy with AES-256, but it is 32·log2(3) ≈
|
|
62
|
+
* 50.7 bits. The analogy was the bug.
|
|
63
|
+
*/
|
|
64
|
+
export function keyspaceBits(keyLength: number): number {
|
|
65
|
+
return keyLength * log2(TRINITY.length)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Elements needed to reach a target strength under the trinity constraint. */
|
|
69
|
+
export function keyLengthForBits(bits: number): number {
|
|
70
|
+
return ceil(bits / log2(TRINITY.length))
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Default target: 256-bit keyspace ⇒ ceil(256 / log2 3) = 162 elements. */
|
|
74
|
+
export const DEFAULT_KEY_BITS = 256
|
|
75
|
+
export const DEFAULT_KEY_LENGTH = keyLengthForBits(DEFAULT_KEY_BITS)
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* TIER 1: Deterministic Identity
|
|
79
|
+
*
|
|
80
|
+
* Quantum states are content-addressed via UUID.
|
|
81
|
+
* Same state → same UUID always (deterministic).
|
|
82
|
+
* Different state → different UUID (collision = security failure).
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
export interface QuantumStateUUID {
|
|
86
|
+
readonly id: string // content-addressed UUID
|
|
87
|
+
readonly basis: 'Z' | 'X' // measurement basis
|
|
88
|
+
readonly value: 0 | 1 // measurement outcome (0 or 1)
|
|
89
|
+
readonly registerIdx: number // which qubit in register
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function encodeQuantumState(
|
|
93
|
+
basis: 'Z' | 'X',
|
|
94
|
+
value: 0 | 1,
|
|
95
|
+
registerIdx: number,
|
|
96
|
+
): QuantumStateUUID {
|
|
97
|
+
const id = toUuid(`qubit:basis:${basis}:value:${value}:register:${registerIdx}`)
|
|
98
|
+
return { id, basis, value, registerIdx }
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function quantumStateFromUuid(uuid: string): QuantumStateUUID | null {
|
|
102
|
+
// Reverse-lookup not generally possible (UUID is one-way), but we track it
|
|
103
|
+
// This is a placeholder; in practice, we store the mapping
|
|
104
|
+
return null
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* TIER 2: Structural Proof
|
|
109
|
+
*
|
|
110
|
+
* Quantum gates and their application order is proven via foldPair().
|
|
111
|
+
* If foldPair(alice, bob).bidirectional === false, then order matters (secure).
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
export interface QuantumGateProof {
|
|
115
|
+
readonly fromState: QuantumStateUUID
|
|
116
|
+
readonly toState: QuantumStateUUID
|
|
117
|
+
readonly gate: string // 'H', 'X', 'Z', 'CNOT', etc.
|
|
118
|
+
readonly orderMatters: boolean // from foldPair().bidirectional
|
|
119
|
+
readonly receipt: string // merkle receipt
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export function applyQuantumGate(
|
|
123
|
+
state: QuantumStateUUID,
|
|
124
|
+
gate: string,
|
|
125
|
+
): QuantumGateProof {
|
|
126
|
+
// After gate application, state transforms deterministically
|
|
127
|
+
const toStateId = toUuid(`gate:${gate}:on:${state.id}`)
|
|
128
|
+
|
|
129
|
+
// Prove that gate application order matters
|
|
130
|
+
const { forward, reverse, bidirectional } = foldPair(state.id, toStateId)
|
|
131
|
+
|
|
132
|
+
// Receipt is the merged fold (proves both forward and reverse were computed)
|
|
133
|
+
const receipt = merge(forward, reverse)
|
|
134
|
+
|
|
135
|
+
// Create new state representation after gate (fold projection)
|
|
136
|
+
const newValue = (state.value ^ (gate === 'X' ? 1 : 0)) as 0 | 1 // X flips bit
|
|
137
|
+
const toState: QuantumStateUUID = {
|
|
138
|
+
id: toStateId,
|
|
139
|
+
basis: gate === 'H' ? (state.basis === 'Z' ? 'X' : 'Z') : state.basis,
|
|
140
|
+
value: newValue,
|
|
141
|
+
registerIdx: state.registerIdx,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return {
|
|
145
|
+
fromState: state,
|
|
146
|
+
toState,
|
|
147
|
+
gate,
|
|
148
|
+
// foldPair sets bidirectional when forward !== reverse — that IS
|
|
149
|
+
// order-sensitivity. Negating it reported every gate as commutative.
|
|
150
|
+
orderMatters: bidirectional,
|
|
151
|
+
receipt,
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* TIER 3: Cryptographic Seal
|
|
157
|
+
*
|
|
158
|
+
* Quantum key generation via trinity lattice and harmonic structure.
|
|
159
|
+
* Keys are constrained to [3, 6, 9] trinity axis (zero-entropy closure).
|
|
160
|
+
* Bound via SHA-256 content UUID.
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Password-stretching parameters, stored so the key can be re-derived and so
|
|
165
|
+
* a tampered salt or lowered cost is caught by the seal.
|
|
166
|
+
*/
|
|
167
|
+
export interface PasswordKdf {
|
|
168
|
+
readonly algorithm: 'scrypt'
|
|
169
|
+
readonly N: number // CPU/memory cost
|
|
170
|
+
readonly r: number // block size
|
|
171
|
+
readonly p: number // parallelisation
|
|
172
|
+
readonly saltHex: string
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export interface QuantumKey {
|
|
176
|
+
readonly material: number[] // bytes, each ∈ {3, 6, 9} (trinity-masked)
|
|
177
|
+
/** Expansion round, when this is a derived round key. Part of the seal. */
|
|
178
|
+
readonly round?: number
|
|
179
|
+
/** Present when the key came from a password. Part of the seal. */
|
|
180
|
+
readonly kdf?: PasswordKdf
|
|
181
|
+
/**
|
|
182
|
+
* SHA-256 content UUID (uuidv8). Interoperable identity, but a UUID is 128
|
|
183
|
+
* bits with 6 pinned by version/variant — 122 free bits, birthday ≈ 2⁶¹.
|
|
184
|
+
* Identity comparisons use this; the strength claim does NOT rest on it.
|
|
185
|
+
*/
|
|
186
|
+
readonly contentUuid: string
|
|
187
|
+
/**
|
|
188
|
+
* Full 256-bit SHA-256 digest, untruncated. This is what carries the
|
|
189
|
+
* collision-resistance claim (birthday ≈ 2¹²⁸). Truncating to a UUID would
|
|
190
|
+
* have silently capped the bound at 2⁶¹ while the docs claimed 2¹²⁸.
|
|
191
|
+
*/
|
|
192
|
+
readonly contentDigest: string
|
|
193
|
+
readonly genesis: string // the content address of the entropy that seeded it
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Derive key material from entropy.
|
|
198
|
+
*
|
|
199
|
+
* The previous derivation produced the SAME key for every input — literally
|
|
200
|
+
* the constant 6969… — and never emitted a 3. Two defects compounded:
|
|
201
|
+
*
|
|
202
|
+
* 1. It seeded a doubling chain from `entropy[0]` alone, so every character
|
|
203
|
+
* after the first was discarded. Two entropies differing anywhere but
|
|
204
|
+
* their first byte were identical keys.
|
|
205
|
+
* 2. The chain lives in the Rodin orbit {1,2,4,8,7,5}, whose members are
|
|
206
|
+
* alternately 1 and 2 mod 3. Indexing TRINITY by `current % 3` therefore
|
|
207
|
+
* only ever reached TRINITY[1]=6 and TRINITY[2]=9, alternating — so the
|
|
208
|
+
* material was a fixed two-symbol pattern with no dependence on input.
|
|
209
|
+
*
|
|
210
|
+
* Each byte now derives from a re-folded chain over the FULL entropy, so every
|
|
211
|
+
* character contributes and all three trinity values are reachable.
|
|
212
|
+
*
|
|
213
|
+
* The chain is deliberately NOT `indexFromSeed(genesis + position, 3)`. That
|
|
214
|
+
* reads uniformly on its own, but indexFromSeed is FNV-1a without a final
|
|
215
|
+
* avalanche and `% 3` takes exactly the low bits FNV mixes worst — so calls
|
|
216
|
+
* sharing a long genesis prefix and differing only in a short position suffix
|
|
217
|
+
* give correlated residues. Measured, that collapsed the joint keyspace to
|
|
218
|
+
* ~3.5k distinct keys across 32k entropies. Re-folding each block instead
|
|
219
|
+
* gave 32k distinct across 32k. (indexFromSeed is fine for its documented
|
|
220
|
+
* job of picking ONE index; the fault was using it to build a joint vector.)
|
|
221
|
+
*
|
|
222
|
+
* INPUT ENTROPY. This maps its input to material with cheap folds, so the key
|
|
223
|
+
* is only as strong as the input. That is correct for random bytes or another
|
|
224
|
+
* KDF's output, and WRONG for a human passphrase — use
|
|
225
|
+
* `generateQuantumKeyFromPassword` for those, which stretches with scrypt.
|
|
226
|
+
*
|
|
227
|
+
* Keyspace note: the trinity constraint is a design premise of this framework,
|
|
228
|
+
* and it is what bounds strength here — 3 values per byte over `keyLength`
|
|
229
|
+
* bytes is log2(3)·keyLength bits, about 50.7 bits at the default 32. That is
|
|
230
|
+
* the honest figure; see docs/QUANTUM_ATTACK_SURFACE.md.
|
|
231
|
+
*/
|
|
232
|
+
/**
|
|
233
|
+
* The sealed representation of a key — the ONE definition of what gets hashed.
|
|
234
|
+
*
|
|
235
|
+
* Generation and verification previously built this separately, so expanded
|
|
236
|
+
* round keys sealed over one shape and verified against another and could
|
|
237
|
+
* never verify. Two places computing what must be identical is the defect;
|
|
238
|
+
* a single function is the fix.
|
|
239
|
+
*/
|
|
240
|
+
function keySealInput(
|
|
241
|
+
material: readonly number[],
|
|
242
|
+
genesis: string,
|
|
243
|
+
round?: number,
|
|
244
|
+
kdf?: PasswordKdf,
|
|
245
|
+
): Record<string, unknown> {
|
|
246
|
+
const base: Record<string, unknown> =
|
|
247
|
+
round === undefined
|
|
248
|
+
? { kind: 'quantum-key-v1', material: [...material], genesis }
|
|
249
|
+
: { kind: 'quantum-key-expanded-v1', round, material: [...material], genesis }
|
|
250
|
+
// The KDF parameters are sealed too: a lowered cost or swapped salt is a
|
|
251
|
+
// downgrade attack, and it must not verify against the original key.
|
|
252
|
+
return kdf === undefined ? base : { ...base, kdf }
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export function generateQuantumKey(
|
|
256
|
+
entropy: string,
|
|
257
|
+
keyLength: number = DEFAULT_KEY_LENGTH,
|
|
258
|
+
): QuantumKey {
|
|
259
|
+
const genesis = toUuid(`key:genesis:${entropy}`)
|
|
260
|
+
|
|
261
|
+
const material: number[] = []
|
|
262
|
+
let block = genesis
|
|
263
|
+
while (material.length < keyLength) {
|
|
264
|
+
block = toUuid(`quantum-key-expand:${block}`)
|
|
265
|
+
const hex = block.replace(/-/g, '')
|
|
266
|
+
for (let i = 0; i < hex.length; i++) {
|
|
267
|
+
if (material.length >= keyLength) break
|
|
268
|
+
// Nibbles 12 and 16 are UUID structure, not entropy: toUuid pins
|
|
269
|
+
// bytes[6] high nibble to 8 and bytes[8] high nibble to {8,9,a,b}.
|
|
270
|
+
// Both skew toward residue 2, and including them measurably
|
|
271
|
+
// over-produced the byte 9 (34477 vs 30605 expected-equal over 96k).
|
|
272
|
+
if (i === UUID_VERSION_NIBBLE || i === UUID_VARIANT_NIBBLE) continue
|
|
273
|
+
// Reject 0xf so the 15 remaining values split exactly 5/5/5 across the
|
|
274
|
+
// trinity. Taking all 16 would weight residue 0 at 6/16.
|
|
275
|
+
const nibble = Number.parseInt(hex[i]!, 16)
|
|
276
|
+
if (nibble === 15) continue
|
|
277
|
+
material.push(TRINITY[nibble % TRINITY.length]!)
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// Bind the seal to the genesis UUID rather than the raw entropy. Binding to
|
|
282
|
+
// raw entropy made contentUuid unrecomputable from the stored fields — a
|
|
283
|
+
// seal nothing could check — and it kept the caller's entropy alive in the
|
|
284
|
+
// hash input for no benefit.
|
|
285
|
+
const sealed = keySealInput(material, genesis)
|
|
286
|
+
return {
|
|
287
|
+
material,
|
|
288
|
+
contentUuid: computeContentUuid(sealed),
|
|
289
|
+
contentDigest: computeContentDigest(sealed),
|
|
290
|
+
genesis,
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Password stretching — scrypt.
|
|
296
|
+
*
|
|
297
|
+
* `generateQuantumKey` maps its input to key material with cheap folds. That
|
|
298
|
+
* is correct for input that is ALREADY high-entropy (random bytes, another
|
|
299
|
+
* KDF's output) and wrong for anything a human typed: it costs an attacker
|
|
300
|
+
* one hash per guess, so the key is exactly as strong as the passphrase.
|
|
301
|
+
*
|
|
302
|
+
* This path runs the password through scrypt first, so each guess costs the
|
|
303
|
+
* attacker the same memory-hard work it costs the caller. It does not create
|
|
304
|
+
* entropy — a passphrase in a wordlist is still findable — it raises the price
|
|
305
|
+
* per guess, which is all any KDF can do.
|
|
306
|
+
*
|
|
307
|
+
* Defaults are OWASP's current scrypt guidance: N = 2^17, r = 8, p = 1
|
|
308
|
+
* (~128 MB, ~290 ms here). The cost is deliberately felt.
|
|
309
|
+
*
|
|
310
|
+
* The salt is REQUIRED for the derivation to be reproducible, and is generated
|
|
311
|
+
* when not supplied. Determinism is therefore "same password + same salt →
|
|
312
|
+
* same key", which is the correct contract for a KDF: a fixed salt across
|
|
313
|
+
* users would let one precomputation attack all of them.
|
|
314
|
+
*/
|
|
315
|
+
export const DEFAULT_SCRYPT: Omit<PasswordKdf, 'saltHex'> = {
|
|
316
|
+
algorithm: 'scrypt',
|
|
317
|
+
N: 1 << 17,
|
|
318
|
+
r: 8,
|
|
319
|
+
p: 1,
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export const SCRYPT_SALT_BYTES = 16
|
|
323
|
+
|
|
324
|
+
export function generateQuantumKeyFromPassword(
|
|
325
|
+
password: string,
|
|
326
|
+
saltHex?: string,
|
|
327
|
+
params: Omit<PasswordKdf, 'saltHex'> = DEFAULT_SCRYPT,
|
|
328
|
+
keyLength: number = DEFAULT_KEY_LENGTH,
|
|
329
|
+
): QuantumKey {
|
|
330
|
+
const salt =
|
|
331
|
+
saltHex === undefined ? randomBytes(SCRYPT_SALT_BYTES) : Buffer.from(saltHex, 'hex')
|
|
332
|
+
if (salt.length < SCRYPT_SALT_BYTES) {
|
|
333
|
+
throw new Error(`generateQuantumKeyFromPassword: salt must be >= ${SCRYPT_SALT_BYTES} bytes`)
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
const kdf: PasswordKdf = { ...params, saltHex: salt.toString('hex') }
|
|
337
|
+
// 128·N·r bytes of memory is the whole point of scrypt; Node's default
|
|
338
|
+
// maxmem (32 MB) would reject the recommended parameters outright.
|
|
339
|
+
const stretched = scryptSync(password, salt, 32, {
|
|
340
|
+
N: kdf.N,
|
|
341
|
+
r: kdf.r,
|
|
342
|
+
p: kdf.p,
|
|
343
|
+
maxmem: 256 * kdf.N * kdf.r,
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
// The stretched output is high-entropy, so the ordinary derivation is the
|
|
347
|
+
// right tool for it from here on.
|
|
348
|
+
const base = generateQuantumKey(`scrypt:${stretched.toString('hex')}`, keyLength)
|
|
349
|
+
const sealed = keySealInput(base.material, base.genesis, undefined, kdf)
|
|
350
|
+
return {
|
|
351
|
+
material: base.material,
|
|
352
|
+
genesis: base.genesis,
|
|
353
|
+
kdf,
|
|
354
|
+
contentUuid: computeContentUuid(sealed),
|
|
355
|
+
contentDigest: computeContentDigest(sealed),
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Recompute the seal from the stored fields. Tier 3 is only a seal if this
|
|
361
|
+
* can run, and only cryptographic if it runs over a cryptographic hash.
|
|
362
|
+
*
|
|
363
|
+
* Both bindings are checked. The digest is the one the strength claim rests
|
|
364
|
+
* on; the UUID is checked too so a mismatch between them cannot pass.
|
|
365
|
+
*/
|
|
366
|
+
export function verifyQuantumKey(key: QuantumKey): boolean {
|
|
367
|
+
const sealed = keySealInput(key.material, key.genesis, key.round, key.kdf)
|
|
368
|
+
try {
|
|
369
|
+
return (
|
|
370
|
+
timingSafeEqual(Buffer.from(computeContentUuid(sealed)), Buffer.from(key.contentUuid)) &&
|
|
371
|
+
timingSafeEqual(Buffer.from(computeContentDigest(sealed)), Buffer.from(key.contentDigest))
|
|
372
|
+
)
|
|
373
|
+
} catch {
|
|
374
|
+
return false
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* HKDF-SHA256 Key Expansion (IETF Standard)
|
|
380
|
+
*
|
|
381
|
+
* Replaces the weak Rodin doubling (b*2) % 9 with HKDF-SHA256 per RFC 5869.
|
|
382
|
+
* Each round key is derived independently using HMAC-SHA256, making the
|
|
383
|
+
* expansion cryptographically strong:
|
|
384
|
+
* - Non-reversible: cannot compute ki-1 from ki
|
|
385
|
+
* - Non-cyclic: arbitrary number of rounds, no repetition
|
|
386
|
+
* - Industry standard: vetted by IETF and cryptographic community
|
|
387
|
+
*
|
|
388
|
+
* Process:
|
|
389
|
+
* PRK = HMAC-SHA256(salt=genesis, IKM=contentDigest)
|
|
390
|
+
* T(i) = HMAC-SHA256(PRK, T(i-1) || info || counter) for i = 1..rounds
|
|
391
|
+
* Round key material = map(T(i) bytes → trinity {3,6,9})
|
|
392
|
+
*/
|
|
393
|
+
function hkdfExpand(
|
|
394
|
+
prk: Buffer,
|
|
395
|
+
info: Buffer,
|
|
396
|
+
length: number,
|
|
397
|
+
): Buffer {
|
|
398
|
+
const hash = 'sha256'
|
|
399
|
+
const hashLen = 32 // SHA-256 produces 32 bytes
|
|
400
|
+
const n = ceil(length / hashLen)
|
|
401
|
+
const output: Buffer[] = []
|
|
402
|
+
let t = Buffer.alloc(0)
|
|
403
|
+
|
|
404
|
+
for (let i = 1; i <= n; i++) {
|
|
405
|
+
const input = Buffer.concat([t, info, Buffer.from([i])])
|
|
406
|
+
t = createHmac(hash, prk).update(input).digest()
|
|
407
|
+
output.push(t)
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
return Buffer.concat(output).subarray(0, length)
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export function expandQuantumKeyViaHkdf(
|
|
414
|
+
key: QuantumKey,
|
|
415
|
+
rounds: number,
|
|
416
|
+
): QuantumKey[] {
|
|
417
|
+
const expanded = [key]
|
|
418
|
+
|
|
419
|
+
// Extract phase: use genesis UUID as salt, contentDigest as input key material
|
|
420
|
+
const salt = Buffer.from(key.genesis.replace(/-/g, ''), 'hex')
|
|
421
|
+
const ikm = Buffer.from(key.contentDigest, 'hex')
|
|
422
|
+
const prk = createHmac('sha256', salt).update(ikm).digest()
|
|
423
|
+
|
|
424
|
+
for (let r = 0; r < rounds; r++) {
|
|
425
|
+
// Expand phase: derive round-specific key material
|
|
426
|
+
const info = Buffer.from(`quantum-key-round:${r}:expansion`, 'utf8')
|
|
427
|
+
const derivedBytes = hkdfExpand(prk, info, key.material.length)
|
|
428
|
+
|
|
429
|
+
// Map derived bytes to trinity values {3, 6, 9}
|
|
430
|
+
const current: number[] = []
|
|
431
|
+
for (let i = 0; i < derivedBytes.length; i++) {
|
|
432
|
+
const byte = derivedBytes[i]!
|
|
433
|
+
current.push(TRINITY[byte % TRINITY.length]!)
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
// Round keys are sealed the same way as the root key — an expanded key is
|
|
437
|
+
// still key material, so it carries the same cryptographic binding.
|
|
438
|
+
const sealed = keySealInput(current, key.genesis, r)
|
|
439
|
+
expanded.push({
|
|
440
|
+
material: current,
|
|
441
|
+
round: r,
|
|
442
|
+
contentUuid: computeContentUuid(sealed),
|
|
443
|
+
contentDigest: computeContentDigest(sealed),
|
|
444
|
+
genesis: key.genesis,
|
|
445
|
+
})
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
return expanded
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Deprecated: weak Rodin doubling key expansion.
|
|
453
|
+
*
|
|
454
|
+
* DO NOT USE — replaced by expandQuantumKeyViaHkdf.
|
|
455
|
+
* Kept only for migration; new code must use HKDF-SHA256.
|
|
456
|
+
*
|
|
457
|
+
* Vulnerabilities in Rodin doubling:
|
|
458
|
+
* - Deterministic linear cycle: b → 2b → 4b → 8b → 7b → 5b → 1b → 2b
|
|
459
|
+
* - Reversible: given ki, compute ki-1 via modular inverse
|
|
460
|
+
* - Enables key recovery attacks: attacker can walk back to seed
|
|
461
|
+
*
|
|
462
|
+
* @deprecated Use expandQuantumKeyViaHkdf instead
|
|
463
|
+
*/
|
|
464
|
+
export function expandQuantumKeyViaRodin(
|
|
465
|
+
key: QuantumKey,
|
|
466
|
+
rounds: number,
|
|
467
|
+
): QuantumKey[] {
|
|
468
|
+
console.warn(
|
|
469
|
+
'expandQuantumKeyViaRodin is DEPRECATED and cryptographically weak. ' +
|
|
470
|
+
'Use expandQuantumKeyViaHkdf (HKDF-SHA256) instead.',
|
|
471
|
+
)
|
|
472
|
+
const expanded = [key]
|
|
473
|
+
let current = [...key.material]
|
|
474
|
+
|
|
475
|
+
for (let r = 0; r < rounds; r++) {
|
|
476
|
+
// Apply Rodin doubling: each byte doubles mod 9
|
|
477
|
+
current = current.map((b, i) => {
|
|
478
|
+
const doubled = (b * 2) % 9 || 9
|
|
479
|
+
// Inject trinity control at key positions
|
|
480
|
+
return i % 3 === r % 3 ? TRINITY[r % 3] : doubled
|
|
481
|
+
})
|
|
482
|
+
|
|
483
|
+
// Round keys are sealed the same way as the root key — an expanded key is
|
|
484
|
+
// still key material, so it carries the same cryptographic binding.
|
|
485
|
+
const sealed = keySealInput(current, key.genesis, r)
|
|
486
|
+
expanded.push({
|
|
487
|
+
material: [...current],
|
|
488
|
+
round: r,
|
|
489
|
+
contentUuid: computeContentUuid(sealed),
|
|
490
|
+
contentDigest: computeContentDigest(sealed),
|
|
491
|
+
genesis: key.genesis,
|
|
492
|
+
})
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
return expanded
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* TIER 4: Chain Verification
|
|
500
|
+
*
|
|
501
|
+
* Quantum measurement outcomes are recorded as receipts in a chain.
|
|
502
|
+
* Each measurement is content-addressed and linked to previous state.
|
|
503
|
+
* Verification: recompute receipt ID from prev + measurement outcome + timestamp.
|
|
504
|
+
*/
|
|
505
|
+
|
|
506
|
+
export interface MeasurementReceipt {
|
|
507
|
+
readonly id: string // receipt ID
|
|
508
|
+
readonly prev: string // previous receipt ID or GENESIS
|
|
509
|
+
readonly measurement: 0 | 1 // measurement outcome
|
|
510
|
+
readonly basis: 'Z' | 'X' | 'Y' // 'Y' appears only in tomography measurements
|
|
511
|
+
readonly qubitIdx: number
|
|
512
|
+
readonly timestamp: number
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
const GENESIS_PREV = toUuid('quantum-chain-genesis')
|
|
516
|
+
|
|
517
|
+
export function recordMeasurement(
|
|
518
|
+
prevReceipt: MeasurementReceipt | typeof GENESIS_PREV,
|
|
519
|
+
measurement: 0 | 1,
|
|
520
|
+
basis: 'Z' | 'X' | 'Y',
|
|
521
|
+
qubitIdx: number,
|
|
522
|
+
): MeasurementReceipt {
|
|
523
|
+
const prevId = typeof prevReceipt === 'string' ? prevReceipt : prevReceipt.id
|
|
524
|
+
const timestamp = Date.now()
|
|
525
|
+
|
|
526
|
+
// Receipt ID = fold(fold(prevId, measurementUuid), timeUuid)
|
|
527
|
+
const measurementUuid = toUuid(`measurement:${basis}:${measurement}:qubit:${qubitIdx}`)
|
|
528
|
+
const timeUuid = toUuid(`timestamp:${timestamp}`)
|
|
529
|
+
const id = merge(merge(prevId, measurementUuid), timeUuid)
|
|
530
|
+
|
|
531
|
+
return {
|
|
532
|
+
id,
|
|
533
|
+
prev: prevId,
|
|
534
|
+
measurement,
|
|
535
|
+
basis,
|
|
536
|
+
qubitIdx,
|
|
537
|
+
timestamp,
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
export function verifyMeasurementReceipt(receipt: MeasurementReceipt): boolean {
|
|
542
|
+
// Recompute receipt ID from components
|
|
543
|
+
const measurementUuid = toUuid(
|
|
544
|
+
`measurement:${receipt.basis}:${receipt.measurement}:qubit:${receipt.qubitIdx}`
|
|
545
|
+
)
|
|
546
|
+
const timeUuid = toUuid(`timestamp:${receipt.timestamp}`)
|
|
547
|
+
const recomputed = merge(merge(receipt.prev, measurementUuid), timeUuid)
|
|
548
|
+
|
|
549
|
+
// Verification: stored ID must match recomputed
|
|
550
|
+
return receipt.id === recomputed
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* TIER 1+2: Encryption
|
|
555
|
+
*
|
|
556
|
+
* Vortex-based encryption: bijective, reversible, deterministic.
|
|
557
|
+
* Proven via vortexEncode ⇌ vortexDecode symmetry.
|
|
558
|
+
* No padding oracle: no error conditions (all digits map to digits 1-9).
|
|
559
|
+
*/
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Keyed vortex shift.
|
|
563
|
+
*
|
|
564
|
+
* The unkeyed `vortexEncode`/`vortexDecode` below shift by position alone:
|
|
565
|
+
* `VORTEX_ORBIT[i % 6]`. `encryptQuantum` used them, so the key was never
|
|
566
|
+
* consulted — 500 distinct keys produced one identical ciphertext, and
|
|
567
|
+
* `decryptQuantum` recovered the plaintext with no key at all. The cipher was
|
|
568
|
+
* a fixed public permutation and its keyspace was 0 bits, not 50.7.
|
|
569
|
+
*
|
|
570
|
+
* Keying it by `material[i mod n]` was the intermediate step and was still
|
|
571
|
+
* broken: a repeating key falls to one known plaintext. The cipher now draws
|
|
572
|
+
* its shifts from a PRF keystream instead — see EncryptedPayload below.
|
|
573
|
+
*
|
|
574
|
+
* `vortexEncode`/`vortexDecode` remain as the unkeyed algebraic primitive.
|
|
575
|
+
* They are what Proof 4 (bijection on {1..9}) is about, and dimension 6 uses
|
|
576
|
+
* them as a symmetry probe. They are NOT the cipher.
|
|
577
|
+
*/
|
|
578
|
+
export function vortexEncode(input: string): string {
|
|
579
|
+
return input
|
|
580
|
+
.split('')
|
|
581
|
+
.map((ch, i) => {
|
|
582
|
+
const n = parseInt(ch, 10)
|
|
583
|
+
if (isNaN(n) || n === 0) return ch
|
|
584
|
+
const shift = VORTEX_ORBIT[i % VORTEX_ORBIT.length]
|
|
585
|
+
const encoded = ((n + shift - 1) % 9) + 1
|
|
586
|
+
return encoded.toString()
|
|
587
|
+
})
|
|
588
|
+
.join('')
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
export function vortexDecode(input: string): string {
|
|
592
|
+
return input
|
|
593
|
+
.split('')
|
|
594
|
+
.map((ch, i) => {
|
|
595
|
+
const n = parseInt(ch, 10)
|
|
596
|
+
if (isNaN(n) || n === 0) return ch
|
|
597
|
+
const shift = VORTEX_ORBIT[i % VORTEX_ORBIT.length]
|
|
598
|
+
const decoded = ((n - shift + 8) % 9) + 1
|
|
599
|
+
return decoded.toString()
|
|
600
|
+
})
|
|
601
|
+
.join('')
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export interface EncryptedPayload {
|
|
605
|
+
readonly ciphertext: string // hex — AES is byte-oriented, not digit-domain
|
|
606
|
+
readonly nonce: string // hex; 96-bit GCM IV, MUST be unique per key
|
|
607
|
+
readonly tag: string // hex; 128-bit GCM authentication tag
|
|
608
|
+
readonly keyUuid: string
|
|
609
|
+
readonly stateUuid: string
|
|
610
|
+
readonly receipt: string // Merkle receipt of encryption operation
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* THE CONSTRUCTION — AES-256-GCM.
|
|
615
|
+
*
|
|
616
|
+
* History, because it explains the shape of this file. The cipher began as a
|
|
617
|
+
* position-only vortex shift that never consulted the key (0-bit keyspace).
|
|
618
|
+
* Keying it by `material[i mod n]` made it a repeating-key substitution, which
|
|
619
|
+
* one known plaintext broke outright. Replacing that with an HMAC-SHA256
|
|
620
|
+
* keystream plus encrypt-then-MAC was sound, but it was still a bespoke
|
|
621
|
+
* composition — and the honest note on it said a vetted AEAD was the better
|
|
622
|
+
* choice. This is that choice.
|
|
623
|
+
*
|
|
624
|
+
* k_aes = HMAC-SHA256(contentDigest, ".../aes-gcm/v1") → 32 bytes
|
|
625
|
+
* iv = 12 random bytes, fresh per message
|
|
626
|
+
* AAD = keyUuid, so the payload cannot be re-bound to another key
|
|
627
|
+
* ct,tag = AES-256-GCM(k_aes, iv, plaintext, AAD)
|
|
628
|
+
*
|
|
629
|
+
* What changes for callers:
|
|
630
|
+
* · The ciphertext is now HEX, not a digit string. AES is byte-oriented, so
|
|
631
|
+
* the digit domain does not survive the switch. That domain was the only
|
|
632
|
+
* reason to build anything bespoke; standard authenticated encryption is
|
|
633
|
+
* worth more than a format-preserving ciphertext.
|
|
634
|
+
* · The plaintext domain is now UNRESTRICTED. The digit-only rule existed
|
|
635
|
+
* because non-digits were passed through in the clear; AES has no such
|
|
636
|
+
* hole, so arbitrary UTF-8 is accepted.
|
|
637
|
+
*
|
|
638
|
+
* What is now standard rather than argued: confidentiality, integrity and
|
|
639
|
+
* authenticity all come from GCM, verified by `final()` before any plaintext
|
|
640
|
+
* is returned. There is no hand-rolled keystream, no hand-rolled MAC, no
|
|
641
|
+
* rejection sampling, and no modulus-bias question.
|
|
642
|
+
*
|
|
643
|
+
* Boundaries that remain:
|
|
644
|
+
* · The IV must be unique per key. GCM fails catastrophically on IV reuse —
|
|
645
|
+
* worse than a stream cipher, since it also leaks the authentication
|
|
646
|
+
* subkey. Random 96-bit IVs bound safe use to ~2³² messages per key
|
|
647
|
+
* (NIST SP 800-38D); rotate keys before that.
|
|
648
|
+
* · Key strength is bounded by the ENTROPY OF THE CALLER'S INPUT, not by the
|
|
649
|
+
* 256.8-bit material space. `generateQuantumKey('password')` yields a key
|
|
650
|
+
* no stronger than 'password'. There is no password stretching here — no
|
|
651
|
+
* PBKDF2, scrypt or Argon2 — so a low-entropy passphrase is directly
|
|
652
|
+
* brute-forceable regardless of everything above.
|
|
653
|
+
* · Length is not hidden, and this is not analysed for side channels,
|
|
654
|
+
* traffic analysis, or key management.
|
|
655
|
+
*/
|
|
656
|
+
|
|
657
|
+
const AES_LABEL = 'zeropoint/quantum-cipher/aes-gcm/v1'
|
|
658
|
+
const AES_ALGORITHM = 'aes-256-gcm'
|
|
659
|
+
/** 96-bit IV — the size GCM is specified for. */
|
|
660
|
+
const IV_BYTES = 12
|
|
661
|
+
|
|
662
|
+
function aesKey(key: QuantumKey): Buffer {
|
|
663
|
+
return createHmac('sha256', Buffer.from(key.contentDigest, 'hex')).update(AES_LABEL).digest()
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
export function encryptQuantum(
|
|
667
|
+
plaintext: string,
|
|
668
|
+
key: QuantumKey,
|
|
669
|
+
ivHex?: string,
|
|
670
|
+
): EncryptedPayload {
|
|
671
|
+
const iv = ivHex === undefined ? randomBytes(IV_BYTES) : Buffer.from(ivHex, 'hex')
|
|
672
|
+
if (iv.length !== IV_BYTES) {
|
|
673
|
+
throw new Error(`encryptQuantum: iv must be ${IV_BYTES} bytes (96-bit GCM nonce)`)
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
const cipher = createCipheriv(AES_ALGORITHM, aesKey(key), iv)
|
|
677
|
+
// Bind the key identity into the AAD, so a payload cannot be re-labelled
|
|
678
|
+
// with another key's uuid and still authenticate.
|
|
679
|
+
cipher.setAAD(Buffer.from(key.contentUuid, 'utf8'))
|
|
680
|
+
const ciphertext = Buffer.concat([
|
|
681
|
+
cipher.update(plaintext, 'utf8'),
|
|
682
|
+
cipher.final(),
|
|
683
|
+
]).toString('hex')
|
|
684
|
+
const tag = cipher.getAuthTag().toString('hex')
|
|
685
|
+
|
|
686
|
+
const plaintextUuid = toUuid(`plaintext:${plaintext}`)
|
|
687
|
+
const ciphertextUuid = toUuid(`ciphertext:${ciphertext}`)
|
|
688
|
+
const { merged } = foldPair(plaintextUuid, ciphertextUuid)
|
|
689
|
+
|
|
690
|
+
return {
|
|
691
|
+
ciphertext,
|
|
692
|
+
nonce: iv.toString('hex'),
|
|
693
|
+
tag,
|
|
694
|
+
keyUuid: key.contentUuid,
|
|
695
|
+
stateUuid: merged,
|
|
696
|
+
receipt: merged,
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
* Decrypt and authenticate. GCM verifies the tag inside `final()`, which
|
|
702
|
+
* throws on any mismatch — forged, altered, or re-keyed payloads never yield
|
|
703
|
+
* plaintext.
|
|
704
|
+
*/
|
|
705
|
+
export function decryptQuantum(payload: EncryptedPayload, key: QuantumKey): string {
|
|
706
|
+
if (payload.keyUuid !== key.contentUuid) {
|
|
707
|
+
throw new Error('decryptQuantum: key does not match the payload seal')
|
|
708
|
+
}
|
|
709
|
+
const iv = Buffer.from(payload.nonce, 'hex')
|
|
710
|
+
if (iv.length !== IV_BYTES) throw new Error('decryptQuantum: malformed iv')
|
|
711
|
+
|
|
712
|
+
const decipher = createDecipheriv(AES_ALGORITHM, aesKey(key), iv)
|
|
713
|
+
decipher.setAAD(Buffer.from(key.contentUuid, 'utf8'))
|
|
714
|
+
decipher.setAuthTag(Buffer.from(payload.tag, 'hex'))
|
|
715
|
+
|
|
716
|
+
try {
|
|
717
|
+
return Buffer.concat([
|
|
718
|
+
decipher.update(Buffer.from(payload.ciphertext, 'hex')),
|
|
719
|
+
decipher.final(),
|
|
720
|
+
]).toString('utf8')
|
|
721
|
+
} catch {
|
|
722
|
+
throw new Error('decryptQuantum: authentication failed — ciphertext forged or altered')
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* TIER 5: Compositional Integration
|
|
728
|
+
*
|
|
729
|
+
* Unifies all 6 operations into one gate with 6 facets:
|
|
730
|
+
* 1. key-generation
|
|
731
|
+
* 2. state-preparation
|
|
732
|
+
* 3. gate-application
|
|
733
|
+
* 4. measurement
|
|
734
|
+
* 5. encryption
|
|
735
|
+
* 6. verification
|
|
736
|
+
*
|
|
737
|
+
* Single merkle-fold root seals all 6 facets.
|
|
738
|
+
* Proof: if any facet fails, root changes → tampering detected.
|
|
739
|
+
*/
|
|
740
|
+
|
|
741
|
+
export interface QuantumCipherGate {
|
|
742
|
+
readonly ok: boolean // All facets pass
|
|
743
|
+
readonly facets: Array<{ facet: string; on: boolean; receipt: string }>
|
|
744
|
+
readonly root: string // Merkle root of all receipts
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
export class QuantumFoldCipher {
|
|
748
|
+
private keyMaterial: QuantumKey | null = null
|
|
749
|
+
private preparedState: QuantumStateUUID | null = null
|
|
750
|
+
private gateProof: QuantumGateProof | null = null
|
|
751
|
+
private measurementChain: MeasurementReceipt[] = []
|
|
752
|
+
private encryptedPayload: EncryptedPayload | null = null
|
|
753
|
+
|
|
754
|
+
// Facet verification
|
|
755
|
+
private facets = [
|
|
756
|
+
{ facet: 'key-generation', on: false },
|
|
757
|
+
{ facet: 'state-preparation', on: false },
|
|
758
|
+
{ facet: 'gate-application', on: false },
|
|
759
|
+
{ facet: 'measurement', on: false },
|
|
760
|
+
{ facet: 'encryption', on: false },
|
|
761
|
+
{ facet: 'verification', on: false },
|
|
762
|
+
]
|
|
763
|
+
|
|
764
|
+
generateKey(entropy: string): QuantumKey {
|
|
765
|
+
this.keyMaterial = generateQuantumKey(entropy, DEFAULT_KEY_LENGTH)
|
|
766
|
+
// Refutable: the seal must recompute from the stored fields. This read
|
|
767
|
+
// `= true`, which recorded only that the method had run.
|
|
768
|
+
this.facets[0]!.on = verifyQuantumKey(this.keyMaterial)
|
|
769
|
+
return this.keyMaterial
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
prepareState(basis: 'Z' | 'X' = 'Z', value: 0 | 1 = 0, qubitIdx: number = 0): QuantumStateUUID {
|
|
773
|
+
if (!this.keyMaterial) throw new Error('Key not generated')
|
|
774
|
+
this.preparedState = encodeQuantumState(basis, value, qubitIdx)
|
|
775
|
+
// Refutable: the state id must be the content address of its own fields.
|
|
776
|
+
this.facets[1]!.on =
|
|
777
|
+
this.preparedState.id === encodeQuantumState(basis, value, qubitIdx).id
|
|
778
|
+
return this.preparedState
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
applyGate(gate: string): QuantumGateProof {
|
|
782
|
+
if (!this.preparedState) throw new Error('State not prepared')
|
|
783
|
+
const from = this.preparedState
|
|
784
|
+
this.gateProof = applyQuantumGate(from, gate)
|
|
785
|
+
this.preparedState = this.gateProof.toState // Update state after gate
|
|
786
|
+
// Refutable: the post-gate address and the order receipt must both
|
|
787
|
+
// recompute from the pre-gate state and the gate name.
|
|
788
|
+
const expectedId = toUuid(`gate:${gate}:on:${from.id}`)
|
|
789
|
+
const { forward, reverse } = foldPair(from.id, expectedId)
|
|
790
|
+
this.facets[2]!.on =
|
|
791
|
+
this.gateProof.toState.id === expectedId &&
|
|
792
|
+
this.gateProof.receipt === merge(forward, reverse)
|
|
793
|
+
return this.gateProof
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
measure(): MeasurementReceipt {
|
|
797
|
+
if (!this.preparedState) throw new Error('State not prepared')
|
|
798
|
+
|
|
799
|
+
const prevReceipt = this.measurementChain.length > 0
|
|
800
|
+
? this.measurementChain[this.measurementChain.length - 1]!
|
|
801
|
+
: GENESIS_PREV
|
|
802
|
+
|
|
803
|
+
const receipt = recordMeasurement(
|
|
804
|
+
prevReceipt,
|
|
805
|
+
this.preparedState.value,
|
|
806
|
+
this.preparedState.basis,
|
|
807
|
+
this.preparedState.registerIdx,
|
|
808
|
+
)
|
|
809
|
+
|
|
810
|
+
this.measurementChain.push(receipt)
|
|
811
|
+
this.facets[3]!.on = verifyMeasurementReceipt(receipt)
|
|
812
|
+
return receipt
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
encrypt(plaintext: string): EncryptedPayload {
|
|
816
|
+
if (!this.keyMaterial) throw new Error('Key not generated')
|
|
817
|
+
|
|
818
|
+
this.encryptedPayload = encryptQuantum(plaintext, this.keyMaterial)
|
|
819
|
+
// Refutable: the payload must be bound to THIS key, and the ciphertext
|
|
820
|
+
// must be a well-formed vortex encoding (re-encoding its decoding is a
|
|
821
|
+
// fixed point). Neither holds by virtue of encrypt() having been called.
|
|
822
|
+
// Refutable: the payload must be bound to THIS key and must authenticate.
|
|
823
|
+
// A round-trip probe on the ciphertext alone would pass for any bytes.
|
|
824
|
+
let authenticates = false
|
|
825
|
+
try {
|
|
826
|
+
decryptQuantum(this.encryptedPayload, this.keyMaterial)
|
|
827
|
+
authenticates = true
|
|
828
|
+
} catch {
|
|
829
|
+
authenticates = false
|
|
830
|
+
}
|
|
831
|
+
this.facets[4]!.on =
|
|
832
|
+
this.encryptedPayload.keyUuid === this.keyMaterial.contentUuid && authenticates
|
|
833
|
+
return this.encryptedPayload
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
decrypt(): string {
|
|
837
|
+
if (!this.encryptedPayload) throw new Error('Nothing encrypted')
|
|
838
|
+
if (!this.keyMaterial) throw new Error('Key not generated')
|
|
839
|
+
return decryptQuantum(this.encryptedPayload, this.keyMaterial)
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
/** The state as it stands after any gates — needed to tomograph it. */
|
|
843
|
+
get state(): QuantumStateUUID | null {
|
|
844
|
+
return this.preparedState
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
/**
|
|
848
|
+
* Seal every facet under one merkle root.
|
|
849
|
+
*
|
|
850
|
+
* `extraFacets` lets a higher layer compose its own facets into the same
|
|
851
|
+
* root — Phase 2 adds `state-tomography` this way. The dependency points
|
|
852
|
+
* one direction only (tomography imports the cipher, never the reverse),
|
|
853
|
+
* so composing here cannot introduce an import cycle.
|
|
854
|
+
*/
|
|
855
|
+
computesGate(
|
|
856
|
+
extraFacets: ReadonlyArray<{ facet: string; on: boolean }> = [],
|
|
857
|
+
): QuantumCipherGate {
|
|
858
|
+
// The verification facet attests every OTHER facet. Sealing all of them
|
|
859
|
+
// while verification is still false, then reading its own seal back,
|
|
860
|
+
// could never report ok — a self-referential deadlock. Decide it first,
|
|
861
|
+
// over the operational facets AND anything composed in.
|
|
862
|
+
const operational = [...this.facets.slice(0, 5), ...extraFacets]
|
|
863
|
+
this.facets[5]!.on = operational.every((f) => f.on)
|
|
864
|
+
|
|
865
|
+
const sealed = sealFacets('quantum-cipher', [...this.facets, ...extraFacets])
|
|
866
|
+
|
|
867
|
+
return {
|
|
868
|
+
ok: sealed.ok,
|
|
869
|
+
facets: sealed.facets.map((f) => ({ facet: f.facet, on: f.on, receipt: f.receipt })),
|
|
870
|
+
root: sealed.root,
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
// Utility: verify all dimensions are present
|
|
875
|
+
verifyAllDimensions(): {
|
|
876
|
+
dimension0: boolean // Fold operation: key UUID
|
|
877
|
+
dimension3: boolean // Trinity: key bytes in {3,6,9}
|
|
878
|
+
dimension6: boolean // Symmetry: encryption reversible
|
|
879
|
+
dimension9: boolean // Completion: quantum proof
|
|
880
|
+
dimensionsRodin: boolean // 1,2,4,8,7,5: closure
|
|
881
|
+
dimension11: boolean // Compactified: gate ok
|
|
882
|
+
} {
|
|
883
|
+
const d0 = !!this.keyMaterial // Fold operation exists
|
|
884
|
+
const d3 = !!this.keyMaterial && this.keyMaterial.material.every(b => [3, 6, 9].includes(b)) // Trinity check
|
|
885
|
+
// Dimension 6 is the encode ⇌ decode symmetry. This compared decoded text
|
|
886
|
+
// against the string '1'/'0', which no plaintext equals — the dimension
|
|
887
|
+
// could never be present. Prove the bijection on every digit instead, so
|
|
888
|
+
// the check needs no retained plaintext to hold onto.
|
|
889
|
+
const probe = '123456789'
|
|
890
|
+
const d6 = !!this.encryptedPayload && vortexDecode(vortexEncode(probe)) === probe
|
|
891
|
+
const d9 = this.gateProof?.orderMatters ?? false // Quantum threat: order matters
|
|
892
|
+
// The flow ring is the closure of doubling mod 9 over the 6-orbit. This
|
|
893
|
+
// read `registerIdx >= 0`, which every register satisfies — a tautology
|
|
894
|
+
// reported as a verified dimension. Verify the closure itself: doubling
|
|
895
|
+
// each orbit element mod 9 must land back inside the orbit, and must
|
|
896
|
+
// reach every element of it (one 6-cycle, not a shorter sub-cycle).
|
|
897
|
+
const doubled = VORTEX_ORBIT.map((d) => (d * 2) % 9 || 9)
|
|
898
|
+
const dimensionsRodin =
|
|
899
|
+
!!this.preparedState &&
|
|
900
|
+
doubled.every((d) => VORTEX_ORBIT.includes(d as never)) &&
|
|
901
|
+
new Set(doubled).size === VORTEX_ORBIT.length
|
|
902
|
+
const d11 = this.computesGate().ok // Compactified: unified gate
|
|
903
|
+
|
|
904
|
+
return {
|
|
905
|
+
dimension0: d0,
|
|
906
|
+
dimension3: d3,
|
|
907
|
+
dimension6: d6,
|
|
908
|
+
dimension9: d9,
|
|
909
|
+
dimensionsRodin,
|
|
910
|
+
dimension11: d11,
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
/**
|
|
916
|
+
* Export Tier-based API
|
|
917
|
+
*/
|
|
918
|
+
|
|
919
|
+
export const QuantumEncryption = {
|
|
920
|
+
// Tier 1: Deterministic Identity
|
|
921
|
+
encodeQuantumState,
|
|
922
|
+
quantumStateFromUuid,
|
|
923
|
+
|
|
924
|
+
// Tier 2: Structural Proof
|
|
925
|
+
applyQuantumGate,
|
|
926
|
+
|
|
927
|
+
// Tier 3: Cryptographic Seal
|
|
928
|
+
generateQuantumKey,
|
|
929
|
+
expandQuantumKeyViaHkdf,
|
|
930
|
+
expandQuantumKeyViaRodin, // Deprecated
|
|
931
|
+
|
|
932
|
+
// Tier 4: Chain Verification
|
|
933
|
+
recordMeasurement,
|
|
934
|
+
verifyMeasurementReceipt,
|
|
935
|
+
|
|
936
|
+
// Tier 1+2: Encryption
|
|
937
|
+
vortexEncode,
|
|
938
|
+
vortexDecode,
|
|
939
|
+
encryptQuantum,
|
|
940
|
+
decryptQuantum,
|
|
941
|
+
|
|
942
|
+
// Tier 5: Compositional
|
|
943
|
+
QuantumFoldCipher,
|
|
944
|
+
|
|
945
|
+
// Constants
|
|
946
|
+
VORTEX_ORBIT,
|
|
947
|
+
TRINITY,
|
|
948
|
+
IMPERIAL_VORTEX,
|
|
949
|
+
}
|