@holoscript/core 8.0.14 → 8.0.15
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/README.md +6 -13
- package/bin/holo-decision.mjs +0 -0
- package/bin/holoscript.cjs +0 -0
- package/dist/{GLTFPipeline-6LS3UDYX.js → GLTFPipeline-FRBZIATS.js} +6 -6
- package/dist/{GLTFPipeline-VTI6PRRQ.cjs → GLTFPipeline-MTPP444P.cjs} +10 -10
- package/dist/{HoloCompositionParser-GILABNN3.js → HoloCompositionParser-2GVQAZ2X.js} +7 -7
- package/dist/HoloCompositionParser-3NDF6BMX.cjs +45 -0
- package/dist/HoloScriptPlusParser-URSIBEAW.cjs +30 -0
- package/dist/HoloScriptPlusParser-YCV6L7GI.js +13 -0
- package/dist/{HoloScriptRuntime-YBYXJHJN.cjs → HoloScriptRuntime-CRWI6C3P.cjs} +5 -5
- package/dist/{HoloScriptRuntime-UTRLJI5L.js → HoloScriptRuntime-IAZGHPFP.js} +4 -4
- package/dist/{SceneIRCompiler-VX75RB6H.js → SceneIRCompiler-BJQMKLWL.js} +6 -6
- package/dist/{SceneIRCompiler-7KQ5NKAU.cjs → SceneIRCompiler-RTPPDQAV.cjs} +11 -11
- package/dist/{chunk-Y2OCKXVD.js → chunk-22AULOAL.js} +5 -5
- package/dist/{chunk-D44CEFY4.cjs → chunk-2DJIS7TH.cjs} +5 -5
- package/dist/{chunk-LHUDAJQT.cjs → chunk-2PVEXEOL.cjs} +5 -5
- package/dist/{chunk-M7XR3F53.js → chunk-2UP2J3OK.js} +4 -4
- package/dist/{chunk-3KHRZTNW.js → chunk-3AUYBQ5I.js} +3 -3
- package/dist/{chunk-UKEK2NZJ.js → chunk-3MQAOMKD.js} +3 -3
- package/dist/{chunk-FWKEY4LD.js → chunk-4AGNARX6.js} +3 -3
- package/dist/{chunk-7ITJP33Q.cjs → chunk-4CQ7ULXZ.cjs} +3 -3
- package/dist/{chunk-ORBVCOTC.js → chunk-5LCJDX5A.js} +3 -3
- package/dist/{chunk-IK6Z2HNC.js → chunk-6OQHLNTT.js} +2 -2
- package/dist/{chunk-EI3J6LTW.cjs → chunk-6RDHWSZM.cjs} +217 -217
- package/dist/{chunk-73EDVY5D.js → chunk-7AY66PZP.js} +3 -3
- package/dist/{chunk-6FCNMTL5.js → chunk-7HDRN5BW.js} +4 -4
- package/dist/{chunk-TMNAKNV2.cjs → chunk-7YKNV2BE.cjs} +5 -5
- package/dist/{chunk-R5VKLUMR.js → chunk-AAUQTR7I.js} +4 -4
- package/dist/{chunk-HCONR4J6.cjs → chunk-AN3ZH7M7.cjs} +38 -38
- package/dist/{chunk-YW3I2FQL.js → chunk-ANMME7XT.js} +4 -2
- package/dist/{chunk-47XZ62KM.js → chunk-ATRAK4RC.js} +5 -5
- package/dist/{chunk-W4AJMMQR.js → chunk-AUF7HFOO.js} +60 -22
- package/dist/{chunk-SKVBUGMC.cjs → chunk-AUMTQV64.cjs} +7 -7
- package/dist/{chunk-N7MIIDLI.cjs → chunk-AUU4ACJP.cjs} +8 -8
- package/dist/{chunk-QQFB4RT2.cjs → chunk-BTVHY3UB.cjs} +2 -2
- package/dist/{chunk-SE2Y5BSL.cjs → chunk-CMEINO5I.cjs} +186 -70
- package/dist/{chunk-YMI3ED3B.cjs → chunk-CRUIGXF7.cjs} +5 -5
- package/dist/{chunk-2E6PP5UE.cjs → chunk-E2SNPMBO.cjs} +11 -11
- package/dist/{chunk-GI5YYZH6.js → chunk-E4YS5SIZ.js} +90 -25
- package/dist/{chunk-62OYZT6Q.js → chunk-EKNWUSGW.js} +3 -3
- package/dist/{chunk-RVN7OPCP.js → chunk-ETIJOUIO.js} +4 -4
- package/dist/{chunk-C73GVAYC.js → chunk-F33KLYOS.js} +5 -5
- package/dist/{chunk-4CRMVEON.cjs → chunk-F47FEV4X.cjs} +40 -40
- package/dist/{chunk-FGXJPJ3W.cjs → chunk-FCGTI7FO.cjs} +4 -4
- package/dist/{chunk-OSKGCXAQ.cjs → chunk-FGTXAVKG.cjs} +5 -5
- package/dist/{chunk-XZC75AJ4.cjs → chunk-FPGYWNNA.cjs} +5 -5
- package/dist/{chunk-5B2AJKA5.cjs → chunk-FQ4MYZYU.cjs} +20 -20
- package/dist/{chunk-KOGPVAP6.js → chunk-FT4FGTR6.js} +3 -3
- package/dist/{chunk-N7IYRAFG.cjs → chunk-FVNV4WHQ.cjs} +14 -14
- package/dist/{chunk-SJIRCTIS.cjs → chunk-HSGJFCVJ.cjs} +2 -2
- package/dist/{chunk-TKDDIE3T.cjs → chunk-ILO2KMER.cjs} +4 -4
- package/dist/{chunk-GGH3ZYDB.cjs → chunk-IPBSNGAN.cjs} +92 -27
- package/dist/{chunk-JQCXLKAU.js → chunk-IX2U3RQT.js} +3 -3
- package/dist/{chunk-P65OIMJT.cjs → chunk-IYK6LMQ7.cjs} +7 -7
- package/dist/{chunk-NWKARJM2.js → chunk-J3VVM6GV.js} +4 -4
- package/dist/{chunk-FOM36K5I.cjs → chunk-J74S4ZMF.cjs} +18 -18
- package/dist/{chunk-36NPLOI4.cjs → chunk-JERWCCEJ.cjs} +4 -2
- package/dist/{chunk-VXHB6ZHY.js → chunk-JTDDLCSP.js} +4 -4
- package/dist/{chunk-GYJLP4BO.cjs → chunk-K53L47NH.cjs} +30 -30
- package/dist/{chunk-FHR2AVMA.cjs → chunk-LJTM5ONX.cjs} +23 -23
- package/dist/{chunk-JCVSCKUH.js → chunk-LJVVOVA6.js} +4 -4
- package/dist/{chunk-LQNL3IYV.cjs → chunk-LNJKBQ2B.cjs} +38 -38
- package/dist/{chunk-2GKF7JQ6.js → chunk-M2GDE3NV.js} +3 -3
- package/dist/{chunk-Z7NUL73U.js → chunk-MSZNGI5P.js} +3 -3
- package/dist/{chunk-B6JHTTMR.cjs → chunk-N2BOTBPG.cjs} +15 -15
- package/dist/{chunk-L4DBUX3N.cjs → chunk-NFALJJCH.cjs} +12 -12
- package/dist/{chunk-YBM34FUJ.cjs → chunk-NRZRBK25.cjs} +6 -6
- package/dist/{chunk-SNMQUWIO.cjs → chunk-NTSLNIY7.cjs} +10 -10
- package/dist/{chunk-645EWDZW.cjs → chunk-NZJOAWJM.cjs} +4 -4
- package/dist/{chunk-LGRKBTPM.js → chunk-OG7RKWWX.js} +3 -3
- package/dist/{chunk-OOP4S3GU.cjs → chunk-OQVHCYY4.cjs} +5 -5
- package/dist/{chunk-5T6BWIB7.js → chunk-PFZ5WLIP.js} +4 -4
- package/dist/{chunk-CESMPUEZ.cjs → chunk-PHLNABJD.cjs} +159 -145
- package/dist/{chunk-CHIZSMWD.js → chunk-PLK3DLTF.js} +3 -3
- package/dist/{chunk-4NEPHK2K.js → chunk-PMACVMHL.js} +3 -3
- package/dist/{chunk-EYHPTJ3F.js → chunk-PV2OXNP5.js} +40 -26
- package/dist/{chunk-KLM6QD6D.cjs → chunk-Q6VW7MGX.cjs} +14 -14
- package/dist/{chunk-YDSNDCV3.js → chunk-QC3CAVFN.js} +186 -69
- package/dist/{chunk-REN3LHO6.cjs → chunk-QKLEDRHN.cjs} +19 -19
- package/dist/{chunk-2EGGAZT3.js → chunk-QS27OYBU.js} +3 -3
- package/dist/{chunk-4376VHNJ.js → chunk-RUB7WL6C.js} +3 -3
- package/dist/{chunk-TZQKJOPC.js → chunk-TW2AH2ZS.js} +3 -3
- package/dist/{chunk-Q4J2K7FI.js → chunk-TZM6DKSJ.js} +6 -6
- package/dist/{chunk-ESSEF6U2.js → chunk-U227RWXB.js} +3 -3
- package/dist/{chunk-ERYKKPHW.cjs → chunk-U6CQOM5Q.cjs} +13 -13
- package/dist/{chunk-VMCR5QVI.js → chunk-ULT2QAV5.js} +4 -4
- package/dist/{chunk-VZI7S7P6.cjs → chunk-VSO6HPDZ.cjs} +7 -7
- package/dist/{chunk-QLPRI3QW.js → chunk-WQJMSSJT.js} +4 -4
- package/dist/{chunk-GILYQ5VH.cjs → chunk-WXSDBWGM.cjs} +4 -4
- package/dist/{chunk-42Z3SVHQ.js → chunk-X5PMMK7H.js} +3 -3
- package/dist/{chunk-ML4V5PVU.cjs → chunk-X5ZLSPU2.cjs} +74 -32
- package/dist/{chunk-PSWCJQS4.js → chunk-X727CQ7X.js} +5 -5
- package/dist/{chunk-YM7UUYR5.cjs → chunk-XHZYS4QO.cjs} +5 -5
- package/dist/{chunk-PZ46WRHX.cjs → chunk-XRQCTTDC.cjs} +8 -8
- package/dist/{chunk-IXFNA5TT.js → chunk-YBIHSN55.js} +4 -4
- package/dist/{chunk-BLCWQ225.js → chunk-Z574GVI3.js} +4 -4
- package/dist/{chunk-ZVQMKUGJ.js → chunk-Z5V3KA7L.js} +2 -2
- package/dist/{chunk-7ZKQ32XK.js → chunk-ZGDEOXGU.js} +4 -4
- package/dist/{chunk-VTFLKSJL.cjs → chunk-ZHW6TDZ6.cjs} +14 -14
- package/dist/{chunk-KYJD2UMV.js → chunk-ZPHCTPR6.js} +4 -4
- package/dist/{chunk-VA7THINF.cjs → chunk-ZXXC2GXB.cjs} +38 -38
- package/dist/cli/holoscript-runner.cjs +168 -19
- package/dist/cli/holoscript-runner.js +162 -13
- package/dist/compiler/agent-inference.cjs +7 -7
- package/dist/compiler/agent-inference.js +3 -3
- package/dist/compiler/android-xr.cjs +6 -6
- package/dist/compiler/android-xr.js +4 -4
- package/dist/compiler/android.cjs +5 -5
- package/dist/compiler/android.js +3 -3
- package/dist/compiler/context.cjs +5 -5
- package/dist/compiler/context.js +2 -2
- package/dist/compiler/daimon-seed.cjs +8 -8
- package/dist/compiler/daimon-seed.js +3 -3
- package/dist/compiler/domain-block-utils.cjs +164 -164
- package/dist/compiler/domain-block-utils.js +3 -3
- package/dist/compiler/dtdl.cjs +6 -6
- package/dist/compiler/dtdl.js +3 -3
- package/dist/compiler/gltf-pipeline.cjs +8 -8
- package/dist/compiler/gltf-pipeline.js +1 -1
- package/dist/compiler/godot.cjs +5 -5
- package/dist/compiler/godot.js +4 -4
- package/dist/compiler/incremental.cjs +7 -7
- package/dist/compiler/incremental.js +2 -2
- package/dist/compiler/index.cjs +1603 -204
- package/dist/compiler/index.d.ts +8 -0
- package/dist/compiler/index.js +1431 -55
- package/dist/compiler/ios.cjs +5 -5
- package/dist/compiler/ios.js +3 -3
- package/dist/compiler/llm-provider-capabilities.cjs +5 -5
- package/dist/compiler/llm-provider-capabilities.js +2 -2
- package/dist/compiler/openxr.cjs +5 -5
- package/dist/compiler/openxr.js +4 -4
- package/dist/compiler/sdf.cjs +6 -6
- package/dist/compiler/sdf.js +4 -4
- package/dist/compiler/state.cjs +5 -5
- package/dist/compiler/state.js +3 -3
- package/dist/compiler/trait-composition.cjs +6 -6
- package/dist/compiler/trait-composition.js +2 -2
- package/dist/compiler/unity.cjs +5 -5
- package/dist/compiler/unity.js +4 -4
- package/dist/compiler/unreal.cjs +6 -6
- package/dist/compiler/unreal.js +4 -4
- package/dist/compiler/urdf.cjs +13 -13
- package/dist/compiler/urdf.js +4 -4
- package/dist/compiler/usd-physics.cjs +6 -6
- package/dist/compiler/usd-physics.js +3 -3
- package/dist/compiler/visionos.cjs +5 -5
- package/dist/compiler/visionos.js +4 -4
- package/dist/compiler/vrchat.cjs +6 -6
- package/dist/compiler/vrchat.js +4 -4
- package/dist/compiler/wasm.cjs +9 -9
- package/dist/compiler/wasm.js +4 -4
- package/dist/compiler/webgpu.cjs +5 -5
- package/dist/compiler/webgpu.js +4 -4
- package/dist/constants.cjs +99 -99
- package/dist/constants.js +3 -3
- package/dist/debugger.cjs +5 -5
- package/dist/debugger.js +3 -3
- package/dist/{dist-GRMOP2UL.cjs → dist-YGATNURH.cjs} +705 -9
- package/dist/{dist-ZBUKU2JG.js → dist-ZEZXRCBG.js} +701 -10
- package/dist/entries/scripting.cjs +8 -8
- package/dist/entries/scripting.js +4 -4
- package/dist/evolution/index.cjs +20 -20
- package/dist/evolution/index.js +8 -8
- package/dist/index.cjs +871 -809
- package/dist/index.d.ts +8 -0
- package/dist/index.js +132 -70
- package/dist/parser/HoloCompositionTypes.d.ts +1 -1
- package/dist/parser.cjs +21 -21
- package/dist/parser.js +7 -7
- package/dist/reconstruction/index.cjs +63 -63
- package/dist/reconstruction/index.js +7 -7
- package/dist/runtime.cjs +9 -9
- package/dist/runtime.js +3 -3
- package/dist/traits/botanical-lotus.d.ts +61 -0
- package/dist/traits/index.cjs +664 -671
- package/dist/traits/index.d.ts +65 -0
- package/dist/traits/index.js +14 -21
- package/dist/types/HoloScriptPlus.d.ts +1 -1
- package/package.json +66 -64
- package/dist/HoloCompositionParser-ZVRYVEA5.cjs +0 -45
- package/dist/HoloScriptPlusParser-WTPRPRPR.cjs +0 -30
- package/dist/HoloScriptPlusParser-ZP53ECSL.js +0 -13
package/dist/compiler/index.cjs
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkXHZYS4QO_cjs = require('../chunk-XHZYS4QO.cjs');
|
|
4
|
+
var chunk2DJIS7TH_cjs = require('../chunk-2DJIS7TH.cjs');
|
|
5
|
+
var chunk4CQ7ULXZ_cjs = require('../chunk-4CQ7ULXZ.cjs');
|
|
6
6
|
var chunkOV46CCA2_cjs = require('../chunk-OV46CCA2.cjs');
|
|
7
7
|
var chunkS6YWHCKV_cjs = require('../chunk-S6YWHCKV.cjs');
|
|
8
8
|
var chunkVJ3L7CHT_cjs = require('../chunk-VJ3L7CHT.cjs');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var chunkIPBSNGAN_cjs = require('../chunk-IPBSNGAN.cjs');
|
|
10
|
+
var chunkPHLNABJD_cjs = require('../chunk-PHLNABJD.cjs');
|
|
11
11
|
var chunkFT6TDR2O_cjs = require('../chunk-FT6TDR2O.cjs');
|
|
12
12
|
require('../chunk-LDYZWNJW.cjs');
|
|
13
|
-
var
|
|
13
|
+
var chunkF47FEV4X_cjs = require('../chunk-F47FEV4X.cjs');
|
|
14
14
|
require('../chunk-KROXXBK5.cjs');
|
|
15
|
-
var
|
|
15
|
+
var chunkOQVHCYY4_cjs = require('../chunk-OQVHCYY4.cjs');
|
|
16
16
|
var chunkGKFCHGCM_cjs = require('../chunk-GKFCHGCM.cjs');
|
|
17
17
|
var chunkI6XZ5DZF_cjs = require('../chunk-I6XZ5DZF.cjs');
|
|
18
18
|
var chunkXUILI4KB_cjs = require('../chunk-XUILI4KB.cjs');
|
|
19
19
|
var chunkQHSAVOOL_cjs = require('../chunk-QHSAVOOL.cjs');
|
|
20
|
-
var
|
|
21
|
-
var
|
|
20
|
+
var chunkCRUIGXF7_cjs = require('../chunk-CRUIGXF7.cjs');
|
|
21
|
+
var chunkX5ZLSPU2_cjs = require('../chunk-X5ZLSPU2.cjs');
|
|
22
22
|
require('../chunk-YKY2JBER.cjs');
|
|
23
|
-
require('../chunk-
|
|
23
|
+
require('../chunk-BTVHY3UB.cjs');
|
|
24
24
|
var chunkN2ILK7BF_cjs = require('../chunk-N2ILK7BF.cjs');
|
|
25
25
|
require('../chunk-DN6F4DHH.cjs');
|
|
26
26
|
require('../chunk-XHIV6326.cjs');
|
|
27
27
|
require('../chunk-3FOKASKO.cjs');
|
|
28
28
|
require('../chunk-ENZCIQZC.cjs');
|
|
29
29
|
require('../chunk-4PDEPEQW.cjs');
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
30
|
+
var chunkFQ4MYZYU_cjs = require('../chunk-FQ4MYZYU.cjs');
|
|
31
|
+
var chunkQ6VW7MGX_cjs = require('../chunk-Q6VW7MGX.cjs');
|
|
32
|
+
var chunkAUMTQV64_cjs = require('../chunk-AUMTQV64.cjs');
|
|
33
|
+
var chunkVSO6HPDZ_cjs = require('../chunk-VSO6HPDZ.cjs');
|
|
34
34
|
require('../chunk-V6GXFSK7.cjs');
|
|
35
|
-
var
|
|
35
|
+
var chunkXRQCTTDC_cjs = require('../chunk-XRQCTTDC.cjs');
|
|
36
36
|
require('../chunk-R75BSDH7.cjs');
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var chunkFPGYWNNA_cjs = require('../chunk-FPGYWNNA.cjs');
|
|
38
|
+
var chunkQKLEDRHN_cjs = require('../chunk-QKLEDRHN.cjs');
|
|
39
39
|
require('../chunk-CFVK26P4.cjs');
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
40
|
+
var chunkK53L47NH_cjs = require('../chunk-K53L47NH.cjs');
|
|
41
|
+
var chunkJ74S4ZMF_cjs = require('../chunk-J74S4ZMF.cjs');
|
|
42
|
+
var chunkNTSLNIY7_cjs = require('../chunk-NTSLNIY7.cjs');
|
|
43
|
+
var chunkU6CQOM5Q_cjs = require('../chunk-U6CQOM5Q.cjs');
|
|
44
|
+
var chunkFGTXAVKG_cjs = require('../chunk-FGTXAVKG.cjs');
|
|
45
|
+
var chunkN2BOTBPG_cjs = require('../chunk-N2BOTBPG.cjs');
|
|
46
46
|
require('../chunk-356N4NPM.cjs');
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
require('../chunk-
|
|
47
|
+
var chunkZHW6TDZ6_cjs = require('../chunk-ZHW6TDZ6.cjs');
|
|
48
|
+
var chunkZXXC2GXB_cjs = require('../chunk-ZXXC2GXB.cjs');
|
|
49
|
+
var chunkLNJKBQ2B_cjs = require('../chunk-LNJKBQ2B.cjs');
|
|
50
|
+
require('../chunk-LJTM5ONX.cjs');
|
|
51
51
|
var chunkTZCFKZ6Z_cjs = require('../chunk-TZCFKZ6Z.cjs');
|
|
52
|
-
var
|
|
53
|
-
require('../chunk-
|
|
52
|
+
var chunkAN3ZH7M7_cjs = require('../chunk-AN3ZH7M7.cjs');
|
|
53
|
+
require('../chunk-IYK6LMQ7.cjs');
|
|
54
54
|
var chunkVHORVGCG_cjs = require('../chunk-VHORVGCG.cjs');
|
|
55
|
-
var
|
|
55
|
+
var chunkCMEINO5I_cjs = require('../chunk-CMEINO5I.cjs');
|
|
56
56
|
var chunk7FYSSI3C_cjs = require('../chunk-7FYSSI3C.cjs');
|
|
57
57
|
require('../chunk-CI33NINL.cjs');
|
|
58
58
|
require('../chunk-VW5CRJBE.cjs');
|
|
59
59
|
require('../chunk-HCX4SMFK.cjs');
|
|
60
60
|
require('../chunk-3VBO3IYQ.cjs');
|
|
61
61
|
require('../chunk-YP5CHEYU.cjs');
|
|
62
|
-
require('../chunk-
|
|
63
|
-
require('../chunk-
|
|
62
|
+
require('../chunk-6RDHWSZM.cjs');
|
|
63
|
+
require('../chunk-JERWCCEJ.cjs');
|
|
64
64
|
require('../chunk-AWXFEAQL.cjs');
|
|
65
65
|
require('../chunk-4FIBOJW6.cjs');
|
|
66
66
|
require('../chunk-N74QRJGP.cjs');
|
|
67
67
|
var chunkGJNCFRJU_cjs = require('../chunk-GJNCFRJU.cjs');
|
|
68
|
-
require('../chunk-
|
|
68
|
+
require('../chunk-HSGJFCVJ.cjs');
|
|
69
69
|
require('../chunk-ILRBGFVD.cjs');
|
|
70
70
|
require('../chunk-ESBXUYOC.cjs');
|
|
71
71
|
var chunkQ47JEE2C_cjs = require('../chunk-Q47JEE2C.cjs');
|
|
@@ -74,28 +74,102 @@ var ans = require('@holoscript/core-types/ans');
|
|
|
74
74
|
var crypto = require('crypto');
|
|
75
75
|
|
|
76
76
|
// src/compiler/index.ts
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
78
|
+
chunkCMEINO5I_cjs.init_CompilerDocumentationGenerator();
|
|
79
|
+
|
|
80
|
+
// src/compiler/SceneIRTsxEmitter.ts
|
|
81
|
+
var GENERATED_HEADER = "// @generated by HoloScript SceneIRTsxEmitter -- DO NOT EDIT";
|
|
82
|
+
function emitSceneIRTsx(root, options = {}) {
|
|
83
|
+
const componentName = sanitizeComponentName(options.componentName ?? root.id ?? "HoloScene");
|
|
84
|
+
const sceneConstName = `${componentName}SceneIR`;
|
|
85
|
+
const imports = [
|
|
86
|
+
options.includeCanvas ?? true ? "import { Canvas } from '@react-three/fiber';" : "",
|
|
87
|
+
"import { HoloSceneIRRenderer } from '@holoscript/r3f-renderer';"
|
|
88
|
+
].filter(Boolean);
|
|
89
|
+
const source = options.sourcePath ? `// source: ${options.sourcePath}
|
|
90
|
+
` : "";
|
|
91
|
+
if (options.includeCanvas === false) {
|
|
92
|
+
return [
|
|
93
|
+
GENERATED_HEADER,
|
|
94
|
+
source.trimEnd(),
|
|
95
|
+
...imports,
|
|
96
|
+
"",
|
|
97
|
+
`const ${sceneConstName} = ${json(root)};`,
|
|
98
|
+
"",
|
|
99
|
+
`export function ${componentName}() {`,
|
|
100
|
+
` return <HoloSceneIRRenderer node={${sceneConstName}} />;`,
|
|
101
|
+
"}",
|
|
102
|
+
"",
|
|
103
|
+
`export default ${componentName};`,
|
|
104
|
+
""
|
|
105
|
+
].filter((line, idx) => line !== "" || idx !== 1).join("\n");
|
|
106
|
+
}
|
|
107
|
+
return [
|
|
108
|
+
GENERATED_HEADER,
|
|
109
|
+
source.trimEnd(),
|
|
110
|
+
...imports,
|
|
111
|
+
"",
|
|
112
|
+
`const ${sceneConstName} = ${json(root)};`,
|
|
113
|
+
"",
|
|
114
|
+
`export function ${componentName}() {`,
|
|
115
|
+
" return (",
|
|
116
|
+
" <Canvas>",
|
|
117
|
+
` <HoloSceneIRRenderer node={${sceneConstName}} />`,
|
|
118
|
+
" </Canvas>",
|
|
119
|
+
" );",
|
|
120
|
+
"}",
|
|
121
|
+
"",
|
|
122
|
+
`export default ${componentName};`,
|
|
123
|
+
""
|
|
124
|
+
].filter((line, idx) => line !== "" || idx !== 1).join("\n");
|
|
125
|
+
}
|
|
126
|
+
function sanitizeComponentName(name) {
|
|
127
|
+
const words = name.replace(/[^A-Za-z0-9_$]+/g, " ").trim().split(/\s+/).filter(Boolean);
|
|
128
|
+
const joined = words.map((word) => word[0].toUpperCase() + word.slice(1)).join("");
|
|
129
|
+
const candidate = joined || "HoloScene";
|
|
130
|
+
return /^[A-Za-z_$]/.test(candidate) ? candidate : `HoloScene${candidate}`;
|
|
131
|
+
}
|
|
132
|
+
function json(value) {
|
|
133
|
+
return JSON.stringify(normalizeValue(value), null, 2).replace(/</g, "\\u003c");
|
|
134
|
+
}
|
|
135
|
+
function normalizeValue(value) {
|
|
136
|
+
if (ArrayBuffer.isView(value) && !(value instanceof DataView)) {
|
|
137
|
+
return Array.from(value);
|
|
138
|
+
}
|
|
139
|
+
if (Array.isArray(value)) {
|
|
140
|
+
return value.map((entry) => normalizeValue(entry));
|
|
141
|
+
}
|
|
142
|
+
if (value && typeof value === "object") {
|
|
143
|
+
const out = {};
|
|
144
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
145
|
+
out[key] = normalizeValue(entry);
|
|
146
|
+
}
|
|
147
|
+
return out;
|
|
148
|
+
}
|
|
149
|
+
return value;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// src/compiler/index.ts
|
|
79
153
|
chunkVHORVGCG_cjs.init_PerceptualColorPass();
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
154
|
+
chunkLNJKBQ2B_cjs.init_UnityCompiler();
|
|
155
|
+
chunkAN3ZH7M7_cjs.init_GodotCompiler();
|
|
156
|
+
chunkZHW6TDZ6_cjs.init_OpenXRCompiler();
|
|
157
|
+
chunkZXXC2GXB_cjs.init_VRChatCompiler();
|
|
158
|
+
chunkJ74S4ZMF_cjs.init_VisionOSCompiler();
|
|
159
|
+
chunkFPGYWNNA_cjs.init_AndroidCompiler();
|
|
160
|
+
chunkQKLEDRHN_cjs.init_AndroidXRCompiler();
|
|
161
|
+
chunkK53L47NH_cjs.init_IOSCompiler();
|
|
162
|
+
chunkNTSLNIY7_cjs.init_WASMCompiler();
|
|
163
|
+
chunkU6CQOM5Q_cjs.init_WebGPUCompiler();
|
|
90
164
|
chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
165
|
+
chunkQ6VW7MGX_cjs.init_SDFCompiler();
|
|
166
|
+
chunkFGTXAVKG_cjs.init_DTDLCompiler();
|
|
167
|
+
chunkN2BOTBPG_cjs.init_URDFCompiler();
|
|
168
|
+
chunkAUMTQV64_cjs.init_StateCompiler();
|
|
95
169
|
|
|
96
170
|
// src/compiler/MultiLayerCompiler.ts
|
|
97
|
-
|
|
98
|
-
var MultiLayerCompiler = class extends
|
|
171
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
172
|
+
var MultiLayerCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
|
|
99
173
|
constructor(_options) {
|
|
100
174
|
super();
|
|
101
175
|
this.compilerName = "MultiLayerCompiler";
|
|
@@ -111,12 +185,12 @@ var MultiLayerCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
|
111
185
|
};
|
|
112
186
|
|
|
113
187
|
// src/compiler/NextJSCompiler.ts
|
|
114
|
-
|
|
188
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
115
189
|
|
|
116
190
|
// src/compiler/Native2DCompiler.ts
|
|
117
|
-
|
|
191
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
118
192
|
chunkQ47JEE2C_cjs.init_safeJsonParse();
|
|
119
|
-
var _Native2DCompiler = class _Native2DCompiler extends
|
|
193
|
+
var _Native2DCompiler = class _Native2DCompiler extends chunkCMEINO5I_cjs.CompilerBase {
|
|
120
194
|
constructor() {
|
|
121
195
|
super(...arguments);
|
|
122
196
|
this.compilerName = "Native2DCompiler";
|
|
@@ -1810,7 +1884,7 @@ function findTrait(composition, traitName2) {
|
|
|
1810
1884
|
const found = traits.find((t) => t.name === traitName2);
|
|
1811
1885
|
return found?.config || null;
|
|
1812
1886
|
}
|
|
1813
|
-
var NextJSCompiler = class extends
|
|
1887
|
+
var NextJSCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
|
|
1814
1888
|
constructor(options = {}) {
|
|
1815
1889
|
super();
|
|
1816
1890
|
this.options = options;
|
|
@@ -1914,12 +1988,12 @@ var NextJSCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
|
1914
1988
|
};
|
|
1915
1989
|
|
|
1916
1990
|
// src/compiler/index.ts
|
|
1917
|
-
|
|
1991
|
+
chunkPHLNABJD_cjs.init_NextJSAPICompiler();
|
|
1918
1992
|
|
|
1919
1993
|
// src/compiler/MCPConfigCompiler.ts
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
var MCPConfigCompiler = class extends
|
|
1994
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
1995
|
+
chunkPHLNABJD_cjs.init_DialectRegistry();
|
|
1996
|
+
var MCPConfigCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
|
|
1923
1997
|
constructor(options = {}) {
|
|
1924
1998
|
super();
|
|
1925
1999
|
this.compilerName = "MCPConfigCompiler";
|
|
@@ -2115,7 +2189,7 @@ var MCPConfigCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
|
2115
2189
|
return void 0;
|
|
2116
2190
|
}
|
|
2117
2191
|
};
|
|
2118
|
-
|
|
2192
|
+
chunkPHLNABJD_cjs.DialectRegistry.register({
|
|
2119
2193
|
name: "mcp-config",
|
|
2120
2194
|
domain: "configuration",
|
|
2121
2195
|
description: "Compiles .holo MCP server connection definitions to IDE-specific client config JSON",
|
|
@@ -2126,10 +2200,1310 @@ chunkCESMPUEZ_cjs.DialectRegistry.register({
|
|
|
2126
2200
|
});
|
|
2127
2201
|
|
|
2128
2202
|
// src/compiler/index.ts
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2203
|
+
chunkPHLNABJD_cjs.init_HoloMCPCompiler();
|
|
2204
|
+
chunkCRUIGXF7_cjs.init_AgentInferenceExportTarget();
|
|
2205
|
+
chunkPHLNABJD_cjs.init_OmnigentAgentYamlCompiler();
|
|
2206
|
+
chunkOQVHCYY4_cjs.init_DaimonSeedCompiler();
|
|
2207
|
+
|
|
2208
|
+
// src/compiler/HSIIRCompiler.ts
|
|
2209
|
+
chunkCMEINO5I_cjs.init_CompilerBase();
|
|
2210
|
+
var HSI_IR_SCHEMA_VERSION = "holoscript.hsi-ir.v0.1.0";
|
|
2211
|
+
var HSI_TRACE_SCHEMA_VERSION = "holoscript.hsi-trace.v0.1.0";
|
|
2212
|
+
var HSI_LEARNING_GRAPH_SCHEMA_VERSION = "holoscript.learning-graph.v0.1.0";
|
|
2213
|
+
var HSI_AUDIT_SCHEMA_VERSION = "holoscript.hsi-audit.v0.1.0";
|
|
2214
|
+
var HSIAdmissionError = class extends Error {
|
|
2215
|
+
constructor(code, message) {
|
|
2216
|
+
super(`[${code}] ${message}`);
|
|
2217
|
+
this.name = "HSIAdmissionError";
|
|
2218
|
+
this.code = code;
|
|
2219
|
+
}
|
|
2220
|
+
};
|
|
2221
|
+
function hsiStableStringify(value) {
|
|
2222
|
+
if (value === null || typeof value !== "object") {
|
|
2223
|
+
return JSON.stringify(value) ?? "null";
|
|
2224
|
+
}
|
|
2225
|
+
if (Array.isArray(value)) {
|
|
2226
|
+
return `[${value.map((item) => hsiStableStringify(item)).join(",")}]`;
|
|
2227
|
+
}
|
|
2228
|
+
const record = value;
|
|
2229
|
+
const keys = Object.keys(record).filter((key) => record[key] !== void 0).sort();
|
|
2230
|
+
return `{${keys.map((key) => `${JSON.stringify(key)}:${hsiStableStringify(record[key])}`).join(",")}}`;
|
|
2231
|
+
}
|
|
2232
|
+
function hsiSha256(value) {
|
|
2233
|
+
return `sha256:${crypto.createHash("sha256").update(hsiStableStringify(value)).digest("hex")}`;
|
|
2234
|
+
}
|
|
2235
|
+
function hsiSourceTextDigest(source) {
|
|
2236
|
+
return `sha256:${crypto.createHash("sha256").update(source.replace(/\r\n/g, "\n")).digest("hex")}`;
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2239
|
+
// src/compiler/HSIIRCompiler.ts
|
|
2240
|
+
var HSI_OBSERVATION_MEDIATOR_EDGE = "shields";
|
|
2241
|
+
var ASSIGN_OPERATORS = /* @__PURE__ */ new Set(["=", "+=", "-=", "*=", "/="]);
|
|
2242
|
+
var BINARY_OPERATORS = /* @__PURE__ */ new Set([
|
|
2243
|
+
"+",
|
|
2244
|
+
"-",
|
|
2245
|
+
"*",
|
|
2246
|
+
"/",
|
|
2247
|
+
"%",
|
|
2248
|
+
"===",
|
|
2249
|
+
"!==",
|
|
2250
|
+
"==",
|
|
2251
|
+
"!=",
|
|
2252
|
+
"<",
|
|
2253
|
+
">",
|
|
2254
|
+
"<=",
|
|
2255
|
+
">=",
|
|
2256
|
+
"&&",
|
|
2257
|
+
"||"
|
|
2258
|
+
]);
|
|
2259
|
+
function spanOf(node) {
|
|
2260
|
+
const loc = node?.loc;
|
|
2261
|
+
if (!loc) return void 0;
|
|
2262
|
+
return {
|
|
2263
|
+
line: loc.start.line,
|
|
2264
|
+
column: loc.start.column,
|
|
2265
|
+
endLine: loc.end.line,
|
|
2266
|
+
endColumn: loc.end.column
|
|
2267
|
+
};
|
|
2268
|
+
}
|
|
2269
|
+
function scalarType(value) {
|
|
2270
|
+
if (value === null) return "null";
|
|
2271
|
+
return typeof value;
|
|
2272
|
+
}
|
|
2273
|
+
function asScalar(value, where) {
|
|
2274
|
+
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
2275
|
+
return value;
|
|
2276
|
+
}
|
|
2277
|
+
throw new HSIAdmissionError(
|
|
2278
|
+
"unsupported-value",
|
|
2279
|
+
`${where}: HS-Core v0 admits scalar values only, got ${Array.isArray(value) ? "array" : typeof value}`
|
|
2280
|
+
);
|
|
2281
|
+
}
|
|
2282
|
+
function asTriple(value, where) {
|
|
2283
|
+
let arr;
|
|
2284
|
+
if (Array.isArray(value)) {
|
|
2285
|
+
arr = value;
|
|
2286
|
+
} else if (typeof value === "object" && value !== null && "x" in value) {
|
|
2287
|
+
const vec = value;
|
|
2288
|
+
arr = [vec["x"], vec["y"], vec["z"]];
|
|
2289
|
+
}
|
|
2290
|
+
if (!arr || arr.length !== 3 || !arr.every((n) => typeof n === "number" && Number.isFinite(n))) {
|
|
2291
|
+
throw new HSIAdmissionError("invalid-spatial", `${where}: position/scale must be a finite numeric triple`);
|
|
2292
|
+
}
|
|
2293
|
+
return [arr[0], arr[1], arr[2]];
|
|
2294
|
+
}
|
|
2295
|
+
function collectSlots(ir, into) {
|
|
2296
|
+
switch (ir.kind) {
|
|
2297
|
+
case "Identifier":
|
|
2298
|
+
into.add(ir.name);
|
|
2299
|
+
return;
|
|
2300
|
+
case "BinaryExpression":
|
|
2301
|
+
collectSlots(ir.left, into);
|
|
2302
|
+
collectSlots(ir.right, into);
|
|
2303
|
+
return;
|
|
2304
|
+
case "UnaryExpression":
|
|
2305
|
+
collectSlots(ir.argument, into);
|
|
2306
|
+
return;
|
|
2307
|
+
case "MemberExpression":
|
|
2308
|
+
collectSlots(ir.object, into);
|
|
2309
|
+
return;
|
|
2310
|
+
case "CallExpression":
|
|
2311
|
+
for (const arg of ir.arguments) collectSlots(arg, into);
|
|
2312
|
+
return;
|
|
2313
|
+
case "Literal":
|
|
2314
|
+
return;
|
|
2315
|
+
}
|
|
2316
|
+
}
|
|
2317
|
+
function assertSlots(ir, allowed, where) {
|
|
2318
|
+
const used = /* @__PURE__ */ new Set();
|
|
2319
|
+
collectSlots(ir, used);
|
|
2320
|
+
for (const name of used) {
|
|
2321
|
+
if (!allowed.has(name)) {
|
|
2322
|
+
throw new HSIAdmissionError("unknown-slot", `${where}: expression reads undeclared slot "${name}"`);
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
return [...used].sort();
|
|
2326
|
+
}
|
|
2327
|
+
function lowerHoloExpression(expr, where) {
|
|
2328
|
+
switch (expr.type) {
|
|
2329
|
+
case "Literal":
|
|
2330
|
+
return { kind: "Literal", value: expr.value };
|
|
2331
|
+
case "Identifier":
|
|
2332
|
+
return { kind: "Identifier", name: expr.name };
|
|
2333
|
+
case "BinaryExpression": {
|
|
2334
|
+
if (!BINARY_OPERATORS.has(expr.operator)) {
|
|
2335
|
+
throw new HSIAdmissionError("unsupported-operator", `${where}: operator "${expr.operator}"`);
|
|
2336
|
+
}
|
|
2337
|
+
return {
|
|
2338
|
+
kind: "BinaryExpression",
|
|
2339
|
+
operator: expr.operator,
|
|
2340
|
+
left: lowerHoloExpression(expr.left, where),
|
|
2341
|
+
right: lowerHoloExpression(expr.right, where)
|
|
2342
|
+
};
|
|
2343
|
+
}
|
|
2344
|
+
case "UnaryExpression":
|
|
2345
|
+
return {
|
|
2346
|
+
kind: "UnaryExpression",
|
|
2347
|
+
operator: expr.operator,
|
|
2348
|
+
argument: lowerHoloExpression(expr.argument, where)
|
|
2349
|
+
};
|
|
2350
|
+
case "MemberExpression": {
|
|
2351
|
+
if (expr.computed) {
|
|
2352
|
+
throw new HSIAdmissionError("unsupported-expression", `${where}: computed member access`);
|
|
2353
|
+
}
|
|
2354
|
+
return {
|
|
2355
|
+
kind: "MemberExpression",
|
|
2356
|
+
object: lowerHoloExpression(expr.object, where),
|
|
2357
|
+
property: expr.property
|
|
2358
|
+
};
|
|
2359
|
+
}
|
|
2360
|
+
default:
|
|
2361
|
+
throw new HSIAdmissionError("unsupported-expression", `${where}: ${expr.type} is outside HS-Core v0`);
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
function lowerEntities(composition) {
|
|
2365
|
+
const templates = /* @__PURE__ */ new Map();
|
|
2366
|
+
for (const template of composition.templates ?? []) {
|
|
2367
|
+
if (templates.has(template.name)) {
|
|
2368
|
+
throw new HSIAdmissionError("duplicate-template", `template "${template.name}" declared twice`);
|
|
2369
|
+
}
|
|
2370
|
+
templates.set(template.name, template);
|
|
2371
|
+
}
|
|
2372
|
+
const entities = /* @__PURE__ */ new Map();
|
|
2373
|
+
for (const obj of composition.objects ?? []) {
|
|
2374
|
+
if (entities.has(obj.name)) {
|
|
2375
|
+
throw new HSIAdmissionError("duplicate-entity", `entity "${obj.name}" declared twice`);
|
|
2376
|
+
}
|
|
2377
|
+
if ((obj.children ?? []).length > 0) {
|
|
2378
|
+
throw new HSIAdmissionError("unsupported-value", `entity "${obj.name}": nested children are outside HS-Core v0`);
|
|
2379
|
+
}
|
|
2380
|
+
const components = {};
|
|
2381
|
+
const traitNames = /* @__PURE__ */ new Set();
|
|
2382
|
+
let template;
|
|
2383
|
+
if (obj.template !== void 0) {
|
|
2384
|
+
template = templates.get(obj.template);
|
|
2385
|
+
if (!template) {
|
|
2386
|
+
throw new HSIAdmissionError("unknown-archetype", `entity "${obj.name}" uses missing template "${obj.template}"`);
|
|
2387
|
+
}
|
|
2388
|
+
for (const prop of template.properties ?? []) {
|
|
2389
|
+
if (prop.key === "position" || prop.key === "scale") continue;
|
|
2390
|
+
components[prop.key] = asScalar(prop.value, `template "${template.name}".${prop.key}`);
|
|
2391
|
+
}
|
|
2392
|
+
for (const trait of template.traits ?? []) traitNames.add(trait.name);
|
|
2393
|
+
}
|
|
2394
|
+
let position;
|
|
2395
|
+
let scale;
|
|
2396
|
+
for (const prop of obj.properties ?? []) {
|
|
2397
|
+
if (prop.key === "position") {
|
|
2398
|
+
position = asTriple(prop.value, `entity "${obj.name}".position`);
|
|
2399
|
+
continue;
|
|
2400
|
+
}
|
|
2401
|
+
if (prop.key === "scale") {
|
|
2402
|
+
scale = asTriple(prop.value, `entity "${obj.name}".scale`);
|
|
2403
|
+
continue;
|
|
2404
|
+
}
|
|
2405
|
+
components[prop.key] = asScalar(prop.value, `entity "${obj.name}".${prop.key}`);
|
|
2406
|
+
}
|
|
2407
|
+
for (const trait of obj.traits ?? []) traitNames.add(trait.name);
|
|
2408
|
+
const opaqueValue = components["opaque"];
|
|
2409
|
+
const opacity = opaqueValue === void 0 ? "unknown" : opaqueValue === true ? "opaque" : "transparent";
|
|
2410
|
+
delete components["opaque"];
|
|
2411
|
+
const role = typeof components["role"] === "string" ? components["role"] : void 0;
|
|
2412
|
+
const entity = {
|
|
2413
|
+
id: `entity:${obj.name}`,
|
|
2414
|
+
name: obj.name,
|
|
2415
|
+
opacity,
|
|
2416
|
+
components,
|
|
2417
|
+
traits: [...traitNames].sort(),
|
|
2418
|
+
sourceSpan: spanOf(obj)
|
|
2419
|
+
};
|
|
2420
|
+
if (obj.template !== void 0) entity.archetype = obj.template;
|
|
2421
|
+
if (role !== void 0) entity.role = role;
|
|
2422
|
+
if (position === void 0 && obj.position !== void 0) {
|
|
2423
|
+
position = asTriple(obj.position, `entity "${obj.name}".position`);
|
|
2424
|
+
}
|
|
2425
|
+
if (scale === void 0 && obj.scale !== void 0) {
|
|
2426
|
+
scale = asTriple(obj.scale, `entity "${obj.name}".scale`);
|
|
2427
|
+
}
|
|
2428
|
+
if (position !== void 0) entity.position = position;
|
|
2429
|
+
if (scale !== void 0) entity.scale = scale;
|
|
2430
|
+
entities.set(obj.name, entity);
|
|
2431
|
+
}
|
|
2432
|
+
return { templates, entities };
|
|
2433
|
+
}
|
|
2434
|
+
function lowerRelations(composition, entities) {
|
|
2435
|
+
const relations = [];
|
|
2436
|
+
const connections = composition.connections ?? [];
|
|
2437
|
+
for (const conn of connections) {
|
|
2438
|
+
for (const endpoint of [conn.from, conn.to]) {
|
|
2439
|
+
if (!entities.has(endpoint)) {
|
|
2440
|
+
throw new HSIAdmissionError(
|
|
2441
|
+
"unknown-relation-endpoint",
|
|
2442
|
+
`connection ${conn.from} -> ${conn.to} references undeclared entity "${endpoint}"`
|
|
2443
|
+
);
|
|
2444
|
+
}
|
|
2445
|
+
}
|
|
2446
|
+
const edgeType = conn.edgeType ?? "connects";
|
|
2447
|
+
relations.push({
|
|
2448
|
+
id: `relation:${conn.from}->${conn.to}:${edgeType}`,
|
|
2449
|
+
from: conn.from,
|
|
2450
|
+
to: conn.to,
|
|
2451
|
+
edgeType,
|
|
2452
|
+
sourceSpan: spanOf(conn)
|
|
2453
|
+
});
|
|
2454
|
+
}
|
|
2455
|
+
return relations;
|
|
2456
|
+
}
|
|
2457
|
+
function lowerState(composition) {
|
|
2458
|
+
const fields = [];
|
|
2459
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2460
|
+
for (const prop of composition.state?.properties ?? []) {
|
|
2461
|
+
if (seen.has(prop.key)) {
|
|
2462
|
+
throw new HSIAdmissionError("duplicate-state-key", `state key "${prop.key}" declared twice`);
|
|
2463
|
+
}
|
|
2464
|
+
seen.add(prop.key);
|
|
2465
|
+
const baseline = asScalar(prop.value, `state.${prop.key}`);
|
|
2466
|
+
fields.push({
|
|
2467
|
+
id: `state:world.${prop.key}`,
|
|
2468
|
+
key: prop.key,
|
|
2469
|
+
baseline,
|
|
2470
|
+
valueType: scalarType(baseline),
|
|
2471
|
+
reactive: prop.reactive === true,
|
|
2472
|
+
sourceSpan: spanOf(prop)
|
|
2473
|
+
});
|
|
2474
|
+
}
|
|
2475
|
+
return fields;
|
|
2476
|
+
}
|
|
2477
|
+
function deriveObservationPolicy(entities, relations) {
|
|
2478
|
+
const rules = [];
|
|
2479
|
+
const observers = [...entities.values()].filter((e) => e.role === "agent");
|
|
2480
|
+
const mediatorsByTarget = /* @__PURE__ */ new Map();
|
|
2481
|
+
for (const rel of relations) {
|
|
2482
|
+
if (rel.edgeType !== HSI_OBSERVATION_MEDIATOR_EDGE) continue;
|
|
2483
|
+
const list = mediatorsByTarget.get(rel.to) ?? [];
|
|
2484
|
+
list.push(entities.get(rel.from));
|
|
2485
|
+
mediatorsByTarget.set(rel.to, list);
|
|
2486
|
+
}
|
|
2487
|
+
for (const observer of observers) {
|
|
2488
|
+
for (const observed of entities.values()) {
|
|
2489
|
+
if (observed.name === observer.name) continue;
|
|
2490
|
+
if (observed.role === "barrier") continue;
|
|
2491
|
+
const mediators = (mediatorsByTarget.get(observed.name) ?? []).slice().sort((a, b) => a.name.localeCompare(b.name));
|
|
2492
|
+
const access = mediators.some((m) => m.opacity === "opaque") ? "blocked" : mediators.some((m) => m.opacity === "unknown") ? "unknown" : "visible";
|
|
2493
|
+
rules.push({
|
|
2494
|
+
id: `obs:${observer.name}->${observed.name}`,
|
|
2495
|
+
observer: observer.name,
|
|
2496
|
+
observed: observed.name,
|
|
2497
|
+
access,
|
|
2498
|
+
mediators: mediators.map((m) => m.name)
|
|
2499
|
+
});
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2502
|
+
return rules;
|
|
2503
|
+
}
|
|
2504
|
+
function lowerStatements(statements, handlerEvent, stateSlots, counter) {
|
|
2505
|
+
const effects = [];
|
|
2506
|
+
for (const stmt of statements) {
|
|
2507
|
+
const ordinal = counter.n++;
|
|
2508
|
+
const id = `effect:${handlerEvent}#${ordinal}`;
|
|
2509
|
+
switch (stmt.type) {
|
|
2510
|
+
case "Assignment": {
|
|
2511
|
+
if (!ASSIGN_OPERATORS.has(stmt.operator)) {
|
|
2512
|
+
throw new HSIAdmissionError("unsupported-operator", `${id}: assignment operator "${stmt.operator}"`);
|
|
2513
|
+
}
|
|
2514
|
+
const target = stmt.target.startsWith("state.") ? stmt.target.slice("state.".length) : stmt.target;
|
|
2515
|
+
if (!stateSlots.has(target)) {
|
|
2516
|
+
throw new HSIAdmissionError("unknown-assignment-target", `${id}: "${stmt.target}" is not a declared state key`);
|
|
2517
|
+
}
|
|
2518
|
+
const value = lowerHoloExpression(stmt.value, id);
|
|
2519
|
+
assertSlots(value, stateSlots, id);
|
|
2520
|
+
effects.push({ kind: "assign", id, target, operator: stmt.operator, value, sourceSpan: spanOf(stmt) });
|
|
2521
|
+
break;
|
|
2522
|
+
}
|
|
2523
|
+
case "EmitStatement": {
|
|
2524
|
+
effects.push({ kind: "emit", id, event: stmt.event, sourceSpan: spanOf(stmt) });
|
|
2525
|
+
break;
|
|
2526
|
+
}
|
|
2527
|
+
case "IfStatement": {
|
|
2528
|
+
const condition = lowerHoloExpression(stmt.condition, id);
|
|
2529
|
+
assertSlots(condition, stateSlots, id);
|
|
2530
|
+
effects.push({
|
|
2531
|
+
kind: "branch",
|
|
2532
|
+
id,
|
|
2533
|
+
condition,
|
|
2534
|
+
then: lowerStatements(stmt.consequent, handlerEvent, stateSlots, counter),
|
|
2535
|
+
else: lowerStatements(stmt.alternate ?? [], handlerEvent, stateSlots, counter),
|
|
2536
|
+
sourceSpan: spanOf(stmt)
|
|
2537
|
+
});
|
|
2538
|
+
break;
|
|
2539
|
+
}
|
|
2540
|
+
default:
|
|
2541
|
+
throw new HSIAdmissionError("unsupported-statement", `${id}: ${stmt.type} is outside HS-Core v0`);
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
return effects;
|
|
2545
|
+
}
|
|
2546
|
+
function lowerEventHandlers(composition, stateSlots) {
|
|
2547
|
+
const logic = composition.logic;
|
|
2548
|
+
const handlers = [];
|
|
2549
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2550
|
+
for (const handler of logic?.handlers ?? []) {
|
|
2551
|
+
if (seen.has(handler.event)) {
|
|
2552
|
+
throw new HSIAdmissionError("duplicate-handler", `handler "${handler.event}" declared twice`);
|
|
2553
|
+
}
|
|
2554
|
+
seen.add(handler.event);
|
|
2555
|
+
handlers.push({
|
|
2556
|
+
id: `event:${handler.event}`,
|
|
2557
|
+
event: handler.event,
|
|
2558
|
+
effects: lowerStatements(handler.body, handler.event, stateSlots, { n: 0 }),
|
|
2559
|
+
sourceSpan: spanOf(handler)
|
|
2560
|
+
});
|
|
2561
|
+
}
|
|
2562
|
+
return handlers;
|
|
2563
|
+
}
|
|
2564
|
+
function lowerMachine(machine) {
|
|
2565
|
+
const stateNames = Object.keys(machine.states ?? {});
|
|
2566
|
+
if (stateNames.length === 0) {
|
|
2567
|
+
throw new HSIAdmissionError("admission-skewed", `state machine "${machine.name}" declares no states`);
|
|
2568
|
+
}
|
|
2569
|
+
if (!stateNames.includes(machine.initialState)) {
|
|
2570
|
+
throw new HSIAdmissionError(
|
|
2571
|
+
"unknown-initial-state",
|
|
2572
|
+
`state machine "${machine.name}": initial state "${machine.initialState}" is not declared`
|
|
2573
|
+
);
|
|
2574
|
+
}
|
|
2575
|
+
const inputs = (machine.inputs ?? []).map((input) => ({
|
|
2576
|
+
id: `input:${machine.name}.${input.name}`,
|
|
2577
|
+
name: input.name,
|
|
2578
|
+
inputType: input.inputType,
|
|
2579
|
+
baseline: input.default !== void 0 ? input.default : input.inputType === "bool" || input.inputType === "trigger" ? false : 0
|
|
2580
|
+
}));
|
|
2581
|
+
const inputSlots = new Set(inputs.map((i) => i.name));
|
|
2582
|
+
const allTransitions = [];
|
|
2583
|
+
for (const t of machine.transitions ?? []) {
|
|
2584
|
+
allTransitions.push({ from: t.from && t.from !== "any" ? t.from : t.from ?? "any", t });
|
|
2585
|
+
}
|
|
2586
|
+
for (const stateName of stateNames) {
|
|
2587
|
+
for (const t of machine.states[stateName]?.transitions ?? []) {
|
|
2588
|
+
allTransitions.push({ from: t.from ?? stateName, t });
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
const ordinals = /* @__PURE__ */ new Map();
|
|
2592
|
+
const transitions = allTransitions.map(({ from, t }, declarationOrdinal) => {
|
|
2593
|
+
if (from !== "any" && !stateNames.includes(from)) {
|
|
2594
|
+
throw new HSIAdmissionError(
|
|
2595
|
+
"unknown-transition-endpoint",
|
|
2596
|
+
`state machine "${machine.name}": transition from undeclared state "${from}"`
|
|
2597
|
+
);
|
|
2598
|
+
}
|
|
2599
|
+
if (!stateNames.includes(t.target)) {
|
|
2600
|
+
throw new HSIAdmissionError(
|
|
2601
|
+
"unknown-transition-endpoint",
|
|
2602
|
+
`state machine "${machine.name}": transition to undeclared state "${t.target}"`
|
|
2603
|
+
);
|
|
2604
|
+
}
|
|
2605
|
+
const baseId = `transition:${machine.name}.${from}->${t.target}`;
|
|
2606
|
+
const ordinal = ordinals.get(baseId) ?? 0;
|
|
2607
|
+
ordinals.set(baseId, ordinal + 1);
|
|
2608
|
+
const id = `${baseId}#${ordinal}`;
|
|
2609
|
+
let guard;
|
|
2610
|
+
if (t.condition) {
|
|
2611
|
+
guard = lowerHoloExpression(t.condition, id);
|
|
2612
|
+
} else if ((t.conditions ?? []).length > 0) {
|
|
2613
|
+
for (const cond of t.conditions) {
|
|
2614
|
+
const clause = {
|
|
2615
|
+
kind: "BinaryExpression",
|
|
2616
|
+
operator: cond.operator,
|
|
2617
|
+
left: { kind: "Identifier", name: cond.parameter },
|
|
2618
|
+
right: { kind: "Literal", value: cond.value }
|
|
2619
|
+
};
|
|
2620
|
+
guard = guard ? { kind: "BinaryExpression", operator: cond.chain === "or" ? "||" : "&&", left: guard, right: clause } : clause;
|
|
2621
|
+
}
|
|
2622
|
+
}
|
|
2623
|
+
if (!guard) {
|
|
2624
|
+
throw new HSIAdmissionError("admission-skewed", `${id}: transition has neither guard nor trigger condition`);
|
|
2625
|
+
}
|
|
2626
|
+
const reads = assertSlots(guard, inputSlots, id);
|
|
2627
|
+
const transition = {
|
|
2628
|
+
id,
|
|
2629
|
+
from,
|
|
2630
|
+
target: t.target,
|
|
2631
|
+
priority: declarationOrdinal,
|
|
2632
|
+
guard,
|
|
2633
|
+
reads,
|
|
2634
|
+
sourceSpan: spanOf(t)
|
|
2635
|
+
};
|
|
2636
|
+
if (t.event !== void 0) transition.event = t.event;
|
|
2637
|
+
return transition;
|
|
2638
|
+
});
|
|
2639
|
+
return {
|
|
2640
|
+
id: `machine:${machine.name}`,
|
|
2641
|
+
name: machine.name,
|
|
2642
|
+
initialState: machine.initialState,
|
|
2643
|
+
states: [...stateNames].sort(),
|
|
2644
|
+
inputs,
|
|
2645
|
+
transitions,
|
|
2646
|
+
sourceSpan: spanOf(machine)
|
|
2647
|
+
};
|
|
2648
|
+
}
|
|
2649
|
+
function lowerPredicates(composition, stateSlots) {
|
|
2650
|
+
const predicates = [];
|
|
2651
|
+
const slotList = [...stateSlots];
|
|
2652
|
+
const lowerClause = (kind, name, expr) => {
|
|
2653
|
+
const id = `${kind}:${name}`;
|
|
2654
|
+
let ir;
|
|
2655
|
+
try {
|
|
2656
|
+
ir = chunkX5ZLSPU2_cjs.parseExpressionToIR(expr, slotList);
|
|
2657
|
+
} catch (error) {
|
|
2658
|
+
if (error instanceof chunkX5ZLSPU2_cjs.ExpressionParseError) {
|
|
2659
|
+
throw new HSIAdmissionError("unparseable-clause", `${id}: ${error.message}`);
|
|
2660
|
+
}
|
|
2661
|
+
throw error;
|
|
2662
|
+
}
|
|
2663
|
+
return { id, name, kind, expression: ir, reads: assertSlots(ir, stateSlots, id), sourceSpan: spanOf(composition.contract) };
|
|
2664
|
+
};
|
|
2665
|
+
for (const clause of composition.contract?.preconditions ?? []) {
|
|
2666
|
+
predicates.push(lowerClause("precondition", clause.name, clause.expr));
|
|
2667
|
+
}
|
|
2668
|
+
for (const clause of composition.contract?.invariants ?? []) {
|
|
2669
|
+
predicates.push(lowerClause("invariant", clause.name, clause.expr));
|
|
2670
|
+
}
|
|
2671
|
+
for (const achievement of composition.achievements ?? []) {
|
|
2672
|
+
const id = `goal:${achievement.name}`;
|
|
2673
|
+
const ir = lowerHoloExpression(achievement.condition, id);
|
|
2674
|
+
predicates.push({
|
|
2675
|
+
id,
|
|
2676
|
+
name: achievement.name,
|
|
2677
|
+
kind: "goal",
|
|
2678
|
+
expression: ir,
|
|
2679
|
+
reads: assertSlots(ir, stateSlots, id),
|
|
2680
|
+
sourceSpan: spanOf(achievement)
|
|
2681
|
+
});
|
|
2682
|
+
}
|
|
2683
|
+
return predicates;
|
|
2684
|
+
}
|
|
2685
|
+
function lowerCompositionToHSIIR(composition, options = {}) {
|
|
2686
|
+
if (!composition || composition.type !== "Composition" || typeof composition.name !== "string" || composition.name.length === 0) {
|
|
2687
|
+
throw new HSIAdmissionError("empty-world", "input is not a named HoloComposition");
|
|
2688
|
+
}
|
|
2689
|
+
const { entities } = lowerEntities(composition);
|
|
2690
|
+
const stateFields = lowerState(composition);
|
|
2691
|
+
if (entities.size === 0 && stateFields.length === 0) {
|
|
2692
|
+
throw new HSIAdmissionError("empty-world", `composition "${composition.name}" declares no entities and no state`);
|
|
2693
|
+
}
|
|
2694
|
+
const relations = lowerRelations(composition, entities);
|
|
2695
|
+
const observationPolicy = deriveObservationPolicy(entities, relations);
|
|
2696
|
+
const stateSlots = new Set(stateFields.map((f) => f.key));
|
|
2697
|
+
const eventHandlers = lowerEventHandlers(composition, stateSlots);
|
|
2698
|
+
const machines = (composition.stateMachines ?? []).map(lowerMachine);
|
|
2699
|
+
const predicates = lowerPredicates(composition, stateSlots);
|
|
2700
|
+
const sourceDigest = options.sourceText !== void 0 ? hsiSourceTextDigest(options.sourceText) : hsiSha256({ compositionName: composition.name, note: "no-source-text-provided" });
|
|
2701
|
+
const byId = (items) => [...items].sort((a, b) => a.id.localeCompare(b.id));
|
|
2702
|
+
const docWithoutDigest = {
|
|
2703
|
+
schemaVersion: HSI_IR_SCHEMA_VERSION,
|
|
2704
|
+
kind: "HSIIR",
|
|
2705
|
+
world: { name: composition.name, sourceDigest },
|
|
2706
|
+
entities: byId([...entities.values()]),
|
|
2707
|
+
relations: byId(relations),
|
|
2708
|
+
state: byId(stateFields),
|
|
2709
|
+
observationPolicy: byId(observationPolicy),
|
|
2710
|
+
eventHandlers: byId(eventHandlers),
|
|
2711
|
+
machines: byId(machines),
|
|
2712
|
+
predicates: byId(predicates),
|
|
2713
|
+
declaredUnknowns: [
|
|
2714
|
+
"action-capabilities",
|
|
2715
|
+
"action-costs",
|
|
2716
|
+
"beliefs",
|
|
2717
|
+
"first-class-observations",
|
|
2718
|
+
"memory-events",
|
|
2719
|
+
"receipt-shape"
|
|
2720
|
+
],
|
|
2721
|
+
provenance: { compiler: "HSIIRCompiler" }
|
|
2722
|
+
};
|
|
2723
|
+
const deterministicDigest = hsiSha256(docWithoutDigest);
|
|
2724
|
+
return {
|
|
2725
|
+
...docWithoutDigest,
|
|
2726
|
+
provenance: { compiler: "HSIIRCompiler", deterministicDigest }
|
|
2727
|
+
};
|
|
2728
|
+
}
|
|
2729
|
+
var HSIIRCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
|
|
2730
|
+
constructor(options = {}) {
|
|
2731
|
+
super();
|
|
2732
|
+
this.compilerName = "HSIIRCompiler";
|
|
2733
|
+
this.options = options;
|
|
2734
|
+
}
|
|
2735
|
+
getRequiredCapability() {
|
|
2736
|
+
return ans.ANSCapabilityPath.HSI_IR;
|
|
2737
|
+
}
|
|
2738
|
+
compile(composition, agentToken, outputPath) {
|
|
2739
|
+
this.validateCompilerAccess(agentToken, outputPath);
|
|
2740
|
+
return JSON.stringify(lowerCompositionToHSIIR(composition, this.options), null, 2);
|
|
2741
|
+
}
|
|
2742
|
+
compileToFiles(composition, agentToken = "") {
|
|
2743
|
+
return { [this.defaultOutputFileName()]: this.compile(composition, agentToken) };
|
|
2744
|
+
}
|
|
2745
|
+
defaultOutputFileName() {
|
|
2746
|
+
return "hsi-ir.json";
|
|
2747
|
+
}
|
|
2748
|
+
};
|
|
2749
|
+
function createHSIIRCompiler(options) {
|
|
2750
|
+
return new HSIIRCompiler(options);
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2753
|
+
// src/compiler/HSIExactTrace.ts
|
|
2754
|
+
function snapshot(world) {
|
|
2755
|
+
const state = {};
|
|
2756
|
+
for (const key of Object.keys(world.state).sort()) state[key] = world.state[key];
|
|
2757
|
+
const machineStates = {};
|
|
2758
|
+
for (const name of [...world.machines.keys()].sort()) {
|
|
2759
|
+
machineStates[name] = world.machines.get(name).current;
|
|
2760
|
+
}
|
|
2761
|
+
return { state, machineStates, stateDigest: hsiSha256({ state, machineStates }) };
|
|
2762
|
+
}
|
|
2763
|
+
function evaluateGuard(guard, context) {
|
|
2764
|
+
return chunkX5ZLSPU2_cjs.evaluateExpressionIR(guard, context) === true;
|
|
2765
|
+
}
|
|
2766
|
+
function applyOperator(operator, before, operand, where) {
|
|
2767
|
+
if (operator === "=") {
|
|
2768
|
+
if (operand === null || typeof operand === "string" || typeof operand === "number" || typeof operand === "boolean") {
|
|
2769
|
+
return operand;
|
|
2770
|
+
}
|
|
2771
|
+
throw new HSIAdmissionError("unsupported-value", `${where}: assignment produced a non-scalar value`);
|
|
2772
|
+
}
|
|
2773
|
+
if (typeof before !== "number" || typeof operand !== "number" || !Number.isFinite(operand)) {
|
|
2774
|
+
throw new HSIAdmissionError(
|
|
2775
|
+
"unsupported-value",
|
|
2776
|
+
`${where}: compound assignment requires numeric operands (got ${typeof before} ${operator} ${typeof operand})`
|
|
2777
|
+
);
|
|
2778
|
+
}
|
|
2779
|
+
switch (operator) {
|
|
2780
|
+
case "+=":
|
|
2781
|
+
return before + operand;
|
|
2782
|
+
case "-=":
|
|
2783
|
+
return before - operand;
|
|
2784
|
+
case "*=":
|
|
2785
|
+
return before * operand;
|
|
2786
|
+
case "/=": {
|
|
2787
|
+
if (operand === 0) {
|
|
2788
|
+
throw new HSIAdmissionError("unsupported-value", `${where}: division by zero`);
|
|
2789
|
+
}
|
|
2790
|
+
return before / operand;
|
|
2791
|
+
}
|
|
2792
|
+
}
|
|
2793
|
+
}
|
|
2794
|
+
function runEffects(effects, world, records, emitted) {
|
|
2795
|
+
for (const effect of effects) {
|
|
2796
|
+
switch (effect.kind) {
|
|
2797
|
+
case "assign": {
|
|
2798
|
+
const before = world.state[effect.target];
|
|
2799
|
+
const operand = chunkX5ZLSPU2_cjs.evaluateExpressionIR(effect.value, world.state);
|
|
2800
|
+
const after = applyOperator(effect.operator, before, operand, effect.id);
|
|
2801
|
+
world.state[effect.target] = after;
|
|
2802
|
+
records.push({ sourceId: effect.id, target: effect.target, before, after });
|
|
2803
|
+
break;
|
|
2804
|
+
}
|
|
2805
|
+
case "emit": {
|
|
2806
|
+
emitted.push(effect.event);
|
|
2807
|
+
break;
|
|
2808
|
+
}
|
|
2809
|
+
case "branch": {
|
|
2810
|
+
const taken = evaluateGuard(effect.condition, world.state);
|
|
2811
|
+
runEffects(taken ? effect.then : effect.else, world, records, emitted);
|
|
2812
|
+
break;
|
|
2813
|
+
}
|
|
2814
|
+
}
|
|
2815
|
+
}
|
|
2816
|
+
}
|
|
2817
|
+
function evaluateTransitions(world, ir) {
|
|
2818
|
+
const fired = [];
|
|
2819
|
+
for (const machineIR of ir.machines) {
|
|
2820
|
+
const runtime = world.machines.get(machineIR.name);
|
|
2821
|
+
const context = { ...runtime.inputs };
|
|
2822
|
+
for (const trigger of runtime.triggers) context[trigger] = true;
|
|
2823
|
+
const candidates = [...machineIR.transitions].sort((a, b) => a.priority - b.priority);
|
|
2824
|
+
for (const transition of candidates) {
|
|
2825
|
+
if (transition.from !== "any" && transition.from !== runtime.current) continue;
|
|
2826
|
+
if (!transition.guard) continue;
|
|
2827
|
+
if (evaluateGuard(transition.guard, context)) {
|
|
2828
|
+
fired.push({
|
|
2829
|
+
machine: machineIR.name,
|
|
2830
|
+
transitionId: transition.id,
|
|
2831
|
+
from: runtime.current,
|
|
2832
|
+
to: transition.target
|
|
2833
|
+
});
|
|
2834
|
+
runtime.current = transition.target;
|
|
2835
|
+
break;
|
|
2836
|
+
}
|
|
2837
|
+
}
|
|
2838
|
+
runtime.triggers.clear();
|
|
2839
|
+
}
|
|
2840
|
+
return fired;
|
|
2841
|
+
}
|
|
2842
|
+
function checkInvariants(world, ir) {
|
|
2843
|
+
const violations = [];
|
|
2844
|
+
for (const predicate of ir.predicates) {
|
|
2845
|
+
if (predicate.kind !== "invariant") continue;
|
|
2846
|
+
if (!evaluateGuard(predicate.expression, world.state)) violations.push(predicate.id);
|
|
2847
|
+
}
|
|
2848
|
+
return violations;
|
|
2849
|
+
}
|
|
2850
|
+
function runExactTrace(ir, scenario) {
|
|
2851
|
+
const world = { state: {}, machines: /* @__PURE__ */ new Map() };
|
|
2852
|
+
for (const field of ir.state) world.state[field.key] = field.baseline;
|
|
2853
|
+
for (const machine of ir.machines) {
|
|
2854
|
+
const inputs = {};
|
|
2855
|
+
for (const input of machine.inputs) {
|
|
2856
|
+
inputs[input.name] = input.inputType === "trigger" ? false : input.baseline;
|
|
2857
|
+
}
|
|
2858
|
+
world.machines.set(machine.name, {
|
|
2859
|
+
name: machine.name,
|
|
2860
|
+
current: machine.initialState,
|
|
2861
|
+
inputs,
|
|
2862
|
+
triggers: /* @__PURE__ */ new Set()
|
|
2863
|
+
});
|
|
2864
|
+
}
|
|
2865
|
+
const preconditionResults = ir.predicates.filter((p) => p.kind === "precondition").map((p) => ({ id: p.id, holds: evaluateGuard(p.expression, world.state) }));
|
|
2866
|
+
const initial = snapshot(world);
|
|
2867
|
+
const steps = [];
|
|
2868
|
+
let valid = preconditionResults.every((r) => r.holds);
|
|
2869
|
+
scenario.forEach((step, ordinal) => {
|
|
2870
|
+
const effects = [];
|
|
2871
|
+
const emitted = [];
|
|
2872
|
+
let transitions = [];
|
|
2873
|
+
switch (step.kind) {
|
|
2874
|
+
case "set-input": {
|
|
2875
|
+
const machine = world.machines.get(step.machine);
|
|
2876
|
+
if (!machine || !(step.input in machine.inputs)) {
|
|
2877
|
+
throw new HSIAdmissionError(
|
|
2878
|
+
"unknown-slot",
|
|
2879
|
+
`scenario step ${ordinal}: unknown machine input ${step.machine}.${step.input}`
|
|
2880
|
+
);
|
|
2881
|
+
}
|
|
2882
|
+
machine.inputs[step.input] = step.value;
|
|
2883
|
+
transitions = evaluateTransitions(world, ir);
|
|
2884
|
+
break;
|
|
2885
|
+
}
|
|
2886
|
+
case "fire-trigger": {
|
|
2887
|
+
const machine = world.machines.get(step.machine);
|
|
2888
|
+
const declared = ir.machines.find((m) => m.name === step.machine)?.inputs.find((i) => i.name === step.input && i.inputType === "trigger");
|
|
2889
|
+
if (!machine || !declared) {
|
|
2890
|
+
throw new HSIAdmissionError(
|
|
2891
|
+
"unknown-slot",
|
|
2892
|
+
`scenario step ${ordinal}: unknown trigger ${step.machine}.${step.input}`
|
|
2893
|
+
);
|
|
2894
|
+
}
|
|
2895
|
+
machine.triggers.add(step.input);
|
|
2896
|
+
transitions = evaluateTransitions(world, ir);
|
|
2897
|
+
break;
|
|
2898
|
+
}
|
|
2899
|
+
case "fire-event": {
|
|
2900
|
+
const handler = ir.eventHandlers.find((h) => h.event === step.event);
|
|
2901
|
+
if (!handler) {
|
|
2902
|
+
throw new HSIAdmissionError(
|
|
2903
|
+
"unknown-slot",
|
|
2904
|
+
`scenario step ${ordinal}: no handler for event "${step.event}"`
|
|
2905
|
+
);
|
|
2906
|
+
}
|
|
2907
|
+
runEffects(handler.effects, world, effects, emitted);
|
|
2908
|
+
break;
|
|
2909
|
+
}
|
|
2910
|
+
}
|
|
2911
|
+
const invariantViolations = checkInvariants(world, ir);
|
|
2912
|
+
if (invariantViolations.length > 0) valid = false;
|
|
2913
|
+
steps.push({
|
|
2914
|
+
ordinal,
|
|
2915
|
+
step,
|
|
2916
|
+
transitions,
|
|
2917
|
+
effects,
|
|
2918
|
+
emitted,
|
|
2919
|
+
invariantViolations,
|
|
2920
|
+
stateDigest: snapshot(world).stateDigest
|
|
2921
|
+
});
|
|
2922
|
+
});
|
|
2923
|
+
const final = snapshot(world);
|
|
2924
|
+
const traceWithoutDigest = {
|
|
2925
|
+
schemaVersion: HSI_TRACE_SCHEMA_VERSION,
|
|
2926
|
+
kind: "HSITrace",
|
|
2927
|
+
worldDigest: ir.provenance.deterministicDigest,
|
|
2928
|
+
preconditionResults,
|
|
2929
|
+
initial,
|
|
2930
|
+
steps,
|
|
2931
|
+
final,
|
|
2932
|
+
valid
|
|
2933
|
+
};
|
|
2934
|
+
return { ...traceWithoutDigest, deterministicDigest: hsiSha256(traceWithoutDigest) };
|
|
2935
|
+
}
|
|
2936
|
+
function splitFor(nodeId, worldDigest) {
|
|
2937
|
+
const digest = crypto.createHash("sha256").update(`${nodeId}|${worldDigest}`).digest();
|
|
2938
|
+
return digest[0] % 4 === 0 ? "eval" : "train";
|
|
2939
|
+
}
|
|
2940
|
+
function collectAssignTargets(effects, into, reads) {
|
|
2941
|
+
for (const effect of effects) {
|
|
2942
|
+
if (effect.kind === "assign") {
|
|
2943
|
+
into.add(effect.target);
|
|
2944
|
+
const stack = [effect.value];
|
|
2945
|
+
while (stack.length > 0) {
|
|
2946
|
+
const node = stack.pop();
|
|
2947
|
+
if (node.kind === "Identifier") reads.add(node.name);
|
|
2948
|
+
else if (node.kind === "BinaryExpression") stack.push(node.left, node.right);
|
|
2949
|
+
else if (node.kind === "UnaryExpression") stack.push(node.argument);
|
|
2950
|
+
else if (node.kind === "MemberExpression") stack.push(node.object);
|
|
2951
|
+
else if (node.kind === "CallExpression") stack.push(...node.arguments);
|
|
2952
|
+
}
|
|
2953
|
+
} else if (effect.kind === "branch") {
|
|
2954
|
+
collectAssignTargets(effect.then, into, reads);
|
|
2955
|
+
collectAssignTargets(effect.else, into, reads);
|
|
2956
|
+
}
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2959
|
+
function projectLearningGraph(ir) {
|
|
2960
|
+
const worldDigest = ir.provenance.deterministicDigest;
|
|
2961
|
+
const nodes = [];
|
|
2962
|
+
const edges = [];
|
|
2963
|
+
const addNode = (node) => {
|
|
2964
|
+
nodes.push({ ...node, split: splitFor(node.id, worldDigest) });
|
|
2965
|
+
};
|
|
2966
|
+
const addEdge = (edgeType, from, to, label) => {
|
|
2967
|
+
const edge = { id: `edge:${edgeType}:${from}->${to}`, edgeType, from, to };
|
|
2968
|
+
if (label !== void 0) edge.label = label;
|
|
2969
|
+
edges.push(edge);
|
|
2970
|
+
};
|
|
2971
|
+
const worldId = `entity:${ir.world.name}`;
|
|
2972
|
+
addNode({ id: worldId, nodeType: "entity", baseline: null, unknowns: [] });
|
|
2973
|
+
for (const entity of ir.entities) {
|
|
2974
|
+
addNode({
|
|
2975
|
+
id: entity.id,
|
|
2976
|
+
nodeType: "entity",
|
|
2977
|
+
baseline: null,
|
|
2978
|
+
unknowns: entity.opacity === "unknown" ? ["opacity"] : [],
|
|
2979
|
+
sourceSpan: entity.sourceSpan
|
|
2980
|
+
});
|
|
2981
|
+
addEdge("contains", worldId, entity.id);
|
|
2982
|
+
}
|
|
2983
|
+
for (const field of ir.state) {
|
|
2984
|
+
addNode({
|
|
2985
|
+
id: field.id,
|
|
2986
|
+
nodeType: "state",
|
|
2987
|
+
baseline: field.baseline,
|
|
2988
|
+
unknowns: [],
|
|
2989
|
+
sourceSpan: field.sourceSpan
|
|
2990
|
+
});
|
|
2991
|
+
addEdge("contains", worldId, field.id);
|
|
2992
|
+
}
|
|
2993
|
+
for (const rule of ir.observationPolicy) {
|
|
2994
|
+
addNode({
|
|
2995
|
+
id: rule.id,
|
|
2996
|
+
nodeType: "observation",
|
|
2997
|
+
baseline: null,
|
|
2998
|
+
unknowns: rule.access === "unknown" ? ["access"] : []
|
|
2999
|
+
});
|
|
3000
|
+
addEdge("observes", `entity:${rule.observer}`, rule.id, rule.access);
|
|
3001
|
+
addEdge("refers-to", rule.id, `entity:${rule.observed}`);
|
|
3002
|
+
for (const mediator of rule.mediators) {
|
|
3003
|
+
addEdge("refers-to", rule.id, `entity:${mediator}`, "mediator");
|
|
3004
|
+
}
|
|
3005
|
+
}
|
|
3006
|
+
for (const handler of ir.eventHandlers) {
|
|
3007
|
+
addNode({ id: handler.id, nodeType: "event", baseline: null, unknowns: [], sourceSpan: handler.sourceSpan });
|
|
3008
|
+
const targets = /* @__PURE__ */ new Set();
|
|
3009
|
+
const reads = /* @__PURE__ */ new Set();
|
|
3010
|
+
collectAssignTargets(handler.effects, targets, reads);
|
|
3011
|
+
for (const target of [...targets].sort()) {
|
|
3012
|
+
addEdge("affects", handler.id, `state:world.${target}`);
|
|
3013
|
+
}
|
|
3014
|
+
for (const read of [...reads].sort()) {
|
|
3015
|
+
if (!targets.has(read)) addEdge("requires", handler.id, `state:world.${read}`);
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
for (const machine of ir.machines) {
|
|
3019
|
+
for (const transition of machine.transitions) {
|
|
3020
|
+
addNode({
|
|
3021
|
+
id: transition.id,
|
|
3022
|
+
nodeType: "action",
|
|
3023
|
+
baseline: null,
|
|
3024
|
+
unknowns: [],
|
|
3025
|
+
sourceSpan: transition.sourceSpan
|
|
3026
|
+
});
|
|
3027
|
+
for (const read of transition.reads) {
|
|
3028
|
+
addEdge("requires", transition.id, `input:${machine.name}.${read}`);
|
|
3029
|
+
}
|
|
3030
|
+
addEdge("causes", transition.id, `machineState:${machine.name}.${transition.target}`);
|
|
3031
|
+
if (transition.from !== "any") {
|
|
3032
|
+
addEdge("precedes", `machineState:${machine.name}.${transition.from}`, transition.id);
|
|
3033
|
+
}
|
|
3034
|
+
}
|
|
3035
|
+
for (const stateName of machine.states) {
|
|
3036
|
+
addNode({ id: `machineState:${machine.name}.${stateName}`, nodeType: "state", baseline: null, unknowns: [] });
|
|
3037
|
+
addEdge("contains", worldId, `machineState:${machine.name}.${stateName}`);
|
|
3038
|
+
}
|
|
3039
|
+
for (const input of machine.inputs) {
|
|
3040
|
+
addNode({ id: input.id, nodeType: "state", baseline: input.baseline, unknowns: [] });
|
|
3041
|
+
addEdge("contains", worldId, input.id);
|
|
3042
|
+
}
|
|
3043
|
+
}
|
|
3044
|
+
for (const predicate of ir.predicates) {
|
|
3045
|
+
addNode({
|
|
3046
|
+
id: predicate.id,
|
|
3047
|
+
nodeType: "objective",
|
|
3048
|
+
baseline: null,
|
|
3049
|
+
unknowns: [],
|
|
3050
|
+
sourceSpan: predicate.sourceSpan
|
|
3051
|
+
});
|
|
3052
|
+
for (const read of predicate.reads) {
|
|
3053
|
+
addEdge("refers-to", predicate.id, `state:world.${read}`);
|
|
3054
|
+
}
|
|
3055
|
+
}
|
|
3056
|
+
nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
3057
|
+
edges.sort((a, b) => a.id.localeCompare(b.id));
|
|
3058
|
+
const graphWithoutDigest = {
|
|
3059
|
+
schemaVersion: HSI_LEARNING_GRAPH_SCHEMA_VERSION,
|
|
3060
|
+
kind: "HSILearningGraph",
|
|
3061
|
+
worldDigest,
|
|
3062
|
+
emittedFrom: worldDigest,
|
|
3063
|
+
nodes,
|
|
3064
|
+
edges,
|
|
3065
|
+
interventions: [
|
|
3066
|
+
"intervention:flip-opacity",
|
|
3067
|
+
"intervention:raise-guard-threshold"
|
|
3068
|
+
]
|
|
3069
|
+
};
|
|
3070
|
+
return { ...graphWithoutDigest, deterministicDigest: hsiSha256(graphWithoutDigest) };
|
|
3071
|
+
}
|
|
3072
|
+
|
|
3073
|
+
// src/compiler/HSIAuditVerifier.ts
|
|
3074
|
+
function renamed(name, map) {
|
|
3075
|
+
return map[name] ?? name;
|
|
3076
|
+
}
|
|
3077
|
+
function renameExpression(expr, map) {
|
|
3078
|
+
switch (expr.type) {
|
|
3079
|
+
case "Identifier":
|
|
3080
|
+
expr.name = renamed(expr.name, map);
|
|
3081
|
+
return;
|
|
3082
|
+
case "BinaryExpression":
|
|
3083
|
+
renameExpression(expr.left, map);
|
|
3084
|
+
renameExpression(expr.right, map);
|
|
3085
|
+
return;
|
|
3086
|
+
case "UnaryExpression":
|
|
3087
|
+
renameExpression(expr.argument, map);
|
|
3088
|
+
return;
|
|
3089
|
+
case "MemberExpression":
|
|
3090
|
+
renameExpression(expr.object, map);
|
|
3091
|
+
return;
|
|
3092
|
+
case "CallExpression":
|
|
3093
|
+
renameExpression(expr.callee, map);
|
|
3094
|
+
for (const arg of expr.arguments) renameExpression(arg, map);
|
|
3095
|
+
return;
|
|
3096
|
+
default:
|
|
3097
|
+
return;
|
|
3098
|
+
}
|
|
3099
|
+
}
|
|
3100
|
+
function renameStatements(statements, map) {
|
|
3101
|
+
for (const stmt of statements) {
|
|
3102
|
+
switch (stmt.type) {
|
|
3103
|
+
case "Assignment": {
|
|
3104
|
+
const target = stmt.target.startsWith("state.") ? stmt.target.slice("state.".length) : stmt.target;
|
|
3105
|
+
const prefix = stmt.target.startsWith("state.") ? "state." : "";
|
|
3106
|
+
stmt.target = `${prefix}${renamed(target, map)}`;
|
|
3107
|
+
renameExpression(stmt.value, map);
|
|
3108
|
+
break;
|
|
3109
|
+
}
|
|
3110
|
+
case "IfStatement":
|
|
3111
|
+
renameExpression(stmt.condition, map);
|
|
3112
|
+
renameStatements(stmt.consequent, map);
|
|
3113
|
+
renameStatements(stmt.alternate ?? [], map);
|
|
3114
|
+
break;
|
|
3115
|
+
}
|
|
3116
|
+
}
|
|
3117
|
+
}
|
|
3118
|
+
function renameRawExpr(expr, map) {
|
|
3119
|
+
return expr.replace(/[A-Za-z_][A-Za-z0-9_]*/g, (token) => renamed(token, map));
|
|
3120
|
+
}
|
|
3121
|
+
function renameComposition(composition, map) {
|
|
3122
|
+
for (const template of composition.templates ?? []) {
|
|
3123
|
+
template.name = renamed(template.name, map);
|
|
3124
|
+
}
|
|
3125
|
+
for (const obj of composition.objects ?? []) {
|
|
3126
|
+
obj.name = renamed(obj.name, map);
|
|
3127
|
+
if (obj.template !== void 0) obj.template = renamed(obj.template, map);
|
|
3128
|
+
}
|
|
3129
|
+
const connections = composition.connections;
|
|
3130
|
+
for (const conn of connections ?? []) {
|
|
3131
|
+
conn.from = renamed(conn.from, map);
|
|
3132
|
+
conn.to = renamed(conn.to, map);
|
|
3133
|
+
}
|
|
3134
|
+
for (const prop of composition.state?.properties ?? []) {
|
|
3135
|
+
prop.key = renamed(prop.key, map);
|
|
3136
|
+
}
|
|
3137
|
+
const logic = composition.logic;
|
|
3138
|
+
for (const handler of logic?.handlers ?? []) {
|
|
3139
|
+
renameStatements(handler.body, map);
|
|
3140
|
+
}
|
|
3141
|
+
for (const machine of composition.stateMachines ?? []) {
|
|
3142
|
+
machine.name = renamed(machine.name, map);
|
|
3143
|
+
machine.initialState = renamed(machine.initialState, map);
|
|
3144
|
+
const renamedStates = {};
|
|
3145
|
+
for (const [stateName, stateNode] of Object.entries(machine.states ?? {})) {
|
|
3146
|
+
stateNode.name = renamed(stateName, map);
|
|
3147
|
+
renamedStates[renamed(stateName, map)] = stateNode;
|
|
3148
|
+
for (const t of stateNode.transitions ?? []) {
|
|
3149
|
+
if (t.from && t.from !== "any") t.from = renamed(t.from, map);
|
|
3150
|
+
t.target = renamed(t.target, map);
|
|
3151
|
+
if (t.condition) renameExpression(t.condition, map);
|
|
3152
|
+
for (const cond of t.conditions ?? []) cond.parameter = renamed(cond.parameter, map);
|
|
3153
|
+
}
|
|
3154
|
+
}
|
|
3155
|
+
machine.states = renamedStates;
|
|
3156
|
+
for (const input of machine.inputs ?? []) {
|
|
3157
|
+
input.name = renamed(input.name, map);
|
|
3158
|
+
}
|
|
3159
|
+
for (const t of machine.transitions ?? []) {
|
|
3160
|
+
if (t.from && t.from !== "any") t.from = renamed(t.from, map);
|
|
3161
|
+
t.target = renamed(t.target, map);
|
|
3162
|
+
if (t.condition) renameExpression(t.condition, map);
|
|
3163
|
+
for (const cond of t.conditions ?? []) cond.parameter = renamed(cond.parameter, map);
|
|
3164
|
+
}
|
|
3165
|
+
}
|
|
3166
|
+
if (composition.contract) {
|
|
3167
|
+
for (const clause of [...composition.contract.preconditions, ...composition.contract.invariants]) {
|
|
3168
|
+
clause.expr = renameRawExpr(clause.expr, map);
|
|
3169
|
+
}
|
|
3170
|
+
}
|
|
3171
|
+
for (const achievement of composition.achievements ?? []) {
|
|
3172
|
+
renameExpression(achievement.condition, map);
|
|
3173
|
+
}
|
|
3174
|
+
}
|
|
3175
|
+
var ID_TOKEN_PATTERN = /[A-Za-z_][A-Za-z0-9_]*/g;
|
|
3176
|
+
function renameIdString(id, map) {
|
|
3177
|
+
return id.replace(ID_TOKEN_PATTERN, (token) => renamed(token, map));
|
|
3178
|
+
}
|
|
3179
|
+
function renameTrace(trace, map) {
|
|
3180
|
+
const renameSnapshot = (snap) => {
|
|
3181
|
+
const state = {};
|
|
3182
|
+
for (const [key, value] of Object.entries(snap.state)) state[renamed(key, map)] = value;
|
|
3183
|
+
const machineStates = {};
|
|
3184
|
+
for (const [machine, current] of Object.entries(snap.machineStates)) {
|
|
3185
|
+
machineStates[renamed(machine, map)] = renamed(current, map);
|
|
3186
|
+
}
|
|
3187
|
+
return { state, machineStates, stateDigest: hsiSha256({ state: sortRecord(state), machineStates: sortRecord(machineStates) }) };
|
|
3188
|
+
};
|
|
3189
|
+
const sortRecord = (record) => {
|
|
3190
|
+
const out = {};
|
|
3191
|
+
for (const key of Object.keys(record).sort()) out[key] = record[key];
|
|
3192
|
+
return out;
|
|
3193
|
+
};
|
|
3194
|
+
const stepsRenamed = trace.steps.map((step) => {
|
|
3195
|
+
const scenario = step.step.kind === "fire-event" ? step.step : step.step.kind === "set-input" ? { kind: "set-input", machine: renamed(step.step.machine, map), input: renamed(step.step.input, map), value: step.step.value } : { kind: "fire-trigger", machine: renamed(step.step.machine, map), input: renamed(step.step.input, map) };
|
|
3196
|
+
return {
|
|
3197
|
+
...step,
|
|
3198
|
+
step: scenario,
|
|
3199
|
+
transitions: step.transitions.map((t) => ({
|
|
3200
|
+
machine: renamed(t.machine, map),
|
|
3201
|
+
transitionId: renameIdString(t.transitionId, map),
|
|
3202
|
+
from: renamed(t.from, map),
|
|
3203
|
+
to: renamed(t.to, map)
|
|
3204
|
+
})),
|
|
3205
|
+
effects: step.effects.map((e) => ({ ...e, target: renamed(e.target, map), sourceId: renameIdString(e.sourceId, map) })),
|
|
3206
|
+
invariantViolations: step.invariantViolations.map((id) => renameIdString(id, map)),
|
|
3207
|
+
stateDigest: ""
|
|
3208
|
+
};
|
|
3209
|
+
});
|
|
3210
|
+
const initial = renameSnapshot(trace.initial);
|
|
3211
|
+
const final = renameSnapshot(trace.final);
|
|
3212
|
+
const traceWithoutDigest = {
|
|
3213
|
+
schemaVersion: trace.schemaVersion,
|
|
3214
|
+
kind: trace.kind,
|
|
3215
|
+
worldDigest: "",
|
|
3216
|
+
preconditionResults: trace.preconditionResults.map((r) => ({ id: renameIdString(r.id, map), holds: r.holds })),
|
|
3217
|
+
initial,
|
|
3218
|
+
steps: stepsRenamed,
|
|
3219
|
+
final,
|
|
3220
|
+
valid: trace.valid
|
|
3221
|
+
};
|
|
3222
|
+
return { ...traceWithoutDigest, deterministicDigest: "" };
|
|
3223
|
+
}
|
|
3224
|
+
function behavioralProjection(trace) {
|
|
3225
|
+
return {
|
|
3226
|
+
preconditionResults: trace.preconditionResults,
|
|
3227
|
+
initial: { state: trace.initial.state, machineStates: trace.initial.machineStates },
|
|
3228
|
+
steps: trace.steps.map((s) => ({
|
|
3229
|
+
ordinal: s.ordinal,
|
|
3230
|
+
step: s.step,
|
|
3231
|
+
transitions: s.transitions,
|
|
3232
|
+
effects: s.effects,
|
|
3233
|
+
emitted: s.emitted,
|
|
3234
|
+
invariantViolations: s.invariantViolations
|
|
3235
|
+
})),
|
|
3236
|
+
final: { state: trace.final.state, machineStates: trace.final.machineStates },
|
|
3237
|
+
valid: trace.valid
|
|
3238
|
+
};
|
|
3239
|
+
}
|
|
3240
|
+
function reorderComposition(composition) {
|
|
3241
|
+
composition.templates = [...composition.templates ?? []].reverse();
|
|
3242
|
+
composition.objects = [...composition.objects ?? []].reverse();
|
|
3243
|
+
const holder = composition;
|
|
3244
|
+
if (holder.connections) holder.connections = [...holder.connections].reverse();
|
|
3245
|
+
if (composition.state?.properties) {
|
|
3246
|
+
composition.state.properties = [...composition.state.properties].reverse();
|
|
3247
|
+
}
|
|
3248
|
+
if (composition.contract) {
|
|
3249
|
+
composition.contract.invariants = [...composition.contract.invariants].reverse();
|
|
3250
|
+
}
|
|
3251
|
+
}
|
|
3252
|
+
function applyIntervention(composition, intervention) {
|
|
3253
|
+
if (intervention.kind === "set-opacity") {
|
|
3254
|
+
const obj = (composition.objects ?? []).find((o) => o.name === intervention.entity);
|
|
3255
|
+
if (!obj) {
|
|
3256
|
+
throw new HSIAdmissionError("admission-skewed", `intervention targets unknown entity "${intervention.entity}"`);
|
|
3257
|
+
}
|
|
3258
|
+
const existing = obj.properties.findIndex((p) => p.key === "opaque");
|
|
3259
|
+
if (existing >= 0) obj.properties.splice(existing, 1);
|
|
3260
|
+
if (intervention.opaque !== void 0) {
|
|
3261
|
+
obj.properties.push({ type: "ObjectProperty", key: "opaque", value: intervention.opaque });
|
|
3262
|
+
} else {
|
|
3263
|
+
const template = (composition.templates ?? []).find((t) => t.name === obj.template);
|
|
3264
|
+
if (template) {
|
|
3265
|
+
template.properties = (template.properties ?? []).filter((p) => p.key !== "opaque");
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
return;
|
|
3269
|
+
}
|
|
3270
|
+
const machine = (composition.stateMachines ?? []).find((m) => m.name === intervention.machine);
|
|
3271
|
+
if (!machine) {
|
|
3272
|
+
throw new HSIAdmissionError("admission-skewed", `intervention targets unknown machine "${intervention.machine}"`);
|
|
3273
|
+
}
|
|
3274
|
+
const transitions = [
|
|
3275
|
+
...machine.transitions ?? [],
|
|
3276
|
+
...Object.values(machine.states ?? {}).flatMap((s) => s.transitions ?? [])
|
|
3277
|
+
];
|
|
3278
|
+
const transition = transitions.find(
|
|
3279
|
+
(t) => (t.from ?? "") === intervention.fromState && t.target === intervention.toState
|
|
3280
|
+
);
|
|
3281
|
+
if (!transition) {
|
|
3282
|
+
throw new HSIAdmissionError(
|
|
3283
|
+
"admission-skewed",
|
|
3284
|
+
`intervention targets unknown transition ${intervention.fromState} -> ${intervention.toState}`
|
|
3285
|
+
);
|
|
3286
|
+
}
|
|
3287
|
+
if (transition.condition?.type === "BinaryExpression" && transition.condition.right.type === "Literal") {
|
|
3288
|
+
transition.condition.right.value = intervention.value;
|
|
3289
|
+
}
|
|
3290
|
+
for (const cond of transition.conditions ?? []) {
|
|
3291
|
+
if (typeof cond.value === "number") cond.value = intervention.value;
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
function generateAuditCases(ir) {
|
|
3295
|
+
const cases = [
|
|
3296
|
+
{
|
|
3297
|
+
id: "audit:admission-empty",
|
|
3298
|
+
kind: "admission-empty",
|
|
3299
|
+
description: "An empty composition (no entities, no state) must fail admission.",
|
|
3300
|
+
expectation: "HSIAdmissionError(empty-world)"
|
|
3301
|
+
},
|
|
3302
|
+
{
|
|
3303
|
+
id: "audit:admission-missing-archetype",
|
|
3304
|
+
kind: "admission-skewed",
|
|
3305
|
+
description: "An object using an undeclared template must fail admission.",
|
|
3306
|
+
expectation: "HSIAdmissionError(unknown-archetype)"
|
|
3307
|
+
},
|
|
3308
|
+
{
|
|
3309
|
+
id: "audit:admission-dangling-relation",
|
|
3310
|
+
kind: "admission-skewed",
|
|
3311
|
+
description: "A connection to an undeclared entity must fail admission.",
|
|
3312
|
+
expectation: "HSIAdmissionError(unknown-relation-endpoint)"
|
|
3313
|
+
},
|
|
3314
|
+
{
|
|
3315
|
+
id: "audit:alpha-rename",
|
|
3316
|
+
kind: "alpha-rename",
|
|
3317
|
+
description: "Consistent renaming of declared names preserves behavior (trace modulo names).",
|
|
3318
|
+
expectation: "behavioralProjection(renameTrace(base)) === behavioralProjection(trace(renamed))"
|
|
3319
|
+
},
|
|
3320
|
+
{
|
|
3321
|
+
id: "audit:declaration-reorder",
|
|
3322
|
+
kind: "declaration-reorder",
|
|
3323
|
+
description: "Reordering independent declarations yields a byte-identical IR.",
|
|
3324
|
+
expectation: "deterministicDigest(base) === deterministicDigest(reordered)"
|
|
3325
|
+
},
|
|
3326
|
+
{
|
|
3327
|
+
id: "audit:regenerate-determinism",
|
|
3328
|
+
kind: "regenerate-determinism",
|
|
3329
|
+
description: "Re-lowering and re-tracing from the same source is byte-identical.",
|
|
3330
|
+
expectation: "all artifact digests equal across two independent regenerations"
|
|
3331
|
+
}
|
|
3332
|
+
];
|
|
3333
|
+
const opaqueMediator = ir.entities.find(
|
|
3334
|
+
(e) => e.opacity === "opaque" && ir.observationPolicy.some((r) => r.mediators.includes(e.name) && r.access === "blocked")
|
|
3335
|
+
);
|
|
3336
|
+
if (opaqueMediator) {
|
|
3337
|
+
cases.push({
|
|
3338
|
+
id: "audit:counterfactual-opacity",
|
|
3339
|
+
kind: "counterfactual-intervention",
|
|
3340
|
+
description: `Making "${opaqueMediator.name}" transparent must change at least one observation access verdict.`,
|
|
3341
|
+
intervention: { kind: "set-opacity", id: "intervention:flip-opacity", entity: opaqueMediator.name, opacity: "transparent" },
|
|
3342
|
+
expectation: "observationPolicy access verdicts differ from base IR"
|
|
3343
|
+
});
|
|
3344
|
+
}
|
|
3345
|
+
const guardedTransition = ir.machines.flatMap((m) => m.transitions.map((t) => ({ machine: m.name, t }))).find(({ t }) => t.guard?.kind === "BinaryExpression" && t.guard.right.kind === "Literal" && typeof t.guard.right.value === "number");
|
|
3346
|
+
if (guardedTransition) {
|
|
3347
|
+
cases.push({
|
|
3348
|
+
id: "audit:counterfactual-guard",
|
|
3349
|
+
kind: "counterfactual-intervention",
|
|
3350
|
+
description: `Raising the numeric guard of ${guardedTransition.t.id} beyond scenario inputs must change the exact trace.`,
|
|
3351
|
+
intervention: {
|
|
3352
|
+
kind: "set-transition-guard-literal",
|
|
3353
|
+
id: "intervention:raise-guard-threshold",
|
|
3354
|
+
machine: guardedTransition.machine,
|
|
3355
|
+
transitionId: guardedTransition.t.id,
|
|
3356
|
+
value: 1e6
|
|
3357
|
+
},
|
|
3358
|
+
expectation: "trace deterministicDigest differs and at least one step fires different transitions"
|
|
3359
|
+
});
|
|
3360
|
+
}
|
|
3361
|
+
return cases;
|
|
3362
|
+
}
|
|
3363
|
+
function clone(value) {
|
|
3364
|
+
return structuredClone(value);
|
|
3365
|
+
}
|
|
3366
|
+
function expectAdmissionFailure(fn, expectedCode) {
|
|
3367
|
+
try {
|
|
3368
|
+
fn();
|
|
3369
|
+
return "fail";
|
|
3370
|
+
} catch (error) {
|
|
3371
|
+
return error instanceof HSIAdmissionError && error.code === expectedCode ? "pass" : "fail";
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
function runHSIAudit(input) {
|
|
3375
|
+
const { composition, sourceText, scenario, renameMap } = input;
|
|
3376
|
+
const baseIR = lowerCompositionToHSIIR(clone(composition), { sourceText });
|
|
3377
|
+
const baseTrace = runExactTrace(baseIR, scenario);
|
|
3378
|
+
const cases = generateAuditCases(baseIR);
|
|
3379
|
+
const checks = [];
|
|
3380
|
+
for (const auditCase of cases) {
|
|
3381
|
+
let status = "fail";
|
|
3382
|
+
let detail = auditCase.expectation;
|
|
3383
|
+
try {
|
|
3384
|
+
switch (auditCase.id) {
|
|
3385
|
+
case "audit:admission-empty": {
|
|
3386
|
+
const empty = {
|
|
3387
|
+
...clone(composition),
|
|
3388
|
+
name: "EmptyWorld",
|
|
3389
|
+
templates: [],
|
|
3390
|
+
objects: [],
|
|
3391
|
+
state: void 0,
|
|
3392
|
+
stateMachines: [],
|
|
3393
|
+
contract: void 0,
|
|
3394
|
+
achievements: []
|
|
3395
|
+
};
|
|
3396
|
+
empty.connections = [];
|
|
3397
|
+
empty.logic = void 0;
|
|
3398
|
+
status = expectAdmissionFailure(() => lowerCompositionToHSIIR(empty), "empty-world");
|
|
3399
|
+
break;
|
|
3400
|
+
}
|
|
3401
|
+
case "audit:admission-missing-archetype": {
|
|
3402
|
+
const skewed = clone(composition);
|
|
3403
|
+
if (skewed.objects.length === 0) throw new Error("fixture has no objects");
|
|
3404
|
+
skewed.objects[0].template = "GhostTemplate";
|
|
3405
|
+
status = expectAdmissionFailure(() => lowerCompositionToHSIIR(skewed), "unknown-archetype");
|
|
3406
|
+
break;
|
|
3407
|
+
}
|
|
3408
|
+
case "audit:admission-dangling-relation": {
|
|
3409
|
+
const skewed = clone(composition);
|
|
3410
|
+
const holder = skewed;
|
|
3411
|
+
holder.connections = [...holder.connections ?? [], { from: "NoSuchEntity", to: "AlsoMissing" }];
|
|
3412
|
+
status = expectAdmissionFailure(() => lowerCompositionToHSIIR(skewed), "unknown-relation-endpoint");
|
|
3413
|
+
break;
|
|
3414
|
+
}
|
|
3415
|
+
case "audit:alpha-rename": {
|
|
3416
|
+
const renamedComposition = clone(composition);
|
|
3417
|
+
renameComposition(renamedComposition, renameMap);
|
|
3418
|
+
const renamedIR = lowerCompositionToHSIIR(renamedComposition);
|
|
3419
|
+
const renamedScenario = scenario.map(
|
|
3420
|
+
(step) => step.kind === "fire-event" ? step : step.kind === "set-input" ? { ...step, machine: renameMap[step.machine] ?? step.machine, input: renameMap[step.input] ?? step.input } : { ...step, machine: renameMap[step.machine] ?? step.machine, input: renameMap[step.input] ?? step.input }
|
|
3421
|
+
);
|
|
3422
|
+
const renamedTrace = runExactTrace(renamedIR, renamedScenario);
|
|
3423
|
+
const expected = hsiStableStringify(behavioralProjection(renameTrace(baseTrace, renameMap)));
|
|
3424
|
+
const actual = hsiStableStringify(behavioralProjection(renamedTrace));
|
|
3425
|
+
status = expected === actual ? "pass" : "fail";
|
|
3426
|
+
if (status === "fail") detail = "renamed trace diverged from rename-projected base trace";
|
|
3427
|
+
break;
|
|
3428
|
+
}
|
|
3429
|
+
case "audit:declaration-reorder": {
|
|
3430
|
+
const reordered = clone(composition);
|
|
3431
|
+
reorderComposition(reordered);
|
|
3432
|
+
const reorderedIR = lowerCompositionToHSIIR(reordered, { sourceText });
|
|
3433
|
+
status = reorderedIR.provenance.deterministicDigest === baseIR.provenance.deterministicDigest ? "pass" : "fail";
|
|
3434
|
+
if (status === "fail") detail = "reordered IR digest differs from base IR digest";
|
|
3435
|
+
break;
|
|
3436
|
+
}
|
|
3437
|
+
case "audit:regenerate-determinism": {
|
|
3438
|
+
const secondIR = lowerCompositionToHSIIR(clone(composition), { sourceText });
|
|
3439
|
+
const secondTrace = runExactTrace(secondIR, scenario);
|
|
3440
|
+
status = secondIR.provenance.deterministicDigest === baseIR.provenance.deterministicDigest && secondTrace.deterministicDigest === baseTrace.deterministicDigest ? "pass" : "fail";
|
|
3441
|
+
if (status === "fail") detail = "regeneration produced different digests";
|
|
3442
|
+
break;
|
|
3443
|
+
}
|
|
3444
|
+
case "audit:counterfactual-opacity": {
|
|
3445
|
+
const intervention = auditCase.intervention;
|
|
3446
|
+
if (intervention.kind !== "set-opacity") throw new Error("case/intervention mismatch");
|
|
3447
|
+
const intervened = clone(composition);
|
|
3448
|
+
applyIntervention(intervened, {
|
|
3449
|
+
id: intervention.id,
|
|
3450
|
+
kind: "set-opacity",
|
|
3451
|
+
entity: intervention.entity,
|
|
3452
|
+
opaque: intervention.opacity === "opaque" ? true : intervention.opacity === "transparent" ? false : void 0
|
|
3453
|
+
});
|
|
3454
|
+
const intervenedIR = lowerCompositionToHSIIR(intervened);
|
|
3455
|
+
const baseAccess = hsiStableStringify(baseIR.observationPolicy);
|
|
3456
|
+
const newAccess = hsiStableStringify(intervenedIR.observationPolicy);
|
|
3457
|
+
status = baseAccess !== newAccess ? "pass" : "fail";
|
|
3458
|
+
if (status === "fail") detail = "opacity intervention did not change any observation verdict";
|
|
3459
|
+
break;
|
|
3460
|
+
}
|
|
3461
|
+
case "audit:counterfactual-guard": {
|
|
3462
|
+
const intervention = auditCase.intervention;
|
|
3463
|
+
if (intervention.kind !== "set-transition-guard-literal") throw new Error("case/intervention mismatch");
|
|
3464
|
+
const parsed = /transition:([^.]+)\.([^-]+)->([^#]+)#/.exec(intervention.transitionId);
|
|
3465
|
+
if (!parsed) throw new Error(`unparseable transition id ${intervention.transitionId}`);
|
|
3466
|
+
const intervened = clone(composition);
|
|
3467
|
+
applyIntervention(intervened, {
|
|
3468
|
+
id: intervention.id,
|
|
3469
|
+
kind: "set-guard-literal",
|
|
3470
|
+
machine: parsed[1],
|
|
3471
|
+
fromState: parsed[2],
|
|
3472
|
+
toState: parsed[3],
|
|
3473
|
+
value: intervention.value
|
|
3474
|
+
});
|
|
3475
|
+
const intervenedIR = lowerCompositionToHSIIR(intervened);
|
|
3476
|
+
const intervenedTrace = runExactTrace(intervenedIR, scenario);
|
|
3477
|
+
const digestDiffers = intervenedTrace.deterministicDigest !== baseTrace.deterministicDigest;
|
|
3478
|
+
const stepDiffers = baseTrace.steps.some(
|
|
3479
|
+
(step, i) => hsiStableStringify(step.transitions) !== hsiStableStringify(intervenedTrace.steps[i]?.transitions)
|
|
3480
|
+
);
|
|
3481
|
+
status = digestDiffers && stepDiffers ? "pass" : "fail";
|
|
3482
|
+
if (status === "fail") detail = "guard intervention did not change the exact trace";
|
|
3483
|
+
break;
|
|
3484
|
+
}
|
|
3485
|
+
default:
|
|
3486
|
+
detail = `unrecognized audit case ${auditCase.id}`;
|
|
3487
|
+
}
|
|
3488
|
+
} catch (error) {
|
|
3489
|
+
status = "fail";
|
|
3490
|
+
detail = `${detail} \u2014 threw: ${error.message}`;
|
|
3491
|
+
}
|
|
3492
|
+
checks.push({ caseId: auditCase.id, status, detail });
|
|
3493
|
+
}
|
|
3494
|
+
const overall = checks.every((c) => c.status === "pass") ? "pass" : "fail";
|
|
3495
|
+
const manifestWithoutDigest = {
|
|
3496
|
+
schemaVersion: HSI_AUDIT_SCHEMA_VERSION,
|
|
3497
|
+
kind: "HSIAuditManifest",
|
|
3498
|
+
worldDigest: baseIR.provenance.deterministicDigest,
|
|
3499
|
+
verifier: "HSIAuditVerifier",
|
|
3500
|
+
checks,
|
|
3501
|
+
overall
|
|
3502
|
+
};
|
|
3503
|
+
return { ...manifestWithoutDigest, deterministicDigest: hsiSha256(manifestWithoutDigest) };
|
|
3504
|
+
}
|
|
3505
|
+
|
|
3506
|
+
// src/compiler/index.ts
|
|
2133
3507
|
chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
|
|
2134
3508
|
|
|
2135
3509
|
// src/compiler/authority/AuthoritySymbolGraph.ts
|
|
@@ -3346,13 +4720,13 @@ function byzantineResilientMerge(agentDags, ledger, options = {}) {
|
|
|
3346
4720
|
}
|
|
3347
4721
|
|
|
3348
4722
|
// src/compiler/index.ts
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
4723
|
+
chunkPHLNABJD_cjs.init_NodeServiceCompiler();
|
|
4724
|
+
chunkPHLNABJD_cjs.init_SDKCompiler();
|
|
4725
|
+
chunkPHLNABJD_cjs.init_LlamaServerCompiler();
|
|
4726
|
+
chunkPHLNABJD_cjs.init_holoscript_gbnf();
|
|
4727
|
+
chunkPHLNABJD_cjs.init_DialectRegistry();
|
|
4728
|
+
chunkPHLNABJD_cjs.init_registerBuiltinDialects();
|
|
4729
|
+
chunkPHLNABJD_cjs.init_PCGGraphCompiler();
|
|
3356
4730
|
|
|
3357
4731
|
// src/compiler/dispatch/DispatchPolicy.ts
|
|
3358
4732
|
var DispatchTier = /* @__PURE__ */ ((DispatchTier2) => {
|
|
@@ -3726,7 +5100,7 @@ async function runTier3CpuDirectExecutor(op) {
|
|
|
3726
5100
|
}
|
|
3727
5101
|
async function runTier1BrowserSnn(op) {
|
|
3728
5102
|
try {
|
|
3729
|
-
const snnWebgpu = await import('../dist-
|
|
5103
|
+
const snnWebgpu = await import('../dist-YGATNURH.cjs');
|
|
3730
5104
|
const { GPUContext, LIFSimulator, DEFAULT_LIF_PARAMS } = snnWebgpu;
|
|
3731
5105
|
const ctx = new GPUContext();
|
|
3732
5106
|
await ctx.initialize();
|
|
@@ -3831,8 +5205,8 @@ async function sha256Hex(input) {
|
|
|
3831
5205
|
const digest = await subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
3832
5206
|
return bytesToHex(new Uint8Array(digest));
|
|
3833
5207
|
}
|
|
3834
|
-
const { createHash:
|
|
3835
|
-
return
|
|
5208
|
+
const { createHash: createHash4 } = await import('crypto');
|
|
5209
|
+
return createHash4("sha256").update(input).digest("hex");
|
|
3836
5210
|
}
|
|
3837
5211
|
function bytesToHex(bytes) {
|
|
3838
5212
|
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -4179,8 +5553,8 @@ function formatTierCounts(counts) {
|
|
|
4179
5553
|
}
|
|
4180
5554
|
|
|
4181
5555
|
// src/compiler/TraitRegistryBridge.ts
|
|
4182
|
-
|
|
4183
|
-
|
|
5556
|
+
chunkQKLEDRHN_cjs.init_AndroidXRTraitMap();
|
|
5557
|
+
chunkJ74S4ZMF_cjs.init_VisionOSTraitMap();
|
|
4184
5558
|
chunk7FYSSI3C_cjs.init_traitDocs();
|
|
4185
5559
|
function normaliseTraitName(name) {
|
|
4186
5560
|
return name.toLowerCase().replace(/^@/, "").replace(/trait$/i, "").replace(/_/g, "-").trim();
|
|
@@ -4188,7 +5562,7 @@ function normaliseTraitName(name) {
|
|
|
4188
5562
|
function queryTrait(name, opts = {}) {
|
|
4189
5563
|
const target = opts.target || "core";
|
|
4190
5564
|
if (target === "android-xr") {
|
|
4191
|
-
const map =
|
|
5565
|
+
const map = chunkQKLEDRHN_cjs.getTraitMapping(name);
|
|
4192
5566
|
if (map) {
|
|
4193
5567
|
return {
|
|
4194
5568
|
name,
|
|
@@ -4200,7 +5574,7 @@ function queryTrait(name, opts = {}) {
|
|
|
4200
5574
|
}
|
|
4201
5575
|
}
|
|
4202
5576
|
if (target === "visionos") {
|
|
4203
|
-
const map =
|
|
5577
|
+
const map = chunkJ74S4ZMF_cjs.getTraitMapping(name);
|
|
4204
5578
|
if (map) {
|
|
4205
5579
|
return {
|
|
4206
5580
|
name,
|
|
@@ -4213,8 +5587,8 @@ function queryTrait(name, opts = {}) {
|
|
|
4213
5587
|
return { name, exists: false, sourceMap: "VisionOSTraitMap" };
|
|
4214
5588
|
}
|
|
4215
5589
|
const normalised = normaliseTraitName(name);
|
|
4216
|
-
if (
|
|
4217
|
-
const handler =
|
|
5590
|
+
if (chunkX5ZLSPU2_cjs.vrTraitRegistry.has(normalised)) {
|
|
5591
|
+
const handler = chunkX5ZLSPU2_cjs.vrTraitRegistry.getHandler(normalised);
|
|
4218
5592
|
const doc2 = chunk7FYSSI3C_cjs.getTraitDoc(name);
|
|
4219
5593
|
return {
|
|
4220
5594
|
name,
|
|
@@ -4245,12 +5619,12 @@ function queryTrait(name, opts = {}) {
|
|
|
4245
5619
|
}
|
|
4246
5620
|
function generateTraitForTarget(name, target, config = {}) {
|
|
4247
5621
|
if (target === "android-xr" || target === "android") {
|
|
4248
|
-
return
|
|
5622
|
+
return chunkQKLEDRHN_cjs.getTraitMapping(name)?.generate?.(name, config) ?? [
|
|
4249
5623
|
`// @${name} not yet mapped for android-xr (see AndroidXRTraitMap)`
|
|
4250
5624
|
];
|
|
4251
5625
|
}
|
|
4252
5626
|
if (target === "visionos") {
|
|
4253
|
-
return
|
|
5627
|
+
return chunkJ74S4ZMF_cjs.generateTraitCode(name, name, config) ?? [
|
|
4254
5628
|
`// @${name} not yet mapped for visionos (see VisionOSTraitMap)`
|
|
4255
5629
|
];
|
|
4256
5630
|
}
|
|
@@ -4265,15 +5639,15 @@ function generateTraitForTarget(name, target, config = {}) {
|
|
|
4265
5639
|
}
|
|
4266
5640
|
function listTraitsForTarget(target) {
|
|
4267
5641
|
if (target === "android-xr") {
|
|
4268
|
-
return Object.keys(
|
|
5642
|
+
return Object.keys(chunkQKLEDRHN_cjs.ANDROIDXR_TRAIT_MAP);
|
|
4269
5643
|
}
|
|
4270
5644
|
if (target === "visionos") {
|
|
4271
|
-
return
|
|
5645
|
+
return chunkJ74S4ZMF_cjs.listAllTraits ? chunkJ74S4ZMF_cjs.listAllTraits() : [];
|
|
4272
5646
|
}
|
|
4273
5647
|
if (target === "core") {
|
|
4274
5648
|
const seen = /* @__PURE__ */ new Set();
|
|
4275
5649
|
const result = [];
|
|
4276
|
-
for (const name of
|
|
5650
|
+
for (const name of chunkX5ZLSPU2_cjs.vrTraitRegistry.getRegisteredTraits()) {
|
|
4277
5651
|
const norm = normaliseTraitName(name);
|
|
4278
5652
|
if (!seen.has(norm)) {
|
|
4279
5653
|
seen.add(norm);
|
|
@@ -4293,17 +5667,17 @@ function listTraitsForTarget(target) {
|
|
|
4293
5667
|
}
|
|
4294
5668
|
function traitExists(name) {
|
|
4295
5669
|
const normalised = normaliseTraitName(name);
|
|
4296
|
-
if (
|
|
5670
|
+
if (chunkX5ZLSPU2_cjs.vrTraitRegistry.has(normalised)) {
|
|
4297
5671
|
return true;
|
|
4298
5672
|
}
|
|
4299
5673
|
const doc = chunk7FYSSI3C_cjs.getTraitDoc(name);
|
|
4300
5674
|
if (doc) {
|
|
4301
5675
|
return true;
|
|
4302
5676
|
}
|
|
4303
|
-
if (
|
|
5677
|
+
if (chunkQKLEDRHN_cjs.getTraitMapping(name)) {
|
|
4304
5678
|
return true;
|
|
4305
5679
|
}
|
|
4306
|
-
if (
|
|
5680
|
+
if (chunkJ74S4ZMF_cjs.getTraitMapping(name)) {
|
|
4307
5681
|
return true;
|
|
4308
5682
|
}
|
|
4309
5683
|
return false;
|
|
@@ -4391,7 +5765,7 @@ function getAllManifests() {
|
|
|
4391
5765
|
}
|
|
4392
5766
|
|
|
4393
5767
|
// src/compiler/platform/plugins/WebGPUWGSLPlugin.ts
|
|
4394
|
-
|
|
5768
|
+
chunkU6CQOM5Q_cjs.init_WebGPUCompiler();
|
|
4395
5769
|
var WEBGPU_WGSL_METADATA = {
|
|
4396
5770
|
name: "holoscript-plugin-webgpu-wgsl",
|
|
4397
5771
|
version: "1.0.0",
|
|
@@ -4420,7 +5794,7 @@ var WebGPUWGSLPlugin = class {
|
|
|
4420
5794
|
switch (target) {
|
|
4421
5795
|
case "web": {
|
|
4422
5796
|
try {
|
|
4423
|
-
const compiler = new
|
|
5797
|
+
const compiler = new chunkU6CQOM5Q_cjs.WebGPUCompiler({ enableCompute: true });
|
|
4424
5798
|
const result = compiler.compile(ast, "");
|
|
4425
5799
|
return { type: "text", data: result };
|
|
4426
5800
|
} catch (err) {
|
|
@@ -4514,7 +5888,7 @@ var WebGPUWGSLPlugin = class {
|
|
|
4514
5888
|
platformPluginRegistry.register(new WebGPUWGSLPlugin());
|
|
4515
5889
|
|
|
4516
5890
|
// src/compiler/platform/plugins/AndroidARCorePlugin.ts
|
|
4517
|
-
|
|
5891
|
+
chunkQKLEDRHN_cjs.init_AndroidXRCompiler();
|
|
4518
5892
|
var ANDROID_ARCORE_METADATA = {
|
|
4519
5893
|
name: "holoscript-plugin-android-arcore",
|
|
4520
5894
|
version: "1.0.0",
|
|
@@ -4545,7 +5919,7 @@ var AndroidARCorePlugin = class {
|
|
|
4545
5919
|
case "android-xr":
|
|
4546
5920
|
case "android-xr-ar": {
|
|
4547
5921
|
try {
|
|
4548
|
-
const compiler = new
|
|
5922
|
+
const compiler = new chunkQKLEDRHN_cjs.AndroidXRCompiler({
|
|
4549
5923
|
formFactor: target === "android-xr-ar" ? "glasses" : "headset"
|
|
4550
5924
|
});
|
|
4551
5925
|
const result = compiler.compile(ast, "apl-plugin-token");
|
|
@@ -4698,6 +6072,8 @@ var BRIDGE_TARGETS = [
|
|
|
4698
6072
|
// Meta Quest (Horizon OS / Meta Spatial SDK) — emits a native Kotlin app to Meta's runtime
|
|
4699
6073
|
"ios",
|
|
4700
6074
|
"visionos",
|
|
6075
|
+
"r3f",
|
|
6076
|
+
// SceneIR -> generated TSX shell consumed by React Three Fiber; HoloScript owns SceneIR, R3F is the host runtime bridge
|
|
4701
6077
|
"usd",
|
|
4702
6078
|
"usdz",
|
|
4703
6079
|
"fmu",
|
|
@@ -4943,35 +6319,35 @@ var SOVEREIGN_ENGINES = [
|
|
|
4943
6319
|
|
|
4944
6320
|
Object.defineProperty(exports, "ContextCompileError", {
|
|
4945
6321
|
enumerable: true,
|
|
4946
|
-
get: function () { return
|
|
6322
|
+
get: function () { return chunkXHZYS4QO_cjs.ContextCompileError; }
|
|
4947
6323
|
});
|
|
4948
6324
|
Object.defineProperty(exports, "ContextCompiler", {
|
|
4949
6325
|
enumerable: true,
|
|
4950
|
-
get: function () { return
|
|
6326
|
+
get: function () { return chunkXHZYS4QO_cjs.ContextCompiler; }
|
|
4951
6327
|
});
|
|
4952
6328
|
Object.defineProperty(exports, "createContextCompiler", {
|
|
4953
6329
|
enumerable: true,
|
|
4954
|
-
get: function () { return
|
|
6330
|
+
get: function () { return chunkXHZYS4QO_cjs.createContextCompiler; }
|
|
4955
6331
|
});
|
|
4956
6332
|
Object.defineProperty(exports, "LLMCapabilityCompileError", {
|
|
4957
6333
|
enumerable: true,
|
|
4958
|
-
get: function () { return
|
|
6334
|
+
get: function () { return chunk2DJIS7TH_cjs.LLMCapabilityCompileError; }
|
|
4959
6335
|
});
|
|
4960
6336
|
Object.defineProperty(exports, "LLMProviderCapabilitiesCompiler", {
|
|
4961
6337
|
enumerable: true,
|
|
4962
|
-
get: function () { return
|
|
6338
|
+
get: function () { return chunk2DJIS7TH_cjs.LLMProviderCapabilitiesCompiler; }
|
|
4963
6339
|
});
|
|
4964
6340
|
Object.defineProperty(exports, "createLLMProviderCapabilitiesCompiler", {
|
|
4965
6341
|
enumerable: true,
|
|
4966
|
-
get: function () { return
|
|
6342
|
+
get: function () { return chunk2DJIS7TH_cjs.createLLMProviderCapabilitiesCompiler; }
|
|
4967
6343
|
});
|
|
4968
6344
|
Object.defineProperty(exports, "GLTF_PIPELINE_TOOLS", {
|
|
4969
6345
|
enumerable: true,
|
|
4970
|
-
get: function () { return
|
|
6346
|
+
get: function () { return chunk4CQ7ULXZ_cjs.GLTF_PIPELINE_TOOLS; }
|
|
4971
6347
|
});
|
|
4972
6348
|
Object.defineProperty(exports, "registerGLTFTools", {
|
|
4973
6349
|
enumerable: true,
|
|
4974
|
-
get: function () { return
|
|
6350
|
+
get: function () { return chunk4CQ7ULXZ_cjs.registerGLTFTools; }
|
|
4975
6351
|
});
|
|
4976
6352
|
Object.defineProperty(exports, "BUSINESS_QUEST_TOOLS", {
|
|
4977
6353
|
enumerable: true,
|
|
@@ -5019,287 +6395,287 @@ Object.defineProperty(exports, "parseReproducibilityFlags", {
|
|
|
5019
6395
|
});
|
|
5020
6396
|
Object.defineProperty(exports, "QuantumCircuitCompiler", {
|
|
5021
6397
|
enumerable: true,
|
|
5022
|
-
get: function () { return
|
|
6398
|
+
get: function () { return chunkIPBSNGAN_cjs.QuantumCircuitCompiler; }
|
|
5023
6399
|
});
|
|
5024
6400
|
Object.defineProperty(exports, "CodeEditorCompiler", {
|
|
5025
6401
|
enumerable: true,
|
|
5026
|
-
get: function () { return
|
|
6402
|
+
get: function () { return chunkPHLNABJD_cjs.CodeEditorCompiler; }
|
|
5027
6403
|
});
|
|
5028
6404
|
Object.defineProperty(exports, "CompileTimeAuthorityEffectError", {
|
|
5029
6405
|
enumerable: true,
|
|
5030
|
-
get: function () { return
|
|
6406
|
+
get: function () { return chunkPHLNABJD_cjs.CompileTimeAuthorityEffectError; }
|
|
5031
6407
|
});
|
|
5032
6408
|
Object.defineProperty(exports, "CompilerBridge", {
|
|
5033
6409
|
enumerable: true,
|
|
5034
|
-
get: function () { return
|
|
6410
|
+
get: function () { return chunkPHLNABJD_cjs.CompilerBridge; }
|
|
5035
6411
|
});
|
|
5036
6412
|
Object.defineProperty(exports, "ComputePhysicsCompiler", {
|
|
5037
6413
|
enumerable: true,
|
|
5038
|
-
get: function () { return
|
|
6414
|
+
get: function () { return chunkPHLNABJD_cjs.ComputePhysicsCompiler; }
|
|
5039
6415
|
});
|
|
5040
6416
|
Object.defineProperty(exports, "CpuPathTracer", {
|
|
5041
6417
|
enumerable: true,
|
|
5042
|
-
get: function () { return
|
|
6418
|
+
get: function () { return chunkPHLNABJD_cjs.CpuPathTracer; }
|
|
5043
6419
|
});
|
|
5044
6420
|
Object.defineProperty(exports, "DEFAULT_MATERIAL_KEYWORDS", {
|
|
5045
6421
|
enumerable: true,
|
|
5046
|
-
get: function () { return
|
|
6422
|
+
get: function () { return chunkPHLNABJD_cjs.DEFAULT_MATERIAL_KEYWORDS; }
|
|
5047
6423
|
});
|
|
5048
6424
|
Object.defineProperty(exports, "DEFAULT_OBJECT_KEYWORDS", {
|
|
5049
6425
|
enumerable: true,
|
|
5050
|
-
get: function () { return
|
|
6426
|
+
get: function () { return chunkPHLNABJD_cjs.DEFAULT_OBJECT_KEYWORDS; }
|
|
5051
6427
|
});
|
|
5052
6428
|
Object.defineProperty(exports, "DEFAULT_PRIMITIVE_SHAPES", {
|
|
5053
6429
|
enumerable: true,
|
|
5054
|
-
get: function () { return
|
|
6430
|
+
get: function () { return chunkPHLNABJD_cjs.DEFAULT_PRIMITIVE_SHAPES; }
|
|
5055
6431
|
});
|
|
5056
6432
|
Object.defineProperty(exports, "DesktopGPUCompiler", {
|
|
5057
6433
|
enumerable: true,
|
|
5058
|
-
get: function () { return
|
|
6434
|
+
get: function () { return chunkPHLNABJD_cjs.DesktopGPUCompiler; }
|
|
5059
6435
|
});
|
|
5060
6436
|
Object.defineProperty(exports, "DialectRegistry", {
|
|
5061
6437
|
enumerable: true,
|
|
5062
|
-
get: function () { return
|
|
6438
|
+
get: function () { return chunkPHLNABJD_cjs.DialectRegistry; }
|
|
5063
6439
|
});
|
|
5064
6440
|
Object.defineProperty(exports, "EdgeCompiler", {
|
|
5065
6441
|
enumerable: true,
|
|
5066
|
-
get: function () { return
|
|
6442
|
+
get: function () { return chunkPHLNABJD_cjs.EdgeCompiler; }
|
|
5067
6443
|
});
|
|
5068
6444
|
Object.defineProperty(exports, "FMUCompiler", {
|
|
5069
6445
|
enumerable: true,
|
|
5070
|
-
get: function () { return
|
|
6446
|
+
get: function () { return chunkPHLNABJD_cjs.FMUCompiler; }
|
|
5071
6447
|
});
|
|
5072
6448
|
Object.defineProperty(exports, "GaussianSplattingCompiler", {
|
|
5073
6449
|
enumerable: true,
|
|
5074
|
-
get: function () { return
|
|
6450
|
+
get: function () { return chunkPHLNABJD_cjs.GaussianSplattingCompiler; }
|
|
5075
6451
|
});
|
|
5076
6452
|
Object.defineProperty(exports, "GaussianTrainCompiler", {
|
|
5077
6453
|
enumerable: true,
|
|
5078
|
-
get: function () { return
|
|
6454
|
+
get: function () { return chunkPHLNABJD_cjs.GaussianTrainCompiler; }
|
|
5079
6455
|
});
|
|
5080
6456
|
Object.defineProperty(exports, "GaussianTrainConfigError", {
|
|
5081
6457
|
enumerable: true,
|
|
5082
|
-
get: function () { return
|
|
6458
|
+
get: function () { return chunkPHLNABJD_cjs.GaussianTrainConfigError; }
|
|
5083
6459
|
});
|
|
5084
6460
|
Object.defineProperty(exports, "HOLOSCRIPT_GRAMMAR_PRESETS", {
|
|
5085
6461
|
enumerable: true,
|
|
5086
|
-
get: function () { return
|
|
6462
|
+
get: function () { return chunkPHLNABJD_cjs.HOLOSCRIPT_GRAMMAR_PRESETS; }
|
|
5087
6463
|
});
|
|
5088
6464
|
Object.defineProperty(exports, "HoloMCPCompiler", {
|
|
5089
6465
|
enumerable: true,
|
|
5090
|
-
get: function () { return
|
|
6466
|
+
get: function () { return chunkPHLNABJD_cjs.HoloMCPCompiler; }
|
|
5091
6467
|
});
|
|
5092
6468
|
Object.defineProperty(exports, "LlamaServerCompiler", {
|
|
5093
6469
|
enumerable: true,
|
|
5094
|
-
get: function () { return
|
|
6470
|
+
get: function () { return chunkPHLNABJD_cjs.LlamaServerCompiler; }
|
|
5095
6471
|
});
|
|
5096
6472
|
Object.defineProperty(exports, "MediaPipelineCompiler", {
|
|
5097
6473
|
enumerable: true,
|
|
5098
|
-
get: function () { return
|
|
6474
|
+
get: function () { return chunkPHLNABJD_cjs.MediaPipelineCompiler; }
|
|
5099
6475
|
});
|
|
5100
6476
|
Object.defineProperty(exports, "NextJSAPICompiler", {
|
|
5101
6477
|
enumerable: true,
|
|
5102
|
-
get: function () { return
|
|
6478
|
+
get: function () { return chunkPHLNABJD_cjs.NextJSAPICompiler; }
|
|
5103
6479
|
});
|
|
5104
6480
|
Object.defineProperty(exports, "NodeServiceCompiler", {
|
|
5105
6481
|
enumerable: true,
|
|
5106
|
-
get: function () { return
|
|
6482
|
+
get: function () { return chunkPHLNABJD_cjs.NodeServiceCompiler; }
|
|
5107
6483
|
});
|
|
5108
6484
|
Object.defineProperty(exports, "OmnigentAgentYamlCompiler", {
|
|
5109
6485
|
enumerable: true,
|
|
5110
|
-
get: function () { return
|
|
6486
|
+
get: function () { return chunkPHLNABJD_cjs.OmnigentAgentYamlCompiler; }
|
|
5111
6487
|
});
|
|
5112
6488
|
Object.defineProperty(exports, "PCGGraphCompiler", {
|
|
5113
6489
|
enumerable: true,
|
|
5114
|
-
get: function () { return
|
|
6490
|
+
get: function () { return chunkPHLNABJD_cjs.PCGGraphCompiler; }
|
|
5115
6491
|
});
|
|
5116
6492
|
Object.defineProperty(exports, "PCG_GRAPH_SCHEMA", {
|
|
5117
6493
|
enumerable: true,
|
|
5118
|
-
get: function () { return
|
|
6494
|
+
get: function () { return chunkPHLNABJD_cjs.PCG_GRAPH_SCHEMA; }
|
|
5119
6495
|
});
|
|
5120
6496
|
Object.defineProperty(exports, "PathTracerCompiler", {
|
|
5121
6497
|
enumerable: true,
|
|
5122
|
-
get: function () { return
|
|
6498
|
+
get: function () { return chunkPHLNABJD_cjs.PathTracerCompiler; }
|
|
5123
6499
|
});
|
|
5124
6500
|
Object.defineProperty(exports, "PhysicsColliderCompiler", {
|
|
5125
6501
|
enumerable: true,
|
|
5126
|
-
get: function () { return
|
|
6502
|
+
get: function () { return chunkPHLNABJD_cjs.PhysicsColliderCompiler; }
|
|
5127
6503
|
});
|
|
5128
6504
|
Object.defineProperty(exports, "REMOTE_TRAIN_EXECUTOR", {
|
|
5129
6505
|
enumerable: true,
|
|
5130
|
-
get: function () { return
|
|
6506
|
+
get: function () { return chunkPHLNABJD_cjs.REMOTE_TRAIN_EXECUTOR; }
|
|
5131
6507
|
});
|
|
5132
6508
|
Object.defineProperty(exports, "REQUIRED_SANDBOX_AUTHORITY_EFFECT", {
|
|
5133
6509
|
enumerable: true,
|
|
5134
|
-
get: function () { return
|
|
6510
|
+
get: function () { return chunkPHLNABJD_cjs.REQUIRED_SANDBOX_AUTHORITY_EFFECT; }
|
|
5135
6511
|
});
|
|
5136
6512
|
Object.defineProperty(exports, "SANDBOX_AUTHORITY_TRAIT", {
|
|
5137
6513
|
enumerable: true,
|
|
5138
|
-
get: function () { return
|
|
6514
|
+
get: function () { return chunkPHLNABJD_cjs.SANDBOX_AUTHORITY_TRAIT; }
|
|
5139
6515
|
});
|
|
5140
6516
|
Object.defineProperty(exports, "SCMCompiler", {
|
|
5141
6517
|
enumerable: true,
|
|
5142
|
-
get: function () { return
|
|
6518
|
+
get: function () { return chunkPHLNABJD_cjs.SCMCompiler; }
|
|
5143
6519
|
});
|
|
5144
6520
|
Object.defineProperty(exports, "SDKCompiler", {
|
|
5145
6521
|
enumerable: true,
|
|
5146
|
-
get: function () { return
|
|
6522
|
+
get: function () { return chunkPHLNABJD_cjs.SDKCompiler; }
|
|
5147
6523
|
});
|
|
5148
6524
|
Object.defineProperty(exports, "SHARED_SORT_SHADER_PATH", {
|
|
5149
6525
|
enumerable: true,
|
|
5150
|
-
get: function () { return
|
|
6526
|
+
get: function () { return chunkPHLNABJD_cjs.SHARED_SORT_SHADER_PATH; }
|
|
5151
6527
|
});
|
|
5152
6528
|
Object.defineProperty(exports, "SOVEREIGN_TRAIN_EXECUTOR", {
|
|
5153
6529
|
enumerable: true,
|
|
5154
|
-
get: function () { return
|
|
6530
|
+
get: function () { return chunkPHLNABJD_cjs.SOVEREIGN_TRAIN_EXECUTOR; }
|
|
5155
6531
|
});
|
|
5156
6532
|
Object.defineProperty(exports, "SVGCompiler", {
|
|
5157
6533
|
enumerable: true,
|
|
5158
|
-
get: function () { return
|
|
6534
|
+
get: function () { return chunkPHLNABJD_cjs.SVGCompiler; }
|
|
5159
6535
|
});
|
|
5160
6536
|
Object.defineProperty(exports, "SpatialAudioCompiler", {
|
|
5161
6537
|
enumerable: true,
|
|
5162
|
-
get: function () { return
|
|
6538
|
+
get: function () { return chunkPHLNABJD_cjs.SpatialAudioCompiler; }
|
|
5163
6539
|
});
|
|
5164
6540
|
Object.defineProperty(exports, "SpatialPartitionPass", {
|
|
5165
6541
|
enumerable: true,
|
|
5166
|
-
get: function () { return
|
|
6542
|
+
get: function () { return chunkPHLNABJD_cjs.SpatialPartitionPass; }
|
|
5167
6543
|
});
|
|
5168
6544
|
Object.defineProperty(exports, "ThreeDTilesCompiler", {
|
|
5169
6545
|
enumerable: true,
|
|
5170
|
-
get: function () { return
|
|
6546
|
+
get: function () { return chunkPHLNABJD_cjs.ThreeDTilesCompiler; }
|
|
5171
6547
|
});
|
|
5172
6548
|
Object.defineProperty(exports, "USDZPipeline", {
|
|
5173
6549
|
enumerable: true,
|
|
5174
|
-
get: function () { return
|
|
6550
|
+
get: function () { return chunkPHLNABJD_cjs.USDZPipeline; }
|
|
5175
6551
|
});
|
|
5176
6552
|
Object.defineProperty(exports, "absorbFMU", {
|
|
5177
6553
|
enumerable: true,
|
|
5178
|
-
get: function () { return
|
|
6554
|
+
get: function () { return chunkPHLNABJD_cjs.absorbFMU; }
|
|
5179
6555
|
});
|
|
5180
6556
|
Object.defineProperty(exports, "assertAuthorityEffects", {
|
|
5181
6557
|
enumerable: true,
|
|
5182
|
-
get: function () { return
|
|
6558
|
+
get: function () { return chunkPHLNABJD_cjs.assertAuthorityEffects; }
|
|
5183
6559
|
});
|
|
5184
6560
|
Object.defineProperty(exports, "bestCategoryForTraits", {
|
|
5185
6561
|
enumerable: true,
|
|
5186
|
-
get: function () { return
|
|
6562
|
+
get: function () { return chunkPHLNABJD_cjs.bestCategoryForTraits; }
|
|
5187
6563
|
});
|
|
5188
6564
|
Object.defineProperty(exports, "checkAuthorityEffects", {
|
|
5189
6565
|
enumerable: true,
|
|
5190
|
-
get: function () { return
|
|
6566
|
+
get: function () { return chunkPHLNABJD_cjs.checkAuthorityEffects; }
|
|
5191
6567
|
});
|
|
5192
6568
|
Object.defineProperty(exports, "collectAuthorityEffectNodes", {
|
|
5193
6569
|
enumerable: true,
|
|
5194
|
-
get: function () { return
|
|
6570
|
+
get: function () { return chunkPHLNABJD_cjs.collectAuthorityEffectNodes; }
|
|
5195
6571
|
});
|
|
5196
6572
|
Object.defineProperty(exports, "compileAllToNextJSAPI", {
|
|
5197
6573
|
enumerable: true,
|
|
5198
|
-
get: function () { return
|
|
6574
|
+
get: function () { return chunkPHLNABJD_cjs.compileAllToNextJSAPI; }
|
|
5199
6575
|
});
|
|
5200
6576
|
Object.defineProperty(exports, "compilePCGGraphFromBlocks", {
|
|
5201
6577
|
enumerable: true,
|
|
5202
|
-
get: function () { return
|
|
6578
|
+
get: function () { return chunkPHLNABJD_cjs.compilePCGGraphFromBlocks; }
|
|
5203
6579
|
});
|
|
5204
6580
|
Object.defineProperty(exports, "compilePipelineSource", {
|
|
5205
6581
|
enumerable: true,
|
|
5206
|
-
get: function () { return
|
|
6582
|
+
get: function () { return chunkPHLNABJD_cjs.compilePipelineSource; }
|
|
5207
6583
|
});
|
|
5208
6584
|
Object.defineProperty(exports, "compilePipelineSourceToNode", {
|
|
5209
6585
|
enumerable: true,
|
|
5210
|
-
get: function () { return
|
|
6586
|
+
get: function () { return chunkPHLNABJD_cjs.compilePipelineSourceToNode; }
|
|
5211
6587
|
});
|
|
5212
6588
|
Object.defineProperty(exports, "compilePipelineSourceToPython", {
|
|
5213
6589
|
enumerable: true,
|
|
5214
|
-
get: function () { return
|
|
6590
|
+
get: function () { return chunkPHLNABJD_cjs.compilePipelineSourceToPython; }
|
|
5215
6591
|
});
|
|
5216
6592
|
Object.defineProperty(exports, "compilePipelineToNode", {
|
|
5217
6593
|
enumerable: true,
|
|
5218
|
-
get: function () { return
|
|
6594
|
+
get: function () { return chunkPHLNABJD_cjs.compilePipelineToNode; }
|
|
5219
6595
|
});
|
|
5220
6596
|
Object.defineProperty(exports, "compilePipelineToPython", {
|
|
5221
6597
|
enumerable: true,
|
|
5222
|
-
get: function () { return
|
|
6598
|
+
get: function () { return chunkPHLNABJD_cjs.compilePipelineToPython; }
|
|
5223
6599
|
});
|
|
5224
6600
|
Object.defineProperty(exports, "compileTo3DTiles", {
|
|
5225
6601
|
enumerable: true,
|
|
5226
|
-
get: function () { return
|
|
6602
|
+
get: function () { return chunkPHLNABJD_cjs.compileTo3DTiles; }
|
|
5227
6603
|
});
|
|
5228
6604
|
Object.defineProperty(exports, "compileToFMU", {
|
|
5229
6605
|
enumerable: true,
|
|
5230
|
-
get: function () { return
|
|
6606
|
+
get: function () { return chunkPHLNABJD_cjs.compileToFMU; }
|
|
5231
6607
|
});
|
|
5232
6608
|
Object.defineProperty(exports, "compileToNextJSAPI", {
|
|
5233
6609
|
enumerable: true,
|
|
5234
|
-
get: function () { return
|
|
6610
|
+
get: function () { return chunkPHLNABJD_cjs.compileToNextJSAPI; }
|
|
5235
6611
|
});
|
|
5236
6612
|
Object.defineProperty(exports, "compileToPCGGraph", {
|
|
5237
6613
|
enumerable: true,
|
|
5238
|
-
get: function () { return
|
|
6614
|
+
get: function () { return chunkPHLNABJD_cjs.compileToPCGGraph; }
|
|
5239
6615
|
});
|
|
5240
6616
|
Object.defineProperty(exports, "createGaussianSplattingCompiler", {
|
|
5241
6617
|
enumerable: true,
|
|
5242
|
-
get: function () { return
|
|
6618
|
+
get: function () { return chunkPHLNABJD_cjs.createGaussianSplattingCompiler; }
|
|
5243
6619
|
});
|
|
5244
6620
|
Object.defineProperty(exports, "createGaussianTrainCompiler", {
|
|
5245
6621
|
enumerable: true,
|
|
5246
|
-
get: function () { return
|
|
6622
|
+
get: function () { return chunkPHLNABJD_cjs.createGaussianTrainCompiler; }
|
|
5247
6623
|
});
|
|
5248
6624
|
Object.defineProperty(exports, "createOmnigentAgentYamlCompiler", {
|
|
5249
6625
|
enumerable: true,
|
|
5250
|
-
get: function () { return
|
|
6626
|
+
get: function () { return chunkPHLNABJD_cjs.createOmnigentAgentYamlCompiler; }
|
|
5251
6627
|
});
|
|
5252
6628
|
Object.defineProperty(exports, "createThreeDTilesCompiler", {
|
|
5253
6629
|
enumerable: true,
|
|
5254
|
-
get: function () { return
|
|
6630
|
+
get: function () { return chunkPHLNABJD_cjs.createThreeDTilesCompiler; }
|
|
5255
6631
|
});
|
|
5256
6632
|
Object.defineProperty(exports, "detectMultiUserSharedSort", {
|
|
5257
6633
|
enumerable: true,
|
|
5258
|
-
get: function () { return
|
|
6634
|
+
get: function () { return chunkPHLNABJD_cjs.detectMultiUserSharedSort; }
|
|
5259
6635
|
});
|
|
5260
6636
|
Object.defineProperty(exports, "ensureDialectsBooted", {
|
|
5261
6637
|
enumerable: true,
|
|
5262
|
-
get: function () { return
|
|
6638
|
+
get: function () { return chunkPHLNABJD_cjs.ensureDialectsBooted; }
|
|
5263
6639
|
});
|
|
5264
6640
|
Object.defineProperty(exports, "generateHoloScriptGbnf", {
|
|
5265
6641
|
enumerable: true,
|
|
5266
|
-
get: function () { return
|
|
6642
|
+
get: function () { return chunkPHLNABJD_cjs.generateHoloScriptGbnf; }
|
|
5267
6643
|
});
|
|
5268
6644
|
Object.defineProperty(exports, "isHoloScriptGrammarPreset", {
|
|
5269
6645
|
enumerable: true,
|
|
5270
|
-
get: function () { return
|
|
6646
|
+
get: function () { return chunkPHLNABJD_cjs.isHoloScriptGrammarPreset; }
|
|
5271
6647
|
});
|
|
5272
6648
|
Object.defineProperty(exports, "pcgGraphToUnrealXml", {
|
|
5273
6649
|
enumerable: true,
|
|
5274
|
-
get: function () { return
|
|
6650
|
+
get: function () { return chunkPHLNABJD_cjs.pcgGraphToUnrealXml; }
|
|
5275
6651
|
});
|
|
5276
6652
|
Object.defineProperty(exports, "quickSafetyCheck", {
|
|
5277
6653
|
enumerable: true,
|
|
5278
|
-
get: function () { return
|
|
6654
|
+
get: function () { return chunkPHLNABJD_cjs.quickSafetyCheck; }
|
|
5279
6655
|
});
|
|
5280
6656
|
Object.defineProperty(exports, "registerBuiltinDialects", {
|
|
5281
6657
|
enumerable: true,
|
|
5282
|
-
get: function () { return
|
|
6658
|
+
get: function () { return chunkPHLNABJD_cjs.registerBuiltinDialects; }
|
|
5283
6659
|
});
|
|
5284
6660
|
Object.defineProperty(exports, "runSafetyPass", {
|
|
5285
6661
|
enumerable: true,
|
|
5286
|
-
get: function () { return
|
|
6662
|
+
get: function () { return chunkPHLNABJD_cjs.runSafetyPass; }
|
|
5287
6663
|
});
|
|
5288
6664
|
Object.defineProperty(exports, "selectModality", {
|
|
5289
6665
|
enumerable: true,
|
|
5290
|
-
get: function () { return
|
|
6666
|
+
get: function () { return chunkPHLNABJD_cjs.selectModality; }
|
|
5291
6667
|
});
|
|
5292
6668
|
Object.defineProperty(exports, "selectModalityForAll", {
|
|
5293
6669
|
enumerable: true,
|
|
5294
|
-
get: function () { return
|
|
6670
|
+
get: function () { return chunkPHLNABJD_cjs.selectModalityForAll; }
|
|
5295
6671
|
});
|
|
5296
6672
|
Object.defineProperty(exports, "spatialPartition", {
|
|
5297
6673
|
enumerable: true,
|
|
5298
|
-
get: function () { return
|
|
6674
|
+
get: function () { return chunkPHLNABJD_cjs.spatialPartition; }
|
|
5299
6675
|
});
|
|
5300
6676
|
Object.defineProperty(exports, "streamWorldTiles", {
|
|
5301
6677
|
enumerable: true,
|
|
5302
|
-
get: function () { return
|
|
6678
|
+
get: function () { return chunkPHLNABJD_cjs.streamWorldTiles; }
|
|
5303
6679
|
});
|
|
5304
6680
|
Object.defineProperty(exports, "generateHullGeometry", {
|
|
5305
6681
|
enumerable: true,
|
|
@@ -5315,23 +6691,23 @@ Object.defineProperty(exports, "generateSplineGeometry", {
|
|
|
5315
6691
|
});
|
|
5316
6692
|
Object.defineProperty(exports, "SceneIRCompiler", {
|
|
5317
6693
|
enumerable: true,
|
|
5318
|
-
get: function () { return
|
|
6694
|
+
get: function () { return chunkF47FEV4X_cjs.SceneIRCompiler; }
|
|
5319
6695
|
});
|
|
5320
6696
|
Object.defineProperty(exports, "DaimonSeedCompiler", {
|
|
5321
6697
|
enumerable: true,
|
|
5322
|
-
get: function () { return
|
|
6698
|
+
get: function () { return chunkOQVHCYY4_cjs.DaimonSeedCompiler; }
|
|
5323
6699
|
});
|
|
5324
6700
|
Object.defineProperty(exports, "computeExportFidelity", {
|
|
5325
6701
|
enumerable: true,
|
|
5326
|
-
get: function () { return
|
|
6702
|
+
get: function () { return chunkOQVHCYY4_cjs.computeExportFidelity; }
|
|
5327
6703
|
});
|
|
5328
6704
|
Object.defineProperty(exports, "createDaimonSeedCompiler", {
|
|
5329
6705
|
enumerable: true,
|
|
5330
|
-
get: function () { return
|
|
6706
|
+
get: function () { return chunkOQVHCYY4_cjs.createDaimonSeedCompiler; }
|
|
5331
6707
|
});
|
|
5332
6708
|
Object.defineProperty(exports, "runHysteresisExp2", {
|
|
5333
6709
|
enumerable: true,
|
|
5334
|
-
get: function () { return
|
|
6710
|
+
get: function () { return chunkOQVHCYY4_cjs.runHysteresisExp2; }
|
|
5335
6711
|
});
|
|
5336
6712
|
Object.defineProperty(exports, "COCOExporter", {
|
|
5337
6713
|
enumerable: true,
|
|
@@ -5347,91 +6723,91 @@ Object.defineProperty(exports, "SemanticSceneGraph", {
|
|
|
5347
6723
|
});
|
|
5348
6724
|
Object.defineProperty(exports, "AgentInferenceCompiler", {
|
|
5349
6725
|
enumerable: true,
|
|
5350
|
-
get: function () { return
|
|
6726
|
+
get: function () { return chunkCRUIGXF7_cjs.AgentInferenceCompiler; }
|
|
5351
6727
|
});
|
|
5352
6728
|
Object.defineProperty(exports, "AgentInferenceExportTarget", {
|
|
5353
6729
|
enumerable: true,
|
|
5354
|
-
get: function () { return
|
|
6730
|
+
get: function () { return chunkCRUIGXF7_cjs.AgentInferenceExportTarget_default; }
|
|
5355
6731
|
});
|
|
5356
6732
|
Object.defineProperty(exports, "createAgentInferenceCompiler", {
|
|
5357
6733
|
enumerable: true,
|
|
5358
|
-
get: function () { return
|
|
6734
|
+
get: function () { return chunkCRUIGXF7_cjs.createAgentInferenceCompiler; }
|
|
5359
6735
|
});
|
|
5360
6736
|
Object.defineProperty(exports, "createPythonAgentInferenceCompiler", {
|
|
5361
6737
|
enumerable: true,
|
|
5362
|
-
get: function () { return
|
|
6738
|
+
get: function () { return chunkCRUIGXF7_cjs.createPythonAgentInferenceCompiler; }
|
|
5363
6739
|
});
|
|
5364
6740
|
Object.defineProperty(exports, "USDPhysicsCompiler", {
|
|
5365
6741
|
enumerable: true,
|
|
5366
|
-
get: function () { return
|
|
6742
|
+
get: function () { return chunkFQ4MYZYU_cjs.USDPhysicsCompiler; }
|
|
5367
6743
|
});
|
|
5368
6744
|
Object.defineProperty(exports, "SDFCompiler", {
|
|
5369
6745
|
enumerable: true,
|
|
5370
|
-
get: function () { return
|
|
6746
|
+
get: function () { return chunkQ6VW7MGX_cjs.SDFCompiler; }
|
|
5371
6747
|
});
|
|
5372
6748
|
Object.defineProperty(exports, "StateCompiler", {
|
|
5373
6749
|
enumerable: true,
|
|
5374
|
-
get: function () { return
|
|
6750
|
+
get: function () { return chunkAUMTQV64_cjs.StateCompiler; }
|
|
5375
6751
|
});
|
|
5376
6752
|
Object.defineProperty(exports, "TraitCompositionCompiler", {
|
|
5377
6753
|
enumerable: true,
|
|
5378
|
-
get: function () { return
|
|
6754
|
+
get: function () { return chunkVSO6HPDZ_cjs.TraitCompositionCompiler; }
|
|
5379
6755
|
});
|
|
5380
6756
|
Object.defineProperty(exports, "IncrementalCompiler", {
|
|
5381
6757
|
enumerable: true,
|
|
5382
|
-
get: function () { return
|
|
6758
|
+
get: function () { return chunkXRQCTTDC_cjs.IncrementalCompiler; }
|
|
5383
6759
|
});
|
|
5384
6760
|
Object.defineProperty(exports, "createIncrementalCompiler", {
|
|
5385
6761
|
enumerable: true,
|
|
5386
|
-
get: function () { return
|
|
6762
|
+
get: function () { return chunkXRQCTTDC_cjs.createIncrementalCompiler; }
|
|
5387
6763
|
});
|
|
5388
6764
|
Object.defineProperty(exports, "AndroidCompiler", {
|
|
5389
6765
|
enumerable: true,
|
|
5390
|
-
get: function () { return
|
|
6766
|
+
get: function () { return chunkFPGYWNNA_cjs.AndroidCompiler; }
|
|
5391
6767
|
});
|
|
5392
6768
|
Object.defineProperty(exports, "AndroidXRCompiler", {
|
|
5393
6769
|
enumerable: true,
|
|
5394
|
-
get: function () { return
|
|
6770
|
+
get: function () { return chunkQKLEDRHN_cjs.AndroidXRCompiler; }
|
|
5395
6771
|
});
|
|
5396
6772
|
Object.defineProperty(exports, "IOSCompiler", {
|
|
5397
6773
|
enumerable: true,
|
|
5398
|
-
get: function () { return
|
|
6774
|
+
get: function () { return chunkK53L47NH_cjs.IOSCompiler; }
|
|
5399
6775
|
});
|
|
5400
6776
|
Object.defineProperty(exports, "VisionOSCompiler", {
|
|
5401
6777
|
enumerable: true,
|
|
5402
|
-
get: function () { return
|
|
6778
|
+
get: function () { return chunkJ74S4ZMF_cjs.VisionOSCompiler; }
|
|
5403
6779
|
});
|
|
5404
6780
|
Object.defineProperty(exports, "WASMCompiler", {
|
|
5405
6781
|
enumerable: true,
|
|
5406
|
-
get: function () { return
|
|
6782
|
+
get: function () { return chunkNTSLNIY7_cjs.WASMCompiler; }
|
|
5407
6783
|
});
|
|
5408
6784
|
Object.defineProperty(exports, "WebGPUCompiler", {
|
|
5409
6785
|
enumerable: true,
|
|
5410
|
-
get: function () { return
|
|
6786
|
+
get: function () { return chunkU6CQOM5Q_cjs.WebGPUCompiler; }
|
|
5411
6787
|
});
|
|
5412
6788
|
Object.defineProperty(exports, "DTDLCompiler", {
|
|
5413
6789
|
enumerable: true,
|
|
5414
|
-
get: function () { return
|
|
6790
|
+
get: function () { return chunkFGTXAVKG_cjs.DTDLCompiler; }
|
|
5415
6791
|
});
|
|
5416
6792
|
Object.defineProperty(exports, "URDFCompiler", {
|
|
5417
6793
|
enumerable: true,
|
|
5418
|
-
get: function () { return
|
|
6794
|
+
get: function () { return chunkN2BOTBPG_cjs.URDFCompiler; }
|
|
5419
6795
|
});
|
|
5420
6796
|
Object.defineProperty(exports, "createURDFCompiler", {
|
|
5421
6797
|
enumerable: true,
|
|
5422
|
-
get: function () { return
|
|
6798
|
+
get: function () { return chunkN2BOTBPG_cjs.createURDFCompiler; }
|
|
5423
6799
|
});
|
|
5424
6800
|
Object.defineProperty(exports, "OpenXRCompiler", {
|
|
5425
6801
|
enumerable: true,
|
|
5426
|
-
get: function () { return
|
|
6802
|
+
get: function () { return chunkZHW6TDZ6_cjs.OpenXRCompiler; }
|
|
5427
6803
|
});
|
|
5428
6804
|
Object.defineProperty(exports, "VRChatCompiler", {
|
|
5429
6805
|
enumerable: true,
|
|
5430
|
-
get: function () { return
|
|
6806
|
+
get: function () { return chunkZXXC2GXB_cjs.VRChatCompiler; }
|
|
5431
6807
|
});
|
|
5432
6808
|
Object.defineProperty(exports, "UnityCompiler", {
|
|
5433
6809
|
enumerable: true,
|
|
5434
|
-
get: function () { return
|
|
6810
|
+
get: function () { return chunkLNJKBQ2B_cjs.UnityCompiler; }
|
|
5435
6811
|
});
|
|
5436
6812
|
Object.defineProperty(exports, "PlatformConditionalCompilerMixin", {
|
|
5437
6813
|
enumerable: true,
|
|
@@ -5455,7 +6831,7 @@ Object.defineProperty(exports, "normalizePlatformName", {
|
|
|
5455
6831
|
});
|
|
5456
6832
|
Object.defineProperty(exports, "GodotCompiler", {
|
|
5457
6833
|
enumerable: true,
|
|
5458
|
-
get: function () { return
|
|
6834
|
+
get: function () { return chunkAN3ZH7M7_cjs.GodotCompiler; }
|
|
5459
6835
|
});
|
|
5460
6836
|
Object.defineProperty(exports, "SCIENTIFIC_COLOR_MAPS", {
|
|
5461
6837
|
enumerable: true,
|
|
@@ -5491,23 +6867,23 @@ Object.defineProperty(exports, "srgbToHex", {
|
|
|
5491
6867
|
});
|
|
5492
6868
|
Object.defineProperty(exports, "CompilerBase", {
|
|
5493
6869
|
enumerable: true,
|
|
5494
|
-
get: function () { return
|
|
6870
|
+
get: function () { return chunkCMEINO5I_cjs.CompilerBase; }
|
|
5495
6871
|
});
|
|
5496
6872
|
Object.defineProperty(exports, "CompilerDocumentationGenerator", {
|
|
5497
6873
|
enumerable: true,
|
|
5498
|
-
get: function () { return
|
|
6874
|
+
get: function () { return chunkCMEINO5I_cjs.CompilerDocumentationGenerator; }
|
|
5499
6875
|
});
|
|
5500
6876
|
Object.defineProperty(exports, "UnauthorizedCompilerAccessError", {
|
|
5501
6877
|
enumerable: true,
|
|
5502
|
-
get: function () { return
|
|
6878
|
+
get: function () { return chunkCMEINO5I_cjs.UnauthorizedCompilerAccessError; }
|
|
5503
6879
|
});
|
|
5504
6880
|
Object.defineProperty(exports, "createTestCompilerToken", {
|
|
5505
6881
|
enumerable: true,
|
|
5506
|
-
get: function () { return
|
|
6882
|
+
get: function () { return chunkCMEINO5I_cjs.createTestCompilerToken; }
|
|
5507
6883
|
});
|
|
5508
6884
|
Object.defineProperty(exports, "isCapabilityTokenCredential", {
|
|
5509
6885
|
enumerable: true,
|
|
5510
|
-
get: function () { return
|
|
6886
|
+
get: function () { return chunkCMEINO5I_cjs.isCapabilityTokenCredential; }
|
|
5511
6887
|
});
|
|
5512
6888
|
exports.AgentTrustLedger = AgentTrustLedger;
|
|
5513
6889
|
exports.AlphaTracker = AlphaTracker;
|
|
@@ -5520,6 +6896,13 @@ exports.COLYSEUS_SCHEMA_FIELD_TIERS = COLYSEUS_SCHEMA_FIELD_TIERS;
|
|
|
5520
6896
|
exports.DEFAULT_DISPATCH_LATENCY_OPERATION = DEFAULT_DISPATCH_LATENCY_OPERATION;
|
|
5521
6897
|
exports.DispatchPolicy = DispatchPolicy;
|
|
5522
6898
|
exports.DispatchTier = DispatchTier;
|
|
6899
|
+
exports.HSIAdmissionError = HSIAdmissionError;
|
|
6900
|
+
exports.HSIIRCompiler = HSIIRCompiler;
|
|
6901
|
+
exports.HSI_AUDIT_SCHEMA_VERSION = HSI_AUDIT_SCHEMA_VERSION;
|
|
6902
|
+
exports.HSI_IR_SCHEMA_VERSION = HSI_IR_SCHEMA_VERSION;
|
|
6903
|
+
exports.HSI_LEARNING_GRAPH_SCHEMA_VERSION = HSI_LEARNING_GRAPH_SCHEMA_VERSION;
|
|
6904
|
+
exports.HSI_OBSERVATION_MEDIATOR_EDGE = HSI_OBSERVATION_MEDIATOR_EDGE;
|
|
6905
|
+
exports.HSI_TRACE_SCHEMA_VERSION = HSI_TRACE_SCHEMA_VERSION;
|
|
5523
6906
|
exports.MCPConfigCompiler = MCPConfigCompiler;
|
|
5524
6907
|
exports.MultiLayerCompiler = MultiLayerCompiler;
|
|
5525
6908
|
exports.NATIVE_COMPILE_MODES = NATIVE_COMPILE_MODES;
|
|
@@ -5529,29 +6912,45 @@ exports.SOVEREIGN_ENGINES = SOVEREIGN_ENGINES;
|
|
|
5529
6912
|
exports.SOVEREIGN_TARGETS = SOVEREIGN_TARGETS;
|
|
5530
6913
|
exports.Vector2DCompiler = Vector2DCompiler;
|
|
5531
6914
|
exports.WebGPUWGSLPlugin = WebGPUWGSLPlugin;
|
|
6915
|
+
exports.applyIntervention = applyIntervention;
|
|
6916
|
+
exports.behavioralProjection = behavioralProjection;
|
|
5532
6917
|
exports.buildColyseusAuthorityGraph = buildColyseusAuthorityGraph;
|
|
5533
6918
|
exports.buildColyseusCrossFileContext = buildColyseusCrossFileContext;
|
|
5534
6919
|
exports.byzantineResilientMerge = byzantineResilientMerge;
|
|
5535
6920
|
exports.createAuthoritySymbolGraph = createAuthoritySymbolGraph;
|
|
5536
6921
|
exports.createDefaultDispatchLatencyScenarios = createDefaultDispatchLatencyScenarios;
|
|
6922
|
+
exports.createHSIIRCompiler = createHSIIRCompiler;
|
|
5537
6923
|
exports.createProvenanceBoundsChecker = createProvenanceBoundsChecker;
|
|
5538
6924
|
exports.createTier3CpuDirectOutput = createTier3CpuDirectOutput;
|
|
5539
6925
|
exports.detectWasmRuntime = detectWasmRuntime;
|
|
6926
|
+
exports.emitSceneIRTsx = emitSceneIRTsx;
|
|
5540
6927
|
exports.formatDispatchLatencyBenchmarkReport = formatDispatchLatencyBenchmarkReport;
|
|
6928
|
+
exports.generateAuditCases = generateAuditCases;
|
|
5541
6929
|
exports.generateTraitForTarget = generateTraitForTarget;
|
|
5542
6930
|
exports.getAllManifests = getAllManifests;
|
|
5543
6931
|
exports.getTraitInfo = getTraitInfo;
|
|
6932
|
+
exports.hsiSha256 = hsiSha256;
|
|
6933
|
+
exports.hsiSourceTextDigest = hsiSourceTextDigest;
|
|
6934
|
+
exports.hsiStableStringify = hsiStableStringify;
|
|
5544
6935
|
exports.isBridgeTarget = isBridgeTarget;
|
|
5545
6936
|
exports.isSovereignTarget = isSovereignTarget;
|
|
5546
6937
|
exports.listTraitsForTarget = listTraitsForTarget;
|
|
6938
|
+
exports.lowerCompositionToHSIIR = lowerCompositionToHSIIR;
|
|
6939
|
+
exports.lowerHoloExpression = lowerHoloExpression;
|
|
5547
6940
|
exports.manifestFromPlugin = manifestFromPlugin;
|
|
5548
6941
|
exports.mergeSocialCausalModels = mergeSocialCausalModels;
|
|
5549
6942
|
exports.mostRestrictiveTier = mostRestrictiveTier;
|
|
5550
6943
|
exports.platformPluginRegistry = platformPluginRegistry;
|
|
6944
|
+
exports.projectLearningGraph = projectLearningGraph;
|
|
5551
6945
|
exports.queryTrait = queryTrait;
|
|
5552
6946
|
exports.recommendDispatchPolicyDefaults = recommendDispatchPolicyDefaults;
|
|
6947
|
+
exports.renameComposition = renameComposition;
|
|
6948
|
+
exports.renameTrace = renameTrace;
|
|
6949
|
+
exports.reorderComposition = reorderComposition;
|
|
5553
6950
|
exports.runCompilerWasmSnnEmulator = runCompilerWasmSnnEmulator;
|
|
5554
6951
|
exports.runDispatchPolicyLatencyBenchmark = runDispatchPolicyLatencyBenchmark;
|
|
6952
|
+
exports.runExactTrace = runExactTrace;
|
|
6953
|
+
exports.runHSIAudit = runHSIAudit;
|
|
5555
6954
|
exports.splitServerAuthority = splitServerAuthority;
|
|
5556
6955
|
exports.targetSovereignty = targetSovereignty;
|
|
5557
6956
|
exports.traitExists = traitExists;
|