@holoscript/core 8.0.8 → 8.0.9
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/bin/holoscript.cjs +5 -1
- package/dist/GLTFPipeline-L76YTXKA.js +15 -0
- package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
- package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
- package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
- package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
- package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
- package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
- package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
- package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
- package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
- package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
- package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
- package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
- package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
- package/dist/agents/index.cjs +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/audit/AuditLogger.d.ts +106 -0
- package/dist/audit/AuditQueryBuilder.d.ts +79 -0
- package/dist/audit/ComplianceReporter.d.ts +90 -0
- package/dist/audit/index.d.ts +13 -0
- package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
- package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
- package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
- package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
- package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
- package/dist/chunk-2MQKNDNH.js +51 -0
- package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
- package/dist/chunk-2ZOTBO25.cjs +202 -0
- package/dist/chunk-356N4NPM.cjs +152 -0
- package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
- package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
- package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
- package/dist/chunk-3F7ZZWIN.js +1651 -0
- package/dist/chunk-3ILD7TKP.cjs +187 -0
- package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
- package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
- package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
- package/dist/chunk-4Q7RKQQI.cjs +14195 -0
- package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
- package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
- package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
- package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
- package/dist/chunk-63AUAIL6.js +48 -0
- package/dist/chunk-655FATJU.js +110 -0
- package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
- package/dist/chunk-6NTAZN5Z.cjs +502 -0
- package/dist/chunk-6TRX6AR2.js +9376 -0
- package/dist/chunk-6ZCCLKS2.cjs +51 -0
- package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
- package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
- package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
- package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
- package/dist/chunk-7VBKRGIZ.cjs +847 -0
- package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
- package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
- package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
- package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
- package/dist/chunk-BCP4E7MD.cjs +997 -0
- package/dist/chunk-BG7RPYJP.js +91 -0
- package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
- package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
- package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
- package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
- package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
- package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
- package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
- package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
- package/dist/chunk-D3HSRXYB.js +115 -0
- package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
- package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
- package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
- package/dist/chunk-DQRJ5RJG.js +432 -0
- package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
- package/dist/chunk-ECUYJOJ2.cjs +199 -0
- package/dist/chunk-EEMTCAK7.js +182 -0
- package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
- package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
- package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
- package/dist/chunk-ESBXUYOC.cjs +836 -0
- package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
- package/dist/chunk-ET3AN4W3.js +824 -0
- package/dist/chunk-EXKSFGSX.cjs +14 -14
- package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
- package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
- package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
- package/dist/chunk-FGGJQRLZ.js +14 -14
- package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
- package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
- package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
- package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
- package/dist/chunk-GGR7QUKK.cjs +4724 -0
- package/dist/chunk-GIBF4BHH.js +14098 -0
- package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
- package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
- package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
- package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
- package/dist/chunk-GTIPOEHN.js +196 -0
- package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
- package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
- package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
- package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
- package/dist/chunk-HIDEIEFG.js +48 -0
- package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
- package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
- package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
- package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
- package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
- package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
- package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
- package/dist/chunk-J2DAS2PL.js +148 -0
- package/dist/chunk-JBQXZIWB.js +148 -0
- package/dist/chunk-JBYBMBMW.js +261 -0
- package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
- package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
- package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
- package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
- package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
- package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
- package/dist/chunk-KPGC7SK2.js +192 -0
- package/dist/chunk-KROXXBK5.cjs +53 -0
- package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
- package/dist/chunk-LDYZWNJW.cjs +1654 -0
- package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
- package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
- package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
- package/dist/chunk-MUWH4QK5.cjs +94 -0
- package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
- package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
- package/dist/chunk-NFFHLX37.cjs +132 -0
- package/dist/chunk-NJSYWX7H.js +190 -0
- package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
- package/dist/chunk-NTQRFOPP.cjs +56 -0
- package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
- package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
- package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
- package/dist/chunk-OMNHTCS4.cjs +264 -0
- package/dist/chunk-OQXB6NNC.cjs +117 -0
- package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
- package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
- package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
- package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
- package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
- package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
- package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
- package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
- package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
- package/dist/chunk-QBY7LRN2.js +281 -0
- package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
- package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
- package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
- package/dist/chunk-QJNCDVYM.cjs +137 -0
- package/dist/chunk-QM7FJB5W.js +4717 -0
- package/dist/chunk-QQFB4RT2.cjs +448 -0
- package/dist/chunk-QSYBHQAD.cjs +196 -0
- package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
- package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
- package/dist/chunk-RAJMAX6D.js +131 -0
- package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
- package/dist/chunk-RKGUZBOC.js +79 -0
- package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
- package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
- package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
- package/dist/chunk-SE7ANBGN.js +128 -0
- package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
- package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
- package/dist/chunk-SR73L5ZP.cjs +84 -0
- package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
- package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
- package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
- package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
- package/dist/chunk-UCVZXQ63.js +724 -0
- package/dist/chunk-UGQ3QNV6.js +992 -0
- package/dist/chunk-UNMVGZVW.js +142 -0
- package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
- package/dist/chunk-UXBYA7DV.cjs +155 -0
- package/dist/chunk-V6GXFSK7.cjs +443 -0
- package/dist/chunk-VHORVGCG.cjs +761 -0
- package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
- package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
- package/dist/chunk-VVAAZITA.cjs +287 -0
- package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
- package/dist/chunk-W4GABFCR.js +37 -0
- package/dist/chunk-WKEK4NCA.js +490 -0
- package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
- package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
- package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
- package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
- package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
- package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
- package/dist/chunk-YAO4HPJL.cjs +120 -0
- package/dist/chunk-YKY2JBER.cjs +9443 -0
- package/dist/chunk-YP5CHEYU.cjs +154 -0
- package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
- package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
- package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
- package/dist/chunk-ZHPMP447.cjs +43 -0
- package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
- package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
- package/dist/chunk-ZVFHPMC5.js +824 -0
- package/dist/chunk-ZVQMKUGJ.js +443 -0
- package/dist/cli/holoscript-runner.cjs +86 -48
- package/dist/cli/holoscript-runner.js +54 -16
- package/dist/codebase/index.cjs +1 -1
- package/dist/codebase/index.js +1 -1
- package/dist/compiler/agent-inference.cjs +11 -11
- package/dist/compiler/agent-inference.js +9 -6
- package/dist/compiler/android-xr.cjs +13 -12
- package/dist/compiler/android-xr.js +11 -10
- package/dist/compiler/android.cjs +12 -12
- package/dist/compiler/android.js +10 -10
- package/dist/compiler/business-quest.cjs +10 -10
- package/dist/compiler/business-quest.js +2 -2
- package/dist/compiler/coco.cjs +1 -1
- package/dist/compiler/coco.js +1 -1
- package/dist/compiler/context.cjs +9 -9
- package/dist/compiler/context.js +6 -6
- package/dist/compiler/daimon-seed.cjs +36 -0
- package/dist/compiler/daimon-seed.js +12 -0
- package/dist/compiler/domain-block-utils.cjs +205 -156
- package/dist/compiler/domain-block-utils.js +8 -7
- package/dist/compiler/dtdl.cjs +10 -10
- package/dist/compiler/dtdl.js +7 -7
- package/dist/compiler/gltf-pipeline.cjs +9 -9
- package/dist/compiler/gltf-pipeline.js +2 -2
- package/dist/compiler/godot.cjs +10 -9
- package/dist/compiler/godot.js +9 -8
- package/dist/compiler/incremental.cjs +11 -11
- package/dist/compiler/incremental.js +6 -6
- package/dist/compiler/index.cjs +2585 -3273
- package/dist/compiler/index.d.ts +149 -35
- package/dist/compiler/index.js +2197 -3102
- package/dist/compiler/ios.cjs +11 -11
- package/dist/compiler/ios.js +9 -9
- package/dist/compiler/llm-provider-capabilities.cjs +9 -9
- package/dist/compiler/llm-provider-capabilities.js +6 -6
- package/dist/compiler/nodetoy.cjs +1 -1
- package/dist/compiler/nodetoy.js +1 -1
- package/dist/compiler/openxr.cjs +11 -10
- package/dist/compiler/openxr.js +10 -9
- package/dist/compiler/remotion.cjs +1 -1
- package/dist/compiler/remotion.js +1 -1
- package/dist/compiler/reproducibility.cjs +1 -1
- package/dist/compiler/reproducibility.js +1 -1
- package/dist/compiler/sdf.cjs +11 -10
- package/dist/compiler/sdf.js +9 -8
- package/dist/compiler/semantic-scene.cjs +7 -7
- package/dist/compiler/semantic-scene.js +2 -2
- package/dist/compiler/state.cjs +9 -9
- package/dist/compiler/state.js +7 -7
- package/dist/compiler/trait-composition.cjs +11 -11
- package/dist/compiler/trait-composition.js +7 -7
- package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
- package/dist/compiler/traits/Semiring.d.ts +26 -0
- package/dist/compiler/unity.cjs +11 -10
- package/dist/compiler/unity.js +10 -9
- package/dist/compiler/unreal.cjs +12 -11
- package/dist/compiler/unreal.js +10 -9
- package/dist/compiler/urdf.cjs +18 -17
- package/dist/compiler/urdf.js +9 -8
- package/dist/compiler/usd-physics.cjs +11 -10
- package/dist/compiler/usd-physics.js +8 -7
- package/dist/compiler/visionos.cjs +11 -10
- package/dist/compiler/visionos.js +10 -9
- package/dist/compiler/vrchat.cjs +11 -10
- package/dist/compiler/vrchat.js +9 -8
- package/dist/compiler/wasm.cjs +14 -13
- package/dist/compiler/wasm.js +9 -8
- package/dist/compiler/webgpu.cjs +10 -9
- package/dist/compiler/webgpu.js +9 -8
- package/dist/constants.cjs +398 -0
- package/dist/constants.js +9 -0
- package/dist/coordinators/index.cjs +4 -1
- package/dist/coordinators/index.js +4 -1
- package/dist/debugger.cjs +11 -9
- package/dist/debugger.js +9 -7
- package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
- package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
- package/dist/entries/interop.cjs +23 -23
- package/dist/entries/interop.js +3 -3
- package/dist/entries/scripting.cjs +12 -11
- package/dist/entries/scripting.js +8 -7
- package/dist/evolution/index.cjs +66 -0
- package/dist/evolution/index.d.ts +162 -0
- package/dist/evolution/index.js +17 -0
- package/dist/hololand/index.cjs +41 -37
- package/dist/hololand/index.js +3 -3
- package/dist/index.cjs +12394 -3224
- package/dist/index.d.ts +260 -18
- package/dist/index.js +10755 -2182
- package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
- package/dist/keyword-registry/index.cjs +29 -0
- package/dist/keyword-registry/index.d.ts +1 -0
- package/dist/keyword-registry/index.js +4 -0
- package/dist/math/tropical-spmv.cjs +11 -11
- package/dist/math/tropical-spmv.d.ts +1 -0
- package/dist/math/tropical-spmv.js +2 -2
- package/dist/math/tropicalSpmv.d.ts +43 -0
- package/dist/math/vec3.cjs +1 -1
- package/dist/math/vec3.js +1 -1
- package/dist/matter/StagedMatter.d.ts +82 -0
- package/dist/matter/index.cjs +17 -0
- package/dist/matter/index.d.ts +1 -0
- package/dist/matter/index.js +4 -0
- package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
- package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
- package/dist/paper-0c-spike/index.cjs +1 -1
- package/dist/paper-0c-spike/index.js +1 -1
- package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
- package/dist/parameter-envelope/index.cjs +17 -0
- package/dist/parameter-envelope/index.d.ts +2 -0
- package/dist/parameter-envelope/index.js +4 -0
- package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
- package/dist/parser/PipelineParser.d.ts +162 -0
- package/dist/parser.cjs +36 -20
- package/dist/parser.js +13 -9
- package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
- package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
- package/dist/plugin-manifest/index.cjs +25 -0
- package/dist/plugin-manifest/index.d.ts +2 -0
- package/dist/plugin-manifest/index.js +4 -0
- package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
- package/dist/plugin-solver-contract/index.cjs +41 -0
- package/dist/plugin-solver-contract/index.d.ts +1 -0
- package/dist/plugin-solver-contract/index.js +4 -0
- package/dist/policy/ContentPolicyGate.d.ts +51 -0
- package/dist/policy/PolicyPack.d.ts +120 -0
- package/dist/policy/blocklist.d.ts +32 -0
- package/dist/policy/defaults.d.ts +44 -0
- package/dist/policy/index.cjs +106 -0
- package/dist/policy/index.d.ts +17 -0
- package/dist/policy/index.js +5 -0
- package/dist/policy/jsonLogic.d.ts +31 -0
- package/dist/policy/types.d.ts +174 -0
- package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
- package/dist/proof-composition/index.cjs +25 -0
- package/dist/proof-composition/index.d.ts +1 -0
- package/dist/proof-composition/index.js +4 -0
- package/dist/receipts/hash-policy.d.ts +85 -0
- package/dist/reconstruction/index.cjs +75 -47
- package/dist/reconstruction/index.js +5 -5
- package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
- package/dist/runtime.cjs +81 -79
- package/dist/runtime.js +9 -7
- package/dist/scene-presets-EDKYZ5GW.js +4 -0
- package/dist/scene-presets-NCW2CFRS.cjs +17 -0
- package/dist/self-improvement/index.cjs +1 -1
- package/dist/self-improvement/index.js +1 -1
- package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
- package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
- package/dist/storage/index.cjs +10 -10
- package/dist/storage/index.js +3 -3
- package/dist/testing.cjs +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/index.cjs +3631 -0
- package/dist/tools/index.js +3581 -0
- package/dist/traitDocs/traitDocs.cjs +9 -9
- package/dist/traitDocs/traitDocs.d.ts +1 -0
- package/dist/traitDocs/traitDocs.js +3 -3
- package/dist/traits/ControlLoopTrait.d.ts +154 -0
- package/dist/traits/KinematicChainTrait.d.ts +116 -0
- package/dist/traits/SensorSamplingTrait.d.ts +154 -0
- package/dist/traits/TraitTypes.d.ts +270 -0
- package/dist/traits/TransactionTrait.d.ts +121 -0
- package/dist/traits/botanical-lotus.cjs +54 -50
- package/dist/traits/botanical-lotus.js +2 -5
- package/dist/traits/control-loop.cjs +21 -0
- package/dist/traits/control-loop.d.ts +1 -0
- package/dist/traits/control-loop.js +4 -0
- package/dist/traits/engines/cloth-verlet.d.ts +65 -0
- package/dist/traits/engines/index.cjs +19 -19
- package/dist/traits/engines/index.d.ts +15 -275
- package/dist/traits/engines/index.js +3 -3
- package/dist/traits/engines/motion-data-schema.d.ts +119 -0
- package/dist/traits/engines/motion-matching.d.ts +102 -0
- package/dist/traits/engines/noise.d.ts +25 -0
- package/dist/traits/engines/onnx-adapter.d.ts +173 -0
- package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
- package/dist/traits/engines/pfnn-network.d.ts +92 -0
- package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
- package/dist/traits/engines/tensor-ops.d.ts +15 -0
- package/dist/traits/index.cjs +2789 -1259
- package/dist/traits/index.d.ts +35 -0
- package/dist/traits/index.js +1692 -411
- package/dist/traits/kinematic-chain.cjs +25 -0
- package/dist/traits/kinematic-chain.d.ts +1 -0
- package/dist/traits/kinematic-chain.js +4 -0
- package/dist/traits/sensor-sampling.cjs +33 -0
- package/dist/traits/sensor-sampling.d.ts +1 -0
- package/dist/traits/sensor-sampling.js +4 -0
- package/dist/traits/simulation-solver-factory.cjs +1 -1
- package/dist/traits/simulation-solver-factory.js +1 -1
- package/dist/traits/transaction.cjs +29 -0
- package/dist/traits/transaction.d.ts +1 -0
- package/dist/traits/transaction.js +4 -0
- package/dist/traits/webcam-gaze.cjs +1 -1
- package/dist/traits/webcam-gaze.js +1 -1
- package/dist/type-checker.cjs +7 -6
- package/dist/type-checker.js +5 -4
- package/dist/types/AdvancedTypeSystem.d.ts +489 -0
- package/dist/types/HoloScriptPlus.d.ts +810 -0
- package/dist/types/base.d.ts +248 -0
- package/dist/types.d.ts +799 -0
- package/dist/world/index.cjs +3 -4
- package/dist/world/index.js +3 -4
- package/dist/world-model/index.cjs +1 -1
- package/dist/world-model/index.js +1 -1
- package/dist/wot/index.cjs +1 -1
- package/dist/wot/index.js +1 -1
- package/package.json +113 -46
- package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
- package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
- package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
- package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
- package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
- package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
- package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
- package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
- package/dist/chunk-22Q5A6RV.js +0 -979
- package/dist/chunk-4C57PR42.js +0 -468
- package/dist/chunk-4W5G5QVL.cjs +0 -847
- package/dist/chunk-5ET6L4NS.js +0 -487
- package/dist/chunk-C4GSLCHE.cjs +0 -7153
- package/dist/chunk-F2G6CWFT.js +0 -7089
- package/dist/chunk-G6PNEASF.cjs +0 -814
- package/dist/chunk-GTA4Q3A3.js +0 -1491
- package/dist/chunk-HCCQLAA4.cjs +0 -74
- package/dist/chunk-HFSVMKM3.cjs +0 -72
- package/dist/chunk-KAIVDEIG.cjs +0 -4539
- package/dist/chunk-KQU64CIX.cjs +0 -1508
- package/dist/chunk-MSYSQ2AJ.js +0 -4533
- package/dist/chunk-NHJLP37F.js +0 -70
- package/dist/chunk-NHYRRAGI.cjs +0 -490
- package/dist/chunk-OIQYIIO3.cjs +0 -473
- package/dist/chunk-OL46QLBJ.js +0 -61
- package/dist/chunk-SKZPC5AG.cjs +0 -984
- package/dist/chunk-SLHLXUMO.js +0 -445
- package/dist/chunk-UOIGFQXC.cjs +0 -9750
- package/dist/chunk-UOL6Y5TD.cjs +0 -759
- package/dist/chunk-UVFI7XIR.cjs +0 -452
- package/dist/chunk-VEPGBETF.js +0 -844
- package/dist/chunk-XQ5MWMP2.js +0 -756
- package/dist/chunk-XT6JY5W5.js +0 -9684
- package/dist/chunk-YRRAUB35.js +0 -811
- package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
- package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
- package/dist/compiler/ar.cjs +0 -23
- package/dist/compiler/ar.js +0 -11
- package/dist/compiler/babylon.cjs +0 -21
- package/dist/compiler/babylon.js +0 -15
- package/dist/compiler/multi-layer.cjs +0 -24
- package/dist/compiler/multi-layer.js +0 -15
- package/dist/compiler/playcanvas.cjs +0 -19
- package/dist/compiler/playcanvas.js +0 -13
- package/dist/compiler/r3f.cjs +0 -39
- package/dist/compiler/r3f.d.ts +0 -22
- package/dist/compiler/r3f.js +0 -17
- package/dist/compiler/vrr.cjs +0 -24
- package/dist/compiler/vrr.js +0 -12
- package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
- package/dist/playwright-3AT3AKTV.cjs +0 -98673
- package/dist/playwright-VZPDVUEQ.js +0 -98660
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __esm, __export, __toCommonJS } from './chunk-
|
|
1
|
+
import { __esm, __export, __toCommonJS } from './chunk-W4GABFCR.js';
|
|
2
2
|
|
|
3
3
|
// ../plugins/qm-bridge/src/QmSolver.ts
|
|
4
4
|
function requireCapability(backend, capability) {
|
|
@@ -77,6 +77,19 @@ var init_QmSolver = __esm({
|
|
|
77
77
|
qmMm: false,
|
|
78
78
|
// Stage 3
|
|
79
79
|
maxAtoms: 200
|
|
80
|
+
},
|
|
81
|
+
quantinuum: {
|
|
82
|
+
molecular: true,
|
|
83
|
+
// logical-qubit VQE for small molecules
|
|
84
|
+
periodic: false,
|
|
85
|
+
semiEmpirical: false,
|
|
86
|
+
nmrGiao: false,
|
|
87
|
+
tdDft: false,
|
|
88
|
+
postHf: false,
|
|
89
|
+
transitionStates: false,
|
|
90
|
+
qmMm: false,
|
|
91
|
+
maxAtoms: 8
|
|
92
|
+
// logical qubits are scarce; small molecules on encoded qubits
|
|
80
93
|
}
|
|
81
94
|
};
|
|
82
95
|
}
|
|
@@ -460,6 +473,336 @@ var init_ibm_quantum = __esm({
|
|
|
460
473
|
}
|
|
461
474
|
});
|
|
462
475
|
|
|
476
|
+
// ../plugins/qm-bridge/src/backends/quantinuum.ts
|
|
477
|
+
var quantinuum_exports = {};
|
|
478
|
+
__export(quantinuum_exports, {
|
|
479
|
+
QuantinuumBackend: () => QuantinuumBackend
|
|
480
|
+
});
|
|
481
|
+
var QuantinuumBackend;
|
|
482
|
+
var init_quantinuum = __esm({
|
|
483
|
+
"../plugins/qm-bridge/src/backends/quantinuum.ts"() {
|
|
484
|
+
init_QmSolver();
|
|
485
|
+
QuantinuumBackend = class {
|
|
486
|
+
constructor(config) {
|
|
487
|
+
this.mode = "steady-state";
|
|
488
|
+
this.fieldNames = ["total_energy"];
|
|
489
|
+
this.scale = "quantum";
|
|
490
|
+
this.backend = "quantinuum";
|
|
491
|
+
this.lastEnergy = null;
|
|
492
|
+
this.lastResult = null;
|
|
493
|
+
this.config = config;
|
|
494
|
+
this.qmConfig = config;
|
|
495
|
+
}
|
|
496
|
+
// ── SimSolver lifecycle ──────────────────────────────────────────────────
|
|
497
|
+
step(_dt) {
|
|
498
|
+
}
|
|
499
|
+
solve() {
|
|
500
|
+
}
|
|
501
|
+
getField(name) {
|
|
502
|
+
if (name === "total_energy") {
|
|
503
|
+
if (this.lastEnergy === null) {
|
|
504
|
+
throw new Error(
|
|
505
|
+
"[quantinuum] No energy computed yet. Call computeEnergy or runLogicalVQE first."
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
return new Float64Array([this.lastEnergy]);
|
|
509
|
+
}
|
|
510
|
+
throw new Error(`[quantinuum] Unknown field '${name}'. Available fields: total_energy`);
|
|
511
|
+
}
|
|
512
|
+
getStats() {
|
|
513
|
+
return {
|
|
514
|
+
backend: this.backend,
|
|
515
|
+
executionMode: this.config.executionMode ?? "sim",
|
|
516
|
+
codeFamily: this.config.codeFamily ?? "steane",
|
|
517
|
+
codeDistance: this.config.codeDistance ?? 3,
|
|
518
|
+
lastEnergy: this.lastEnergy,
|
|
519
|
+
lastConverged: this.lastResult?.converged ?? null,
|
|
520
|
+
lastLogicalErrorRate: this.lastResult?.logicalErrorRate ?? null,
|
|
521
|
+
lastAcceptanceFraction: this.lastResult?.postSelection.acceptanceFraction ?? null
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
dispose() {
|
|
525
|
+
this.lastEnergy = null;
|
|
526
|
+
this.lastResult = null;
|
|
527
|
+
}
|
|
528
|
+
reset() {
|
|
529
|
+
this.dispose();
|
|
530
|
+
}
|
|
531
|
+
// ── Implemented capabilities ────────────────────────────────────────────
|
|
532
|
+
/**
|
|
533
|
+
* Compute ground-state energy via logical-qubit VQE.
|
|
534
|
+
*
|
|
535
|
+
* Drop-in compatible with the QmEnergyResult shape so a logical run can stand
|
|
536
|
+
* in for Psi4 in energy-only workflows. Nuclear repulsion is estimated
|
|
537
|
+
* classically from the geometry (same approach as the IBM backend).
|
|
538
|
+
*/
|
|
539
|
+
async computeEnergy(molecule) {
|
|
540
|
+
requireCapability("quantinuum", "molecular");
|
|
541
|
+
const vqe = await this.runLogicalVQE(molecule);
|
|
542
|
+
const nucRepulsion = this._estimateNuclearRepulsion(molecule);
|
|
543
|
+
const result = {
|
|
544
|
+
totalEnergy: vqe.groundStateEnergy,
|
|
545
|
+
electronicEnergy: vqe.groundStateEnergy - nucRepulsion,
|
|
546
|
+
nuclearRepulsionEnergy: nucRepulsion,
|
|
547
|
+
scfIterations: vqe.optimizerIterations,
|
|
548
|
+
converged: vqe.converged,
|
|
549
|
+
solverConfig: this.qmConfig,
|
|
550
|
+
wallTimeSeconds: vqe.wallTimeSeconds
|
|
551
|
+
};
|
|
552
|
+
this.lastEnergy = result.totalEnergy;
|
|
553
|
+
return result;
|
|
554
|
+
}
|
|
555
|
+
/** Geometry optimisation is not supported — use Psi4, then validate energy here. */
|
|
556
|
+
async optimizeGeometry(_molecule) {
|
|
557
|
+
throw new Error(
|
|
558
|
+
"[quantinuum] Quantinuum backend does not support geometry optimization. Use Psi4 for optimization, then quantinuum for logical-qubit energy validation."
|
|
559
|
+
);
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Run VQE on logical (error-corrected) qubits and return the full QEC bookkeeping.
|
|
563
|
+
*
|
|
564
|
+
* Builds a JSON payload describing the molecule + encoding, invokes
|
|
565
|
+
* quantinuum_execute.py, and maps the response onto QuantinuumQECResult — which
|
|
566
|
+
* carries logical-vs-physical error AND the post-selection acceptance fraction.
|
|
567
|
+
*/
|
|
568
|
+
async runLogicalVQE(molecule) {
|
|
569
|
+
requireCapability("quantinuum", "molecular");
|
|
570
|
+
const startTime = performance.now();
|
|
571
|
+
const executionMode = this.config.executionMode ?? "sim";
|
|
572
|
+
const input = {
|
|
573
|
+
task: "logical_vqe",
|
|
574
|
+
molecule: {
|
|
575
|
+
atoms: molecule.atoms.map((a) => ({ symbol: a.symbol, x: a.x, y: a.y, z: a.z })),
|
|
576
|
+
charge: molecule.charge ?? 0,
|
|
577
|
+
multiplicity: molecule.multiplicity ?? 1,
|
|
578
|
+
units: molecule.units ?? "angstrom"
|
|
579
|
+
},
|
|
580
|
+
method: this.qmConfig.basis ?? "sto-3g",
|
|
581
|
+
ansatz_layers: this.config.ansatzLayers ?? 1,
|
|
582
|
+
max_iterations: this.config.maxOptimizerIterations ?? 100,
|
|
583
|
+
execution_mode: executionMode,
|
|
584
|
+
device: this.config.device ?? null,
|
|
585
|
+
code_family: this.config.codeFamily ?? "steane",
|
|
586
|
+
code_distance: this.config.codeDistance ?? 3,
|
|
587
|
+
rounds: this.config.rounds ?? 1,
|
|
588
|
+
physical_error_rate: this.config.physicalErrorRate ?? 1e-3
|
|
589
|
+
};
|
|
590
|
+
const raw = await this._runPythonBridge(input);
|
|
591
|
+
if (raw.error) {
|
|
592
|
+
throw new Error(`[quantinuum] logical VQE failed: ${raw.error}`);
|
|
593
|
+
}
|
|
594
|
+
const wallTime = raw.wall_time_seconds ?? (performance.now() - startTime) / 1e3;
|
|
595
|
+
const executionBackend = raw.execution_backend === "quantinuum" ? "quantinuum" : "quantinuum-sim";
|
|
596
|
+
const result = {
|
|
597
|
+
groundStateEnergy: raw.ground_state_energy ?? 0,
|
|
598
|
+
converged: raw.converged ?? false,
|
|
599
|
+
optimizerIterations: raw.optimizer_iterations ?? 0,
|
|
600
|
+
finalCost: raw.final_cost ?? 0,
|
|
601
|
+
numQubits: raw.num_qubits ?? raw.physical_qubits ?? 0,
|
|
602
|
+
circuitDepth: raw.circuit_depth ?? 0,
|
|
603
|
+
executionBackend,
|
|
604
|
+
jobId: raw.job_id,
|
|
605
|
+
wallTimeSeconds: wallTime,
|
|
606
|
+
solverConfig: this.qmConfig,
|
|
607
|
+
logicalQubits: raw.logical_qubits ?? 0,
|
|
608
|
+
physicalQubits: raw.physical_qubits ?? 0,
|
|
609
|
+
codeFamily: raw.code_family ?? (this.config.codeFamily ?? "steane"),
|
|
610
|
+
codeDistance: raw.code_distance ?? (this.config.codeDistance ?? 3),
|
|
611
|
+
rounds: raw.rounds ?? (this.config.rounds ?? 1),
|
|
612
|
+
physicalErrorRate: raw.physical_error_rate ?? (this.config.physicalErrorRate ?? 1e-3),
|
|
613
|
+
logicalErrorRate: raw.logical_error_rate ?? 0,
|
|
614
|
+
postSelection: {
|
|
615
|
+
used: raw.post_selection_used ?? false,
|
|
616
|
+
acceptanceFraction: raw.acceptance_fraction ?? 1
|
|
617
|
+
}
|
|
618
|
+
};
|
|
619
|
+
this.lastResult = result;
|
|
620
|
+
this.lastEnergy = result.groundStateEnergy;
|
|
621
|
+
return result;
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* VQERunnerTrait / QmSolver compatibility shim: returns the plain VQEResult slice
|
|
625
|
+
* of the logical run, so the Quantinuum backend is usable anywhere `runVQE` is.
|
|
626
|
+
*/
|
|
627
|
+
async runVQE(molecule, _ansatzLayers = 1) {
|
|
628
|
+
return this.runLogicalVQE(molecule);
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* Map a logical-VQE result onto a `cael-quantum-v1.qec` receipt — the honest,
|
|
632
|
+
* cross-vendor record. A post-selected result keeps `post_selection.used=true`
|
|
633
|
+
* and a sub-1.0 acceptance fraction, so the suppression figure can never be
|
|
634
|
+
* quoted without the discard rate that produced it.
|
|
635
|
+
*/
|
|
636
|
+
async toQecReceipt(result) {
|
|
637
|
+
const isHw = result.executionBackend === "quantinuum";
|
|
638
|
+
const suppression = result.logicalErrorRate > 0 ? result.physicalErrorRate / result.logicalErrorRate : null;
|
|
639
|
+
const base = {
|
|
640
|
+
schema: "cael-quantum-v1.qec",
|
|
641
|
+
kind: "qec_logical_vqe_receipt",
|
|
642
|
+
created_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
643
|
+
tier: isHw ? "hardware" : "simulate",
|
|
644
|
+
claim_boundary: isHw ? "Logical-qubit VQE on real Quantinuum H-series hardware (error-corrected)." : "Local classical surrogate of logical-qubit error suppression; NOT hardware and NOT a full stabiliser simulation. Verifies pipeline + receipt only.",
|
|
645
|
+
code: {
|
|
646
|
+
family: result.codeFamily,
|
|
647
|
+
name: `${result.codeFamily}-d${result.codeDistance}`,
|
|
648
|
+
distance: result.codeDistance,
|
|
649
|
+
logical_qubits: result.logicalQubits,
|
|
650
|
+
physical_qubits: result.physicalQubits
|
|
651
|
+
},
|
|
652
|
+
noise_model: isHw ? "hardware" : "depolarizing-surrogate",
|
|
653
|
+
decoder: result.codeFamily === "none" ? "none" : "lookup-table",
|
|
654
|
+
rounds: result.rounds,
|
|
655
|
+
measurement: {
|
|
656
|
+
physical_error_rate: result.physicalErrorRate,
|
|
657
|
+
logical_error_rate: result.logicalErrorRate,
|
|
658
|
+
suppression_factor_physical_over_logical: suppression,
|
|
659
|
+
ground_state_energy: result.groundStateEnergy,
|
|
660
|
+
converged: result.converged
|
|
661
|
+
},
|
|
662
|
+
post_selection: {
|
|
663
|
+
used: result.postSelection.used,
|
|
664
|
+
acceptance_fraction: result.postSelection.acceptanceFraction,
|
|
665
|
+
note: "A fair logical-vs-physical suppression figure must be scaled by acceptance_fraction; a sub-1.0 fraction means shots were discarded."
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
const { createHash } = await import('crypto');
|
|
669
|
+
const payload_hash = createHash("sha256").update(
|
|
670
|
+
JSON.stringify({
|
|
671
|
+
schema: base.schema,
|
|
672
|
+
code: base.code,
|
|
673
|
+
noise_model: base.noise_model,
|
|
674
|
+
decoder: base.decoder,
|
|
675
|
+
rounds: base.rounds,
|
|
676
|
+
measurement: base.measurement,
|
|
677
|
+
post_selection: base.post_selection
|
|
678
|
+
})
|
|
679
|
+
).digest("hex");
|
|
680
|
+
return { ...base, payload_hash, receipt_id: `qec-${payload_hash.slice(0, 16)}` };
|
|
681
|
+
}
|
|
682
|
+
// ── Unsupported classical QM methods ─────────────────────────────────────
|
|
683
|
+
async computeVibrations() {
|
|
684
|
+
throw new Error(this._unsupportedMsg("computeVibrations"));
|
|
685
|
+
}
|
|
686
|
+
async computeChargeDensity() {
|
|
687
|
+
throw new Error(this._unsupportedMsg("computeChargeDensity"));
|
|
688
|
+
}
|
|
689
|
+
async computeBandStructure() {
|
|
690
|
+
throw new Error(this._unsupportedMsg("computeBandStructure"));
|
|
691
|
+
}
|
|
692
|
+
async computeDipoleMoment() {
|
|
693
|
+
throw new Error(this._unsupportedMsg("computeDipoleMoment"));
|
|
694
|
+
}
|
|
695
|
+
async computeDftMaterials() {
|
|
696
|
+
throw new Error(this._unsupportedMsg("computeDftMaterials"));
|
|
697
|
+
}
|
|
698
|
+
async computeNmrSpectrum() {
|
|
699
|
+
throw new Error(this._unsupportedMsg("computeNmrSpectrum"));
|
|
700
|
+
}
|
|
701
|
+
async computeSemiEmpiricalEnergy() {
|
|
702
|
+
throw new Error(this._unsupportedMsg("computeSemiEmpiricalEnergy"));
|
|
703
|
+
}
|
|
704
|
+
async computeTransitionState() {
|
|
705
|
+
throw new Error(this._unsupportedMsg("computeTransitionState"));
|
|
706
|
+
}
|
|
707
|
+
async computeQmMm() {
|
|
708
|
+
throw new Error(this._unsupportedMsg("computeQmMm"));
|
|
709
|
+
}
|
|
710
|
+
// ── Private helpers ──────────────────────────────────────────────────────
|
|
711
|
+
/**
|
|
712
|
+
* Invoke the Python bridge with a JSON payload. The token is passed through the
|
|
713
|
+
* child environment (QUANTINUUM_API_KEY), never the argv JSON, so it cannot leak
|
|
714
|
+
* into process listings or logs. Mirrors the IBM backend's secret discipline.
|
|
715
|
+
*/
|
|
716
|
+
async _runPythonBridge(input) {
|
|
717
|
+
const { execFile } = await import('child_process');
|
|
718
|
+
const { promisify } = await import('util');
|
|
719
|
+
const execFileAsync = promisify(execFile);
|
|
720
|
+
const scriptPath = this.config.scriptPath ?? new URL("../../../../../../scripts/quantinuum_execute.py", import.meta.url).pathname;
|
|
721
|
+
const pythonExe = process.env.QISKIT_PYTHON ?? (process.platform === "win32" ? "C:\\Python314\\python.exe" : "python3");
|
|
722
|
+
const bridgeInput = { ...input };
|
|
723
|
+
delete bridgeInput["api_token"];
|
|
724
|
+
delete bridgeInput["apiToken"];
|
|
725
|
+
const apiToken = this._resolveApiToken();
|
|
726
|
+
const childEnv = apiToken ? { ...process.env, QUANTINUUM_API_KEY: apiToken } : process.env;
|
|
727
|
+
const { stdout, stderr } = await execFileAsync(
|
|
728
|
+
pythonExe,
|
|
729
|
+
[scriptPath, JSON.stringify(bridgeInput)],
|
|
730
|
+
{ maxBuffer: 10 * 1024 * 1024, env: childEnv }
|
|
731
|
+
);
|
|
732
|
+
if (stderr) {
|
|
733
|
+
const fatal = stderr.split("\n").filter(
|
|
734
|
+
(l) => l.includes("Error:") || l.includes("Traceback") || l.includes("SyntaxError")
|
|
735
|
+
);
|
|
736
|
+
if (fatal.length > 0) {
|
|
737
|
+
throw new Error(`[quantinuum] Python bridge error: ${fatal.join("\n")}`);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
return JSON.parse(stdout);
|
|
741
|
+
}
|
|
742
|
+
_resolveApiToken() {
|
|
743
|
+
if (this.config.apiToken) {
|
|
744
|
+
return this.config.apiToken;
|
|
745
|
+
}
|
|
746
|
+
if (typeof process !== "undefined" && process.env["QUANTINUUM_API_KEY"]) {
|
|
747
|
+
return process.env["QUANTINUUM_API_KEY"];
|
|
748
|
+
}
|
|
749
|
+
return null;
|
|
750
|
+
}
|
|
751
|
+
/** Estimate nuclear repulsion from pairwise Coulomb (Hartree, a.u.). */
|
|
752
|
+
_estimateNuclearRepulsion(molecule) {
|
|
753
|
+
const ANGSTROM_TO_BOHR = 1.8897259886;
|
|
754
|
+
const atomicNumbers = {
|
|
755
|
+
H: 1,
|
|
756
|
+
He: 2,
|
|
757
|
+
Li: 3,
|
|
758
|
+
Be: 4,
|
|
759
|
+
B: 5,
|
|
760
|
+
C: 6,
|
|
761
|
+
N: 7,
|
|
762
|
+
O: 8,
|
|
763
|
+
F: 9,
|
|
764
|
+
Ne: 10,
|
|
765
|
+
Na: 11,
|
|
766
|
+
Mg: 12,
|
|
767
|
+
Al: 13,
|
|
768
|
+
Si: 14,
|
|
769
|
+
P: 15,
|
|
770
|
+
S: 16,
|
|
771
|
+
Cl: 17,
|
|
772
|
+
Ar: 18,
|
|
773
|
+
K: 19,
|
|
774
|
+
Ca: 20,
|
|
775
|
+
Fe: 26,
|
|
776
|
+
Co: 27,
|
|
777
|
+
Ni: 28,
|
|
778
|
+
Cu: 29,
|
|
779
|
+
Zn: 30
|
|
780
|
+
};
|
|
781
|
+
const atoms = molecule.atoms;
|
|
782
|
+
let repulsion = 0;
|
|
783
|
+
for (let i = 0; i < atoms.length; i++) {
|
|
784
|
+
for (let j = i + 1; j < atoms.length; j++) {
|
|
785
|
+
const ai = atoms[i];
|
|
786
|
+
const aj = atoms[j];
|
|
787
|
+
if (ai === void 0 || aj === void 0) continue;
|
|
788
|
+
const zi = atomicNumbers[ai.symbol] ?? 6;
|
|
789
|
+
const zj = atomicNumbers[aj.symbol] ?? 6;
|
|
790
|
+
const dx = (ai.x - aj.x) * ANGSTROM_TO_BOHR;
|
|
791
|
+
const dy = (ai.y - aj.y) * ANGSTROM_TO_BOHR;
|
|
792
|
+
const dz = (ai.z - aj.z) * ANGSTROM_TO_BOHR;
|
|
793
|
+
const r = Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
794
|
+
if (r > 0) repulsion += zi * zj / r;
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
return repulsion;
|
|
798
|
+
}
|
|
799
|
+
_unsupportedMsg(methodName) {
|
|
800
|
+
return `[quantinuum] ${methodName} is not supported. Quantinuum backend supports logical-qubit VQE (computeEnergy / runLogicalVQE / runVQE) only. Use Psi4 or TBLite for classical QM methods.`;
|
|
801
|
+
}
|
|
802
|
+
};
|
|
803
|
+
}
|
|
804
|
+
});
|
|
805
|
+
|
|
463
806
|
// ../plugins/qm-bridge/src/index.ts
|
|
464
807
|
init_QmSolver();
|
|
465
808
|
|
|
@@ -887,9 +1230,21 @@ var Psi4Backend = class {
|
|
|
887
1230
|
"1H": 31.882,
|
|
888
1231
|
"13C": 184.133
|
|
889
1232
|
};
|
|
890
|
-
const
|
|
891
|
-
|
|
892
|
-
|
|
1233
|
+
const nmrIsotopeLabel = (symbol) => {
|
|
1234
|
+
switch (symbol) {
|
|
1235
|
+
case "H":
|
|
1236
|
+
return "1H";
|
|
1237
|
+
case "C":
|
|
1238
|
+
return "13C";
|
|
1239
|
+
case "N":
|
|
1240
|
+
return "15N";
|
|
1241
|
+
case "P":
|
|
1242
|
+
return "31P";
|
|
1243
|
+
default:
|
|
1244
|
+
return symbol;
|
|
1245
|
+
}
|
|
1246
|
+
};
|
|
1247
|
+
const nucleusLabels = molecule.atoms.map((a) => nmrIsotopeLabel(a.symbol));
|
|
893
1248
|
const shieldings = raw.shieldings ?? new Array(molecule.atoms.length).fill(0);
|
|
894
1249
|
const chemicalShifts = shieldings.map((s, i) => {
|
|
895
1250
|
const label = nucleusLabels[i]?.replace(/\d+/, "") || "1H";
|
|
@@ -965,15 +1320,57 @@ var Psi4Backend = class {
|
|
|
965
1320
|
/**
|
|
966
1321
|
* Run a Psi4 input script and parse the JSON result.
|
|
967
1322
|
*
|
|
968
|
-
*
|
|
969
|
-
* the
|
|
970
|
-
*
|
|
1323
|
+
* When psi4Path is '__mock__' or unset, returns synthesised mock data so
|
|
1324
|
+
* the CAEL recording pipeline can be validated end-to-end without a Psi4
|
|
1325
|
+
* installation. When psi4Path is any other value (a real binary path),
|
|
1326
|
+
* the script is written to a temp file, psi4 is spawned as a subprocess,
|
|
1327
|
+
* and the %%QM_RESULT%% marker is parsed from stdout. If the spawn fails
|
|
1328
|
+
* (e.g. binary not found), an error is thrown — silent fallback to mock
|
|
1329
|
+
* would be "verifier theater" (a bridge that always returns mock data is
|
|
1330
|
+
* indistinguishable from a broken bridge).
|
|
971
1331
|
*/
|
|
972
1332
|
async runPsi4(inputScript) {
|
|
973
1333
|
if (!this.psi4Path || this.psi4Path === "__mock__") {
|
|
974
1334
|
return this.mockPsi4Result(inputScript);
|
|
975
1335
|
}
|
|
976
|
-
|
|
1336
|
+
const { execFile } = await import('child_process');
|
|
1337
|
+
const { promisify } = await import('util');
|
|
1338
|
+
const os = await import('os');
|
|
1339
|
+
const path = await import('path');
|
|
1340
|
+
const fs = await import('fs/promises');
|
|
1341
|
+
const execFileAsync = promisify(execFile);
|
|
1342
|
+
const tmpDir = os.tmpdir();
|
|
1343
|
+
const inputPath = path.join(tmpDir, `holoscript_psi4_${Date.now()}.py`);
|
|
1344
|
+
const outputPath = path.join(tmpDir, `holoscript_psi4_${Date.now()}.out`);
|
|
1345
|
+
try {
|
|
1346
|
+
await fs.writeFile(inputPath, inputScript, "utf8");
|
|
1347
|
+
const { stdout, stderr } = await execFileAsync(
|
|
1348
|
+
this.psi4Path,
|
|
1349
|
+
["-i", inputPath, "-o", outputPath],
|
|
1350
|
+
{ maxBuffer: 10 * 1024 * 1024 }
|
|
1351
|
+
);
|
|
1352
|
+
if (stderr) {
|
|
1353
|
+
const fatal = stderr.split("\n").filter(
|
|
1354
|
+
(l) => l.includes("Error:") || l.includes("Traceback") || l.includes("SyntaxError")
|
|
1355
|
+
);
|
|
1356
|
+
if (fatal.length > 0) {
|
|
1357
|
+
throw new Error(`[psi4] Subprocess error: ${fatal.join("\n")}`);
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
const marker = "%%QM_RESULT%%";
|
|
1361
|
+
const markerIdx = stdout.indexOf(marker);
|
|
1362
|
+
if (markerIdx === -1) {
|
|
1363
|
+
throw new Error("[psi4] Output did not contain %%QM_RESULT%% marker");
|
|
1364
|
+
}
|
|
1365
|
+
const jsonStr = stdout.slice(markerIdx + marker.length).trim().split("\n")[0] ?? "";
|
|
1366
|
+
return JSON.parse(jsonStr);
|
|
1367
|
+
} catch (err) {
|
|
1368
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1369
|
+
throw new Error(`[psi4] Failed to run psi4 at '${this.psi4Path}': ${msg}`);
|
|
1370
|
+
} finally {
|
|
1371
|
+
await fs.unlink(inputPath).catch(() => void 0);
|
|
1372
|
+
await fs.unlink(outputPath).catch(() => void 0);
|
|
1373
|
+
}
|
|
977
1374
|
}
|
|
978
1375
|
/** Mock result for testing without Psi4 installed. */
|
|
979
1376
|
mockPsi4Result(_input) {
|
|
@@ -1232,11 +1629,74 @@ var QuantumEspressoBackend = class {
|
|
|
1232
1629
|
throw new Error("[qm-bridge] Quantum ESPRESSO does not support QM/MM. Use psi4 backend.");
|
|
1233
1630
|
}
|
|
1234
1631
|
// ── Subprocess bridge ──────────────────────────────────────────────────
|
|
1235
|
-
|
|
1632
|
+
/**
|
|
1633
|
+
* Run pw.x with the given SCF input and parse the output.
|
|
1634
|
+
*
|
|
1635
|
+
* When pwPath is '__mock__', returns synthesised results for testing
|
|
1636
|
+
* without a QE installation. When pwPath is any other value, the input is
|
|
1637
|
+
* written to a temp directory, pw.x is spawned with stdin redirect, and
|
|
1638
|
+
* the output is parsed for total energy, Fermi energy, and band gap.
|
|
1639
|
+
* If the spawn fails, an error is thrown — silent fallback to mock would
|
|
1640
|
+
* be verifier theater.
|
|
1641
|
+
*
|
|
1642
|
+
* Output parsing targets QE 7.x XML output (in the ./tmp/holoscript_qm.save/
|
|
1643
|
+
* directory) or falls back to stdout pattern matching.
|
|
1644
|
+
*/
|
|
1645
|
+
async runQe(input) {
|
|
1236
1646
|
if (this.pwPath === "__mock__") {
|
|
1237
1647
|
return this.mockQeResult();
|
|
1238
1648
|
}
|
|
1239
|
-
|
|
1649
|
+
const { execFile } = await import('child_process');
|
|
1650
|
+
const { promisify } = await import('util');
|
|
1651
|
+
const os = await import('os');
|
|
1652
|
+
const path = await import('path');
|
|
1653
|
+
const fs = await import('fs/promises');
|
|
1654
|
+
const execFileAsync = promisify(execFile);
|
|
1655
|
+
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "holoscript_qe_"));
|
|
1656
|
+
const inputPath = path.join(tmpDir, "pw.in");
|
|
1657
|
+
const outputPath = path.join(tmpDir, "pw.out");
|
|
1658
|
+
try {
|
|
1659
|
+
const patchedInput = input.replace("outdir = './tmp'", `outdir = '${tmpDir}/tmp'`);
|
|
1660
|
+
await fs.writeFile(inputPath, patchedInput, "utf8");
|
|
1661
|
+
const { stdout, stderr } = await execFileAsync(
|
|
1662
|
+
this.pwPath,
|
|
1663
|
+
["-in", inputPath],
|
|
1664
|
+
{
|
|
1665
|
+
cwd: tmpDir,
|
|
1666
|
+
maxBuffer: 50 * 1024 * 1024,
|
|
1667
|
+
env: { ...process.env, OMP_NUM_THREADS: "1" }
|
|
1668
|
+
}
|
|
1669
|
+
);
|
|
1670
|
+
await fs.writeFile(outputPath, stdout, "utf8").catch(() => void 0);
|
|
1671
|
+
if (stderr) {
|
|
1672
|
+
const fatal = stderr.split("\n").filter((l) => l.includes("Error") || l.includes("Traceback") || l.includes("forrtl"));
|
|
1673
|
+
if (fatal.length > 0) {
|
|
1674
|
+
throw new Error(`[quantum-espresso] pw.x stderr: ${fatal.join("\n")}`);
|
|
1675
|
+
}
|
|
1676
|
+
}
|
|
1677
|
+
const energyMatch = stdout.match(/!\s+total energy\s+=\s+([-\d.]+)\s+Ry/);
|
|
1678
|
+
const totalEnergy = energyMatch?.[1] !== void 0 ? parseFloat(energyMatch[1]) : void 0;
|
|
1679
|
+
const fermiMatch = stdout.match(/the Fermi energy is\s+([-\d.]+)\s+ev/i);
|
|
1680
|
+
const fermiEnergy = fermiMatch?.[1] !== void 0 ? parseFloat(fermiMatch[1]) : void 0;
|
|
1681
|
+
const convMatch = stdout.match(/convergence has been achieved in\s+(\d+)/i);
|
|
1682
|
+
const converged = convMatch !== null;
|
|
1683
|
+
const scfIterations = convMatch?.[1] !== void 0 ? parseInt(convMatch[1], 10) : 0;
|
|
1684
|
+
return {
|
|
1685
|
+
total_energy: totalEnergy,
|
|
1686
|
+
fermi_energy: fermiEnergy,
|
|
1687
|
+
band_gap: void 0,
|
|
1688
|
+
// Requires post-processing with bands.x
|
|
1689
|
+
is_metallic: fermiEnergy !== void 0 && totalEnergy !== void 0,
|
|
1690
|
+
scf_iterations: scfIterations,
|
|
1691
|
+
converged,
|
|
1692
|
+
band_energies: []
|
|
1693
|
+
};
|
|
1694
|
+
} catch (err) {
|
|
1695
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1696
|
+
throw new Error(`[quantum-espresso] Failed to run pw.x at '${this.pwPath}': ${msg}`);
|
|
1697
|
+
} finally {
|
|
1698
|
+
await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => void 0);
|
|
1699
|
+
}
|
|
1240
1700
|
}
|
|
1241
1701
|
mockQeResult() {
|
|
1242
1702
|
return {
|
|
@@ -1355,12 +1815,61 @@ var TBLiteBackend = class {
|
|
|
1355
1815
|
throw new Error("[qm-bridge] TBLite does not support QM/MM. Use psi4 backend.");
|
|
1356
1816
|
}
|
|
1357
1817
|
// ── Subprocess bridge ──────────────────────────────────────────────────
|
|
1818
|
+
/**
|
|
1819
|
+
* Invoke xtb for a single-point (--sp) or geometry optimisation (--opt).
|
|
1820
|
+
*
|
|
1821
|
+
* When xtbPath is '__mock__', returns synthesised results so tests that do
|
|
1822
|
+
* not have xtb installed can still exercise the interface. When xtbPath is
|
|
1823
|
+
* any other value, the XYZ input is written to a temp directory, xtb is
|
|
1824
|
+
* spawned, and the JSON output (xtb --json writes xtbout.json) is parsed.
|
|
1825
|
+
* If the spawn fails, an error is thrown — silent fallback to mock would
|
|
1826
|
+
* be verifier theater.
|
|
1827
|
+
*/
|
|
1358
1828
|
async runXtb(molecule, task) {
|
|
1359
|
-
this.moleculeToXyz(molecule);
|
|
1360
1829
|
if (this.xtbPath === "__mock__") {
|
|
1361
1830
|
return this.mockXtbResult(molecule, task);
|
|
1362
1831
|
}
|
|
1363
|
-
|
|
1832
|
+
const xyz = this.moleculeToXyz(molecule);
|
|
1833
|
+
const { execFile } = await import('child_process');
|
|
1834
|
+
const { promisify } = await import('util');
|
|
1835
|
+
const os = await import('os');
|
|
1836
|
+
const path = await import('path');
|
|
1837
|
+
const fs = await import('fs/promises');
|
|
1838
|
+
const execFileAsync = promisify(execFile);
|
|
1839
|
+
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "holoscript_xtb_"));
|
|
1840
|
+
const inputPath = path.join(tmpDir, "input.xyz");
|
|
1841
|
+
const jsonOutputPath = path.join(tmpDir, "xtbout.json");
|
|
1842
|
+
try {
|
|
1843
|
+
await fs.writeFile(inputPath, xyz, "utf8");
|
|
1844
|
+
const args = [inputPath, task, "--json", "--namespace", "xtbout"];
|
|
1845
|
+
if (this.xtbMethod === "GFN0-xTB") args.push("--gfn", "0");
|
|
1846
|
+
else if (this.xtbMethod === "GFN1-xTB") args.push("--gfn", "1");
|
|
1847
|
+
const { stderr } = await execFileAsync(this.xtbPath, args, {
|
|
1848
|
+
cwd: tmpDir,
|
|
1849
|
+
maxBuffer: 10 * 1024 * 1024
|
|
1850
|
+
});
|
|
1851
|
+
if (stderr) {
|
|
1852
|
+
const fatal = stderr.split("\n").filter((l) => l.includes("ERROR") || l.includes("Traceback"));
|
|
1853
|
+
if (fatal.length > 0) {
|
|
1854
|
+
throw new Error(`[tblite] xtb stderr: ${fatal.join("\n")}`);
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
const jsonRaw = await fs.readFile(jsonOutputPath, "utf8");
|
|
1858
|
+
const parsed = JSON.parse(jsonRaw);
|
|
1859
|
+
return {
|
|
1860
|
+
total_energy: typeof parsed["total energy"] === "number" ? parsed["total energy"] : void 0,
|
|
1861
|
+
converged: true,
|
|
1862
|
+
scf_iterations: typeof parsed["number of iterations taken for SCC"] === "number" ? parsed["number of iterations taken for SCC"] : void 0,
|
|
1863
|
+
dipole_moment: Array.isArray(parsed["dipole"]) ? parsed["dipole"] : void 0,
|
|
1864
|
+
gradient_norm: typeof parsed["gradient norm"] === "number" ? parsed["gradient norm"] : void 0,
|
|
1865
|
+
opt_steps: typeof parsed["optimization steps"] === "number" ? parsed["optimization steps"] : void 0
|
|
1866
|
+
};
|
|
1867
|
+
} catch (err) {
|
|
1868
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1869
|
+
throw new Error(`[tblite] Failed to run xtb at '${this.xtbPath}': ${msg}`);
|
|
1870
|
+
} finally {
|
|
1871
|
+
await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => void 0);
|
|
1872
|
+
}
|
|
1364
1873
|
}
|
|
1365
1874
|
/** Convert molecule to XYZ format for xtb input. */
|
|
1366
1875
|
moleculeToXyz(molecule) {
|
|
@@ -2045,11 +2554,17 @@ var PySCFBackend = class {
|
|
|
2045
2554
|
};
|
|
2046
2555
|
|
|
2047
2556
|
// ../plugins/qm-bridge/src/index.ts
|
|
2557
|
+
init_quantinuum();
|
|
2048
2558
|
init_ibm_quantum();
|
|
2559
|
+
init_quantinuum();
|
|
2049
2560
|
function createIBMQuantumBackend(config) {
|
|
2050
2561
|
const { IBMQuantumBackend: IBMQuantumBackend2 } = (init_ibm_quantum(), __toCommonJS(ibm_quantum_exports));
|
|
2051
2562
|
return new IBMQuantumBackend2(config);
|
|
2052
2563
|
}
|
|
2564
|
+
function createQuantinuumBackend(config) {
|
|
2565
|
+
const { QuantinuumBackend: QuantinuumBackend2 } = (init_quantinuum(), __toCommonJS(quantinuum_exports));
|
|
2566
|
+
return new QuantinuumBackend2(config);
|
|
2567
|
+
}
|
|
2053
2568
|
function createQmSolver(config) {
|
|
2054
2569
|
switch (config.backend) {
|
|
2055
2570
|
case "psi4":
|
|
@@ -2062,14 +2577,19 @@ function createQmSolver(config) {
|
|
|
2062
2577
|
return new IBMQuantumBackend(config);
|
|
2063
2578
|
case "pyscf":
|
|
2064
2579
|
return new PySCFBackend(config);
|
|
2580
|
+
case "quantinuum":
|
|
2581
|
+
return new QuantinuumBackend(config);
|
|
2065
2582
|
default:
|
|
2066
2583
|
throw new Error(
|
|
2067
|
-
`[qm-bridge] Unknown backend: '${config.backend}'. Supported: psi4, quantum-espresso, tblite, ibm-quantum, pyscf`
|
|
2584
|
+
`[qm-bridge] Unknown backend: '${config.backend}'. Supported: psi4, quantum-espresso, tblite, ibm-quantum, pyscf, quantinuum`
|
|
2068
2585
|
);
|
|
2069
2586
|
}
|
|
2070
2587
|
}
|
|
2071
2588
|
function selectQmBackend(questionType) {
|
|
2072
2589
|
const q = questionType.toLowerCase();
|
|
2590
|
+
if (q.includes("quantinuum") || q.includes("logical qubit") || q.includes("error-corrected") || q.includes("error corrected") || q.includes("error correction") || q.includes("qec") || q.includes("carbon code") || q.includes("tesseract") || q.includes("h-series") || q.includes("fault-tolerant") || q.includes("fault tolerant")) {
|
|
2591
|
+
return "quantinuum";
|
|
2592
|
+
}
|
|
2073
2593
|
if (q.includes("vqe") || q.includes("variational quantum") || q.includes("quantum circuit") || q.includes("qaoa") || q.includes("qubo") || q.includes("ibm quantum") || q.includes("quantum hardware")) {
|
|
2074
2594
|
return "ibm-quantum";
|
|
2075
2595
|
}
|
|
@@ -2108,6 +2628,9 @@ function getDefaultQmConfig(backend, questionType) {
|
|
|
2108
2628
|
case "ibm-quantum": {
|
|
2109
2629
|
return { backend: "ibm-quantum", method: "vqe", basis: "sto-3g" };
|
|
2110
2630
|
}
|
|
2631
|
+
case "quantinuum": {
|
|
2632
|
+
return { backend: "quantinuum", method: "vqe", basis: "sto-3g" };
|
|
2633
|
+
}
|
|
2111
2634
|
case "pyscf": {
|
|
2112
2635
|
if (q.includes("phonon") || q.includes("dos") || q.includes("density of states")) {
|
|
2113
2636
|
return { backend: "pyscf", method: "pbe", basis: "sto-3g" };
|
|
@@ -2126,6 +2649,6 @@ function getDefaultQmConfig(backend, questionType) {
|
|
|
2126
2649
|
}
|
|
2127
2650
|
var VERSION = "0.1.0";
|
|
2128
2651
|
|
|
2129
|
-
export { IBMQuantumBackend, Psi4Backend, PySCFBackend, QM_ACCEPTANCE_CRITERIA, QM_BACKEND_CAPABILITIES, QuantumEspressoBackend, TBLiteBackend, VERSION, computeMeasurementBasis, createIBMQuantumBackend, createQmSolver, estimateMeasurementCost, getDefaultQmConfig, groupPauliTerms, parsePauliList, paulisCommute, qmConfigToCael, qmResultToCaelSummary, requireCapability, selectQmBackend, verifyQmAcceptance };
|
|
2130
|
-
//# sourceMappingURL=src-
|
|
2131
|
-
//# sourceMappingURL=src-
|
|
2652
|
+
export { IBMQuantumBackend, Psi4Backend, PySCFBackend, QM_ACCEPTANCE_CRITERIA, QM_BACKEND_CAPABILITIES, QuantinuumBackend, QuantumEspressoBackend, TBLiteBackend, VERSION, computeMeasurementBasis, createIBMQuantumBackend, createQmSolver, createQuantinuumBackend, estimateMeasurementCost, getDefaultQmConfig, groupPauliTerms, parsePauliList, paulisCommute, qmConfigToCael, qmResultToCaelSummary, requireCapability, selectQmBackend, verifyQmAcceptance };
|
|
2653
|
+
//# sourceMappingURL=src-UXYA7HM6.js.map
|
|
2654
|
+
//# sourceMappingURL=src-UXYA7HM6.js.map
|