@holoscript/core 8.0.12 → 8.0.14
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 +14 -0
- package/bin/holo-decision.mjs +133 -0
- package/dist/{GLTFPipeline-L76YTXKA.js → GLTFPipeline-6LS3UDYX.js} +6 -6
- package/dist/{GLTFPipeline-ZWJN7GI6.cjs → GLTFPipeline-VTI6PRRQ.cjs} +10 -10
- package/dist/{HoloCompositionParser-FLBZKFD3.js → HoloCompositionParser-GILABNN3.js} +5 -5
- package/dist/{HoloCompositionParser-3XEC7IJC.cjs → HoloCompositionParser-ZVRYVEA5.cjs} +12 -12
- package/dist/{HoloScriptPlusParser-RNUCHOAJ.cjs → HoloScriptPlusParser-WTPRPRPR.cjs} +8 -8
- package/dist/{HoloScriptPlusParser-55AY4MUF.js → HoloScriptPlusParser-ZP53ECSL.js} +5 -5
- package/dist/{SceneIRCompiler-KWUFHZ4O.cjs → SceneIRCompiler-7KQ5NKAU.cjs} +11 -11
- package/dist/{SceneIRCompiler-63KA3M2F.js → SceneIRCompiler-VX75RB6H.js} +6 -6
- package/dist/{chunk-EM2OGPYE.js → chunk-2GKF7JQ6.js} +3 -3
- package/dist/{chunk-HVX7QQYK.js → chunk-3KHRZTNW.js} +3 -3
- package/dist/{chunk-UTUD6GJI.js → chunk-42Z3SVHQ.js} +3 -3
- package/dist/{chunk-Z4IUBW46.js → chunk-47XZ62KM.js} +112 -55
- package/dist/{chunk-GGR7QUKK.cjs → chunk-4CRMVEON.cjs} +37 -37
- package/dist/{chunk-QBY7LRN2.js → chunk-4NEPHK2K.js} +3 -3
- package/dist/{chunk-65S62L4D.cjs → chunk-5B2AJKA5.cjs} +20 -20
- package/dist/{chunk-PJFTTSKE.js → chunk-5T6BWIB7.js} +4 -4
- package/dist/{chunk-KFVNCW4Q.js → chunk-62OYZT6Q.js} +3 -3
- package/dist/{chunk-3KMANSQJ.cjs → chunk-645EWDZW.cjs} +4 -4
- package/dist/{chunk-BP4KTMLY.js → chunk-6FCNMTL5.js} +4 -4
- package/dist/{chunk-77QI552M.js → chunk-73EDVY5D.js} +3 -3
- package/dist/{chunk-7IDJDMPU.cjs → chunk-7FYSSI3C.cjs} +27 -2
- package/dist/{chunk-WNYXT4TE.cjs → chunk-7ITJP33Q.cjs} +3 -3
- package/dist/chunk-7ZKQ32XK.js +1571 -0
- package/dist/{chunk-P7JEKJTZ.cjs → chunk-B6JHTTMR.cjs} +25 -14
- package/dist/{chunk-FG6PYGIZ.js → chunk-BLCWQ225.js} +4 -4
- package/dist/{chunk-7NPZZZD7.js → chunk-C73GVAYC.js} +16 -9
- package/dist/{chunk-RMOEL2GD.cjs → chunk-CESMPUEZ.cjs} +3794 -1137
- package/dist/{chunk-SQXAZHDG.js → chunk-CHIZSMWD.js} +3 -3
- package/dist/{chunk-G35CAQ7I.cjs → chunk-D44CEFY4.cjs} +5 -5
- package/dist/chunk-ERYKKPHW.cjs +1884 -0
- package/dist/{chunk-TYNRXRHF.js → chunk-EYHPTJ3F.js} +3695 -1045
- package/dist/{chunk-J3UHV5T4.cjs → chunk-FGXJPJ3W.cjs} +4 -4
- package/dist/{chunk-IJU6AS67.cjs → chunk-FHR2AVMA.cjs} +23 -23
- package/dist/{chunk-LMB555QB.cjs → chunk-FOM36K5I.cjs} +18 -18
- package/dist/{chunk-JBYBMBMW.js → chunk-FWKEY4LD.js} +3 -2
- package/dist/{chunk-ZRPALBQB.cjs → chunk-GGH3ZYDB.cjs} +5 -5
- package/dist/{chunk-2BYAUHBO.js → chunk-GI5YYZH6.js} +3 -3
- package/dist/{chunk-VTEXJOSD.cjs → chunk-GYJLP4BO.cjs} +30 -30
- package/dist/{chunk-OC6GV5QH.cjs → chunk-HCONR4J6.cjs} +38 -38
- package/dist/{chunk-B3CWTCK2.js → chunk-IA7FCSRY.js} +27 -2
- package/dist/{chunk-5FYMCVBY.js → chunk-IXFNA5TT.js} +4 -4
- package/dist/{chunk-G6KACNMO.js → chunk-JCVSCKUH.js} +4 -4
- package/dist/{chunk-FHVPN7BN.js → chunk-JQCXLKAU.js} +3 -3
- package/dist/{chunk-F3YT6GUF.cjs → chunk-KLM6QD6D.cjs} +14 -14
- package/dist/{chunk-UGQ3QNV6.js → chunk-KOGPVAP6.js} +24 -8
- package/dist/{chunk-CKV5NYAE.js → chunk-KYJD2UMV.js} +4 -4
- package/dist/{chunk-LB3ZZMKT.cjs → chunk-L4DBUX3N.cjs} +10 -10
- package/dist/{chunk-RXQNRZ5F.js → chunk-LGRKBTPM.js} +3 -3
- package/dist/{chunk-OMNHTCS4.cjs → chunk-LHUDAJQT.cjs} +3 -2
- package/dist/{chunk-PDXX5UI4.cjs → chunk-LQNL3IYV.cjs} +38 -38
- package/dist/{chunk-WWNCM473.js → chunk-M7XR3F53.js} +4 -4
- package/dist/{chunk-IFW5IW4L.cjs → chunk-ML4V5PVU.cjs} +670 -627
- package/dist/{chunk-656IAS7B.cjs → chunk-N7IYRAFG.cjs} +21 -14
- package/dist/chunk-N7MIIDLI.cjs +1605 -0
- package/dist/{chunk-USOUXQYD.js → chunk-NWKARJM2.js} +130 -22
- package/dist/{chunk-VVAAZITA.cjs → chunk-OOP4S3GU.cjs} +5 -5
- package/dist/{chunk-TX6ZBIF4.js → chunk-ORBVCOTC.js} +3 -3
- package/dist/{chunk-RRQIAJLQ.cjs → chunk-OSKGCXAQ.cjs} +5 -5
- package/dist/{chunk-QEDMOGF3.cjs → chunk-P65OIMJT.cjs} +7 -7
- package/dist/{chunk-QM7FJB5W.js → chunk-PSWCJQS4.js} +4 -4
- package/dist/{chunk-7N63JHUN.cjs → chunk-PZ46WRHX.cjs} +8 -8
- package/dist/{chunk-AATYYLYK.js → chunk-Q4J2K7FI.js} +16 -5
- package/dist/chunk-QLPRI3QW.js +1875 -0
- package/dist/{chunk-WTH23ISI.js → chunk-R5VKLUMR.js} +4 -4
- package/dist/{chunk-NQN5LFN4.cjs → chunk-REN3LHO6.cjs} +19 -19
- package/dist/{chunk-JEJ7TT54.js → chunk-RVN7OPCP.js} +4 -4
- package/dist/{chunk-ZK7KX5CD.cjs → chunk-SE2Y5BSL.cjs} +6 -6
- package/dist/{chunk-2X3IPCBK.cjs → chunk-SKVBUGMC.cjs} +7 -7
- package/dist/{chunk-GZPUA2TL.cjs → chunk-SNMQUWIO.cjs} +10 -10
- package/dist/{chunk-OIBRWLPY.cjs → chunk-TKDDIE3T.cjs} +54 -3
- package/dist/{chunk-5H5GFBMG.cjs → chunk-TMNAKNV2.cjs} +112 -55
- package/dist/{chunk-5LVFTGKH.js → chunk-TZQKJOPC.js} +3 -3
- package/dist/{chunk-TSTFYGGX.js → chunk-UKEK2NZJ.js} +3 -3
- package/dist/{chunk-3IUHTGDD.cjs → chunk-VA7THINF.cjs} +38 -38
- package/dist/{chunk-Z557DVYN.js → chunk-VMCR5QVI.js} +4 -4
- package/dist/{chunk-IS7NTKY5.cjs → chunk-VTFLKSJL.cjs} +14 -14
- package/dist/{chunk-VO52AJD5.js → chunk-VXHB6ZHY.js} +4 -4
- package/dist/{chunk-S4O7CFHQ.cjs → chunk-VZI7S7P6.cjs} +7 -7
- package/dist/{chunk-BQJ3YBF3.js → chunk-W4AJMMQR.js} +667 -628
- package/dist/{chunk-2KKOYZYI.cjs → chunk-XZC75AJ4.cjs} +5 -5
- package/dist/{chunk-FWCHPCD4.js → chunk-Y2OCKXVD.js} +4 -4
- package/dist/{chunk-EI5G5JLY.cjs → chunk-YBM34FUJ.cjs} +134 -22
- package/dist/{chunk-DUG3OQAS.js → chunk-YDSNDCV3.js} +3 -3
- package/dist/{chunk-566ZB4LZ.cjs → chunk-YM7UUYR5.cjs} +5 -5
- package/dist/{chunk-BCP4E7MD.cjs → chunk-YMI3ED3B.cjs} +26 -10
- package/dist/{chunk-CP7V3ATL.js → chunk-Z7NUL73U.js} +51 -4
- package/dist/cli/holoscript-runner.cjs +11 -11
- package/dist/cli/holoscript-runner.js +4 -4
- package/dist/compiler/agent-inference.cjs +8 -8
- package/dist/compiler/agent-inference.js +4 -4
- package/dist/compiler/android-xr.cjs +7 -7
- package/dist/compiler/android-xr.js +5 -5
- package/dist/compiler/android.cjs +6 -6
- package/dist/compiler/android.js +4 -4
- package/dist/compiler/context.cjs +6 -6
- package/dist/compiler/context.js +3 -3
- package/dist/compiler/daimon-seed.cjs +9 -9
- package/dist/compiler/daimon-seed.js +4 -4
- package/dist/compiler/domain-block-utils.cjs +165 -165
- package/dist/compiler/domain-block-utils.js +4 -4
- package/dist/compiler/dtdl.cjs +7 -7
- package/dist/compiler/dtdl.js +4 -4
- package/dist/compiler/gltf-pipeline.cjs +8 -8
- package/dist/compiler/gltf-pipeline.js +1 -1
- package/dist/compiler/godot.cjs +6 -6
- package/dist/compiler/godot.js +5 -5
- package/dist/compiler/incremental.cjs +8 -8
- package/dist/compiler/incremental.js +3 -3
- package/dist/compiler/index.cjs +871 -207
- package/dist/compiler/index.d.ts +21 -1
- package/dist/compiler/index.js +696 -60
- package/dist/compiler/ios.cjs +6 -6
- package/dist/compiler/ios.js +4 -4
- package/dist/compiler/llm-provider-capabilities.cjs +6 -6
- package/dist/compiler/llm-provider-capabilities.js +3 -3
- package/dist/compiler/openxr.cjs +6 -6
- package/dist/compiler/openxr.js +5 -5
- package/dist/compiler/sdf.cjs +7 -7
- package/dist/compiler/sdf.js +5 -5
- package/dist/compiler/state.cjs +6 -6
- package/dist/compiler/state.js +4 -4
- package/dist/compiler/trait-composition.cjs +7 -7
- package/dist/compiler/trait-composition.js +3 -3
- package/dist/compiler/unity.cjs +6 -6
- package/dist/compiler/unity.js +5 -5
- package/dist/compiler/unreal.cjs +7 -7
- package/dist/compiler/unreal.js +5 -5
- package/dist/compiler/urdf.cjs +14 -14
- package/dist/compiler/urdf.js +5 -5
- package/dist/compiler/usd-physics.cjs +7 -7
- package/dist/compiler/usd-physics.js +4 -4
- package/dist/compiler/visionos.cjs +6 -6
- package/dist/compiler/visionos.js +5 -5
- package/dist/compiler/vrchat.cjs +7 -7
- package/dist/compiler/vrchat.js +5 -5
- package/dist/compiler/wasm.cjs +10 -10
- package/dist/compiler/wasm.js +5 -5
- package/dist/compiler/webgpu.cjs +6 -6
- package/dist/compiler/webgpu.js +5 -5
- package/dist/constants.cjs +3 -3
- package/dist/constants.js +1 -1
- package/dist/entries/scripting.cjs +6 -6
- package/dist/entries/scripting.js +2 -2
- package/dist/evolution/index.cjs +21 -17
- package/dist/evolution/index.d.ts +9 -0
- package/dist/evolution/index.js +6 -6
- package/dist/index.cjs +930 -703
- package/dist/index.d.ts +70 -5
- package/dist/index.js +192 -109
- package/dist/parser.cjs +19 -19
- package/dist/parser.js +5 -5
- package/dist/reconstruction/index.cjs +127 -38
- package/dist/reconstruction/index.d.ts +159 -0
- package/dist/reconstruction/index.js +11 -2
- package/dist/runtime.d.ts +1 -0
- package/dist/traitDocs/traitDocs.cjs +8 -8
- package/dist/traitDocs/traitDocs.js +2 -2
- package/dist/traits/index.cjs +566 -471
- package/dist/traits/index.js +93 -11
- package/package.json +25 -41
- package/dist/chunk-G3BM3CT4.cjs +0 -639
- package/dist/chunk-KEYG7HGY.js +0 -1062
- package/dist/chunk-QX34ELJ7.js +0 -625
- package/dist/chunk-W2GA3EQB.cjs +0 -1065
package/dist/compiler/index.cjs
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkYM7UUYR5_cjs = require('../chunk-YM7UUYR5.cjs');
|
|
4
|
+
var chunkD44CEFY4_cjs = require('../chunk-D44CEFY4.cjs');
|
|
5
|
+
var chunk7ITJP33Q_cjs = require('../chunk-7ITJP33Q.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 chunkGGH3ZYDB_cjs = require('../chunk-GGH3ZYDB.cjs');
|
|
10
|
+
var chunkCESMPUEZ_cjs = require('../chunk-CESMPUEZ.cjs');
|
|
11
11
|
var chunkFT6TDR2O_cjs = require('../chunk-FT6TDR2O.cjs');
|
|
12
12
|
require('../chunk-LDYZWNJW.cjs');
|
|
13
|
-
var
|
|
13
|
+
var chunk4CRMVEON_cjs = require('../chunk-4CRMVEON.cjs');
|
|
14
14
|
require('../chunk-KROXXBK5.cjs');
|
|
15
|
-
var
|
|
15
|
+
var chunkOOP4S3GU_cjs = require('../chunk-OOP4S3GU.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 chunkYMI3ED3B_cjs = require('../chunk-YMI3ED3B.cjs');
|
|
21
|
+
var chunkML4V5PVU_cjs = require('../chunk-ML4V5PVU.cjs');
|
|
22
22
|
require('../chunk-YKY2JBER.cjs');
|
|
23
23
|
require('../chunk-QQFB4RT2.cjs');
|
|
24
24
|
var chunkN2ILK7BF_cjs = require('../chunk-N2ILK7BF.cjs');
|
|
@@ -27,33 +27,33 @@ 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 chunk5B2AJKA5_cjs = require('../chunk-5B2AJKA5.cjs');
|
|
31
|
+
var chunkKLM6QD6D_cjs = require('../chunk-KLM6QD6D.cjs');
|
|
32
|
+
var chunkSKVBUGMC_cjs = require('../chunk-SKVBUGMC.cjs');
|
|
33
|
+
var chunkVZI7S7P6_cjs = require('../chunk-VZI7S7P6.cjs');
|
|
34
34
|
require('../chunk-V6GXFSK7.cjs');
|
|
35
|
-
var
|
|
35
|
+
var chunkPZ46WRHX_cjs = require('../chunk-PZ46WRHX.cjs');
|
|
36
36
|
require('../chunk-R75BSDH7.cjs');
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var chunkXZC75AJ4_cjs = require('../chunk-XZC75AJ4.cjs');
|
|
38
|
+
var chunkREN3LHO6_cjs = require('../chunk-REN3LHO6.cjs');
|
|
39
39
|
require('../chunk-CFVK26P4.cjs');
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
40
|
+
var chunkGYJLP4BO_cjs = require('../chunk-GYJLP4BO.cjs');
|
|
41
|
+
var chunkFOM36K5I_cjs = require('../chunk-FOM36K5I.cjs');
|
|
42
|
+
var chunkSNMQUWIO_cjs = require('../chunk-SNMQUWIO.cjs');
|
|
43
|
+
var chunkERYKKPHW_cjs = require('../chunk-ERYKKPHW.cjs');
|
|
44
|
+
var chunkOSKGCXAQ_cjs = require('../chunk-OSKGCXAQ.cjs');
|
|
45
|
+
var chunkB6JHTTMR_cjs = require('../chunk-B6JHTTMR.cjs');
|
|
46
46
|
require('../chunk-356N4NPM.cjs');
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
require('../chunk-
|
|
47
|
+
var chunkVTFLKSJL_cjs = require('../chunk-VTFLKSJL.cjs');
|
|
48
|
+
var chunkVA7THINF_cjs = require('../chunk-VA7THINF.cjs');
|
|
49
|
+
var chunkLQNL3IYV_cjs = require('../chunk-LQNL3IYV.cjs');
|
|
50
|
+
require('../chunk-FHR2AVMA.cjs');
|
|
51
51
|
var chunkTZCFKZ6Z_cjs = require('../chunk-TZCFKZ6Z.cjs');
|
|
52
|
-
var
|
|
53
|
-
require('../chunk-
|
|
52
|
+
var chunkHCONR4J6_cjs = require('../chunk-HCONR4J6.cjs');
|
|
53
|
+
require('../chunk-P65OIMJT.cjs');
|
|
54
54
|
var chunkVHORVGCG_cjs = require('../chunk-VHORVGCG.cjs');
|
|
55
|
-
var
|
|
56
|
-
var
|
|
55
|
+
var chunkSE2Y5BSL_cjs = require('../chunk-SE2Y5BSL.cjs');
|
|
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');
|
|
@@ -71,30 +71,31 @@ require('../chunk-ESBXUYOC.cjs');
|
|
|
71
71
|
var chunkQ47JEE2C_cjs = require('../chunk-Q47JEE2C.cjs');
|
|
72
72
|
require('../chunk-ZHPMP447.cjs');
|
|
73
73
|
var ans = require('@holoscript/core-types/ans');
|
|
74
|
+
var crypto = require('crypto');
|
|
74
75
|
|
|
75
76
|
// src/compiler/index.ts
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
chunkSE2Y5BSL_cjs.init_CompilerBase();
|
|
78
|
+
chunkSE2Y5BSL_cjs.init_CompilerDocumentationGenerator();
|
|
78
79
|
chunkVHORVGCG_cjs.init_PerceptualColorPass();
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
80
|
+
chunkLQNL3IYV_cjs.init_UnityCompiler();
|
|
81
|
+
chunkHCONR4J6_cjs.init_GodotCompiler();
|
|
82
|
+
chunkVTFLKSJL_cjs.init_OpenXRCompiler();
|
|
83
|
+
chunkVA7THINF_cjs.init_VRChatCompiler();
|
|
84
|
+
chunkFOM36K5I_cjs.init_VisionOSCompiler();
|
|
85
|
+
chunkXZC75AJ4_cjs.init_AndroidCompiler();
|
|
86
|
+
chunkREN3LHO6_cjs.init_AndroidXRCompiler();
|
|
87
|
+
chunkGYJLP4BO_cjs.init_IOSCompiler();
|
|
88
|
+
chunkSNMQUWIO_cjs.init_WASMCompiler();
|
|
89
|
+
chunkERYKKPHW_cjs.init_WebGPUCompiler();
|
|
89
90
|
chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
chunkKLM6QD6D_cjs.init_SDFCompiler();
|
|
92
|
+
chunkOSKGCXAQ_cjs.init_DTDLCompiler();
|
|
93
|
+
chunkB6JHTTMR_cjs.init_URDFCompiler();
|
|
94
|
+
chunkSKVBUGMC_cjs.init_StateCompiler();
|
|
94
95
|
|
|
95
96
|
// src/compiler/MultiLayerCompiler.ts
|
|
96
|
-
|
|
97
|
-
var MultiLayerCompiler = class extends
|
|
97
|
+
chunkSE2Y5BSL_cjs.init_CompilerBase();
|
|
98
|
+
var MultiLayerCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
98
99
|
constructor(_options) {
|
|
99
100
|
super();
|
|
100
101
|
this.compilerName = "MultiLayerCompiler";
|
|
@@ -110,12 +111,12 @@ var MultiLayerCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
110
111
|
};
|
|
111
112
|
|
|
112
113
|
// src/compiler/NextJSCompiler.ts
|
|
113
|
-
|
|
114
|
+
chunkSE2Y5BSL_cjs.init_CompilerBase();
|
|
114
115
|
|
|
115
116
|
// src/compiler/Native2DCompiler.ts
|
|
116
|
-
|
|
117
|
+
chunkSE2Y5BSL_cjs.init_CompilerBase();
|
|
117
118
|
chunkQ47JEE2C_cjs.init_safeJsonParse();
|
|
118
|
-
var
|
|
119
|
+
var _Native2DCompiler = class _Native2DCompiler extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
119
120
|
constructor() {
|
|
120
121
|
super(...arguments);
|
|
121
122
|
this.compilerName = "Native2DCompiler";
|
|
@@ -128,7 +129,22 @@ var Native2DCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
128
129
|
this._stateFields = /* @__PURE__ */ new Map();
|
|
129
130
|
this._fetchCalls = [];
|
|
130
131
|
this._hookCalls = [];
|
|
132
|
+
this._computedBindings = [];
|
|
131
133
|
this._options = {};
|
|
134
|
+
/** Honest mode (composition-level `@honest`): every data-bound element MUST carry
|
|
135
|
+
* `@provenance_bound` or the compiler refuses to emit it (HONEST-UNSOURCED). This is
|
|
136
|
+
* the Receipt-Bound Surface constitution — the surface cannot emit an unsourced pixel. */
|
|
137
|
+
this._honestMode = false;
|
|
138
|
+
this._verifiedViewMode = false;
|
|
139
|
+
/** Valid projection roots: composition state keys + @fetch into-slots (pre-scanned). */
|
|
140
|
+
this._projectionRoots = /* @__PURE__ */ new Set();
|
|
141
|
+
/**
|
|
142
|
+
* Verified projections collected during traversal (@verified_view v1): the machine-readable
|
|
143
|
+
* view contract that co-emits with the surface — a portable, hash-bound receipt of what
|
|
144
|
+
* every element renders, so an independent consumer can re-derive it from the ARTIFACT
|
|
145
|
+
* (not the source). Populated by resolveProjection; emitted as `export const holoViewContract`.
|
|
146
|
+
*/
|
|
147
|
+
this._collectedProjections = [];
|
|
132
148
|
}
|
|
133
149
|
// @ts-expect-error During migration
|
|
134
150
|
compile(composition, agentToken, outputPath, options) {
|
|
@@ -148,13 +164,46 @@ var Native2DCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
148
164
|
this._stateFields.clear();
|
|
149
165
|
this._fetchCalls = [];
|
|
150
166
|
this._hookCalls = [];
|
|
167
|
+
this._computedBindings = [];
|
|
151
168
|
this._options = options || {};
|
|
169
|
+
this._honestMode = (composition?.traits ?? []).some((t) => t?.name === "honest");
|
|
170
|
+
this._verifiedViewMode = (composition?.traits ?? []).some((t) => t?.name === "verified_view");
|
|
152
171
|
const safeName = name.replace(/[^a-zA-Z0-9]/g, "");
|
|
153
172
|
if (composition?.state?.properties) {
|
|
154
173
|
for (const prop of composition.state.properties) {
|
|
155
174
|
this._stateFields.set(prop.key, prop.value ?? null);
|
|
156
175
|
}
|
|
157
176
|
}
|
|
177
|
+
this._projectionRoots = new Set(this._stateFields.keys());
|
|
178
|
+
this._collectedProjections = [];
|
|
179
|
+
const scanProjectionRoots = (objs) => {
|
|
180
|
+
for (const o of objs) {
|
|
181
|
+
for (const t of o.traits ?? []) {
|
|
182
|
+
if (t?.name === "fetch") {
|
|
183
|
+
const into = t.config?.into;
|
|
184
|
+
this._projectionRoots.add(typeof into === "string" && into ? into : "data");
|
|
185
|
+
}
|
|
186
|
+
if (t?.name === "each") {
|
|
187
|
+
const as = t.config?.as;
|
|
188
|
+
this._projectionRoots.add(typeof as === "string" && as ? as : "item");
|
|
189
|
+
}
|
|
190
|
+
if (t?.name === "computed") {
|
|
191
|
+
const nm = t.config?.name;
|
|
192
|
+
if (typeof nm === "string" && nm) this._projectionRoots.add(nm);
|
|
193
|
+
}
|
|
194
|
+
if (t?.name === "hook") {
|
|
195
|
+
const returns = t.config?.returns;
|
|
196
|
+
if (typeof returns === "string") {
|
|
197
|
+
for (const r of returns.split(",").map((s) => s.trim())) {
|
|
198
|
+
if (r) this._projectionRoots.add(r);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (Array.isArray(o.children)) scanProjectionRoots(o.children);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
scanProjectionRoots(objects);
|
|
158
207
|
const jsx = objects.map((obj) => this.generateReactNode(obj)).join("\n ");
|
|
159
208
|
const imports = [];
|
|
160
209
|
const reactImports = /* @__PURE__ */ new Set();
|
|
@@ -172,6 +221,17 @@ var Native2DCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
172
221
|
for (const h of this._hookCalls) {
|
|
173
222
|
imports.push(`import { ${h.name} } from '${h.import}';`);
|
|
174
223
|
}
|
|
224
|
+
const computedImports = /* @__PURE__ */ new Map();
|
|
225
|
+
for (const b of this._computedBindings) {
|
|
226
|
+
if (b.from && b.uses.length) {
|
|
227
|
+
const set = computedImports.get(b.from) || /* @__PURE__ */ new Set();
|
|
228
|
+
b.uses.forEach((u) => set.add(u));
|
|
229
|
+
computedImports.set(b.from, set);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
for (const [from, uses] of computedImports) {
|
|
233
|
+
imports.push(`import { ${[...uses].join(", ")} } from '${from}';`);
|
|
234
|
+
}
|
|
175
235
|
const stateHooks = [];
|
|
176
236
|
for (const [key, value] of this._stateFields) {
|
|
177
237
|
const capitalKey = key.charAt(0).toUpperCase() + key.slice(1);
|
|
@@ -194,25 +254,36 @@ var Native2DCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
194
254
|
const hookBindings = [];
|
|
195
255
|
for (const h of this._hookCalls) {
|
|
196
256
|
const members = h.returns.split(",").map((s) => s.trim()).filter((s) => /^[A-Za-z_$][\w$]*$/.test(s));
|
|
257
|
+
const call = `${h.name}(${h.args ?? ""})`;
|
|
197
258
|
hookBindings.push(
|
|
198
|
-
members.length > 0 ? ` const { ${members.join(", ")} } = ${
|
|
259
|
+
members.length > 0 ? ` const { ${members.join(", ")} } = ${call};` : ` ${call};`
|
|
199
260
|
);
|
|
200
261
|
}
|
|
262
|
+
const computedLines = [];
|
|
263
|
+
for (const b of this._computedBindings) {
|
|
264
|
+
computedLines.push(` const ${b.name} = ${b.expr};`);
|
|
265
|
+
}
|
|
266
|
+
const viewContract = this.buildViewContract();
|
|
267
|
+
const rootAttrs = viewContract ? ` data-holo-view-contract="${viewContract.hash}"` : "";
|
|
268
|
+
const contractExport = viewContract ? `
|
|
269
|
+
|
|
270
|
+
export const holoViewContract = ${viewContract.json} as const;` : "";
|
|
201
271
|
return `${imports.join("\n")}
|
|
202
272
|
|
|
203
273
|
// @generated by HoloScript Native2DCompiler \u2014 DO NOT EDIT
|
|
204
274
|
export function ${safeName}Component() {${hookBindings.length > 0 ? "\n" + hookBindings.join("\n") : ""}
|
|
205
275
|
${stateHooks.join("\n")}
|
|
206
276
|
${fetchEffects.join("\n")}
|
|
277
|
+
${computedLines.join("\n")}
|
|
207
278
|
|
|
208
279
|
return (
|
|
209
|
-
<div className="holoscript-2d-root w-full h-full">
|
|
280
|
+
<div className="holoscript-2d-root w-full h-full"${rootAttrs}>
|
|
210
281
|
${jsx}
|
|
211
282
|
</div>
|
|
212
283
|
);
|
|
213
284
|
}
|
|
214
285
|
|
|
215
|
-
export default ${safeName}Component
|
|
286
|
+
export default ${safeName}Component;${contractExport}
|
|
216
287
|
`;
|
|
217
288
|
}
|
|
218
289
|
generateReactNode(obj) {
|
|
@@ -254,8 +325,39 @@ export default ${safeName}Component;
|
|
|
254
325
|
if (/['"`\\]/.test(importPath)) {
|
|
255
326
|
throw new Error(`Native2DCompiler @hook: invalid import path ${JSON.stringify(importPath)}`);
|
|
256
327
|
}
|
|
328
|
+
let hookArgs = "";
|
|
329
|
+
if (traits.hook.args != null) {
|
|
330
|
+
hookArgs = String(traits.hook.args);
|
|
331
|
+
if (!/^[a-zA-Z0-9_$.,(){}\[\]'"/\s*+\-%<>=?:!&|]+$/.test(hookArgs)) {
|
|
332
|
+
throw new Error(`Native2DCompiler @hook: unsafe args ${JSON.stringify(hookArgs)}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
257
335
|
if (!this._hookCalls.some((h) => h.name === hookName)) {
|
|
258
|
-
this._hookCalls.push({
|
|
336
|
+
this._hookCalls.push({
|
|
337
|
+
name: hookName,
|
|
338
|
+
import: importPath,
|
|
339
|
+
returns: String(traits.hook.returns || ""),
|
|
340
|
+
args: hookArgs || void 0
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (traits.computed?.name && traits.computed?.expr) {
|
|
345
|
+
const cname = String(traits.computed.name);
|
|
346
|
+
const expr = String(traits.computed.expr);
|
|
347
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(cname)) {
|
|
348
|
+
throw new Error(`Native2DCompiler @computed: invalid name ${JSON.stringify(cname)}`);
|
|
349
|
+
}
|
|
350
|
+
if (!/^[a-zA-Z0-9_$.,()\[\]'"/\s*+\-%<>=?:!&|]+$/.test(expr)) {
|
|
351
|
+
throw new Error(`Native2DCompiler @computed: unsafe expr ${JSON.stringify(expr)}`);
|
|
352
|
+
}
|
|
353
|
+
const from = traits.computed.from ? String(traits.computed.from) : "";
|
|
354
|
+
if (from && /['"`\\]/.test(from)) {
|
|
355
|
+
throw new Error(`Native2DCompiler @computed: invalid import path ${JSON.stringify(from)}`);
|
|
356
|
+
}
|
|
357
|
+
const usesRaw = traits.computed.uses;
|
|
358
|
+
const uses = (Array.isArray(usesRaw) ? usesRaw : usesRaw ? [usesRaw] : []).map(String).filter((u) => /^[A-Za-z_$][\w$]*$/.test(u));
|
|
359
|
+
if (!this._computedBindings.some((b) => b.name === cname)) {
|
|
360
|
+
this._computedBindings.push({ name: cname, expr, from: from || void 0, uses });
|
|
259
361
|
}
|
|
260
362
|
}
|
|
261
363
|
let tag = traits.theme?.tag || traits.panel?.tag || (typeof obj.type === "string" ? obj.type.toLowerCase() : void 0) || "div";
|
|
@@ -289,6 +391,10 @@ export default ${safeName}Component;
|
|
|
289
391
|
const styles = this.buildStyles(traits);
|
|
290
392
|
const classes = this.buildClasses(traits);
|
|
291
393
|
let props = ``;
|
|
394
|
+
const prov = this.resolveProvenance(traits, obj);
|
|
395
|
+
if (prov) props += prov.propsStr;
|
|
396
|
+
const proj = this.resolveProjection(traits, obj);
|
|
397
|
+
if (proj) props += proj;
|
|
292
398
|
if (traits.theme?.className) {
|
|
293
399
|
classes.push(traits.theme.className);
|
|
294
400
|
}
|
|
@@ -311,10 +417,15 @@ export default ${safeName}Component;
|
|
|
311
417
|
props += ` style={${JSON.stringify(combinedStyles)}}`;
|
|
312
418
|
}
|
|
313
419
|
if (tierExpr) {
|
|
314
|
-
const
|
|
420
|
+
const tierFamilies = this.tierColorFamilies(traits);
|
|
421
|
+
const cleaned = this.stripColorFamilies(
|
|
422
|
+
this.resolveColorConflicts(classes.join(" ")),
|
|
423
|
+
tierFamilies
|
|
424
|
+
);
|
|
425
|
+
const staticPrefix = cleaned ? `${cleaned} ` : "";
|
|
315
426
|
props += ` className={\`${staticPrefix}\${${tierExpr}}\`}`;
|
|
316
427
|
} else if (classes.length > 0) {
|
|
317
|
-
props += ` className="${classes.join(" ")}"`;
|
|
428
|
+
props += ` className="${this.resolveColorConflicts(classes.join(" "))}"`;
|
|
318
429
|
}
|
|
319
430
|
if (traits.theme?.attributes) {
|
|
320
431
|
try {
|
|
@@ -365,7 +476,10 @@ export default ${safeName}Component;
|
|
|
365
476
|
if (stateVar) {
|
|
366
477
|
const setter = `set${stateVar.charAt(0).toUpperCase()}${stateVar.slice(1)}`;
|
|
367
478
|
const valueExpr = subPath ? `${stateVar}.${subPath}` : stateVar;
|
|
368
|
-
|
|
479
|
+
const inputType = String(traits.input?.type || "").toLowerCase();
|
|
480
|
+
const numeric = traits.model.cast === "number" || inputType === "range" || inputType === "number";
|
|
481
|
+
const getter = numeric ? "Number(e.target.value)" : "e.target.value";
|
|
482
|
+
props += ` value={${valueExpr}} onChange={(e) => ${setter}(${getter})}`;
|
|
369
483
|
}
|
|
370
484
|
}
|
|
371
485
|
if (traits.image?.src) props += ` src="${traits.image.src}"`;
|
|
@@ -374,6 +488,9 @@ export default ${safeName}Component;
|
|
|
374
488
|
if (traits.input?.placeholder) props += ` placeholder="${traits.input.placeholder}"`;
|
|
375
489
|
if (traits.input?.type) props += ` type="${traits.input.type}"`;
|
|
376
490
|
if (traits.input?.required) props += ` required`;
|
|
491
|
+
if (traits.input?.min != null) props += ` min="${String(traits.input.min)}"`;
|
|
492
|
+
if (traits.input?.max != null) props += ` max="${String(traits.input.max)}"`;
|
|
493
|
+
if (traits.input?.step != null) props += ` step="${String(traits.input.step)}"`;
|
|
377
494
|
if (traits.button?.type) props += ` type="${traits.button.type}"`;
|
|
378
495
|
const childrenMarkup = (obj.children || obj.objects || []).map((child) => this.generateReactNode(child)).join("\n");
|
|
379
496
|
const content = traits.text?.content || traits.button?.content || traits.link?.content || traits.icon?.name;
|
|
@@ -383,12 +500,23 @@ export default ${safeName}Component;
|
|
|
383
500
|
} else if (content) {
|
|
384
501
|
safeContent = `{\`${content.replace(/`/g, "\\`").replace(/\$/g, "\\$")}\`}`;
|
|
385
502
|
}
|
|
503
|
+
if (prov && safeContent && _Native2DCompiler.PROVENANCE_GLYPH[prov.cls]) {
|
|
504
|
+
safeContent += `<sup className="holo-prov-mark" title=${JSON.stringify(
|
|
505
|
+
`provenance: ${prov.cls}`
|
|
506
|
+
)}>${_Native2DCompiler.PROVENANCE_GLYPH[prov.cls]}</sup>`;
|
|
507
|
+
}
|
|
386
508
|
const each = this.buildEachIterator(traits);
|
|
387
509
|
const keyProp = each ? ` key={i}` : "";
|
|
388
510
|
let element;
|
|
389
511
|
if (tag === "style") {
|
|
390
512
|
const escapedStyle = (content || "").replace(/`/g, "\\`").replace(/\$/g, "\\$");
|
|
391
513
|
element = `<style${keyProp} dangerouslySetInnerHTML={{ __html: \`${escapedStyle}\` }} />`;
|
|
514
|
+
} else if (traits.sparkline?.state) {
|
|
515
|
+
element = this.buildSparklineElement(traits, props, keyProp);
|
|
516
|
+
} else if (traits.chart?.state) {
|
|
517
|
+
element = this.buildChartElement(traits, props, keyProp);
|
|
518
|
+
} else if (traits.live_proof?.claim) {
|
|
519
|
+
element = this.buildLiveProofElement(traits, keyProp);
|
|
392
520
|
} else if (tag === "img" || tag === "input") {
|
|
393
521
|
element = `<${tag}${props}${keyProp} />`;
|
|
394
522
|
} else {
|
|
@@ -895,7 +1023,13 @@ export default ${safeName}Component;
|
|
|
895
1023
|
* : (snap?.fps ?? 0) >= 30 ? "text-amber-400"
|
|
896
1024
|
* : "text-red-400"
|
|
897
1025
|
*
|
|
898
|
-
* Each tier may specify `gte` (>=), `gt` (>), `lte` (<=), and/or `lt` (<)
|
|
1026
|
+
* Each tier may specify `gte` (>=), `gt` (>), `lte` (<=), and/or `lt` (<) for
|
|
1027
|
+
* numeric thresholds, OR `eq`/`neq` for exact-match categories (e.g. a
|
|
1028
|
+
* security audit outcome: `{ eq: "denied", className: "text-red-400" }`).
|
|
1029
|
+
* `eq`/`neq` accept a string or a number; string operands pass the same
|
|
1030
|
+
* injection guard as `@when eq` and are emitted via JSON.stringify. When any
|
|
1031
|
+
* tier compares strings, the bound value is coerced to `''` (not `0`) so the
|
|
1032
|
+
* cascade stays total before state loads without mis-coercing a string to 0.
|
|
899
1033
|
* Conditions on one tier are AND-ed. A tier with no bounds is the
|
|
900
1034
|
* unconditional fallback (its className is the trailing `:` branch). If no
|
|
901
1035
|
* tier is unconditional, an empty-string fallback is appended so the
|
|
@@ -909,8 +1043,11 @@ export default ${safeName}Component;
|
|
|
909
1043
|
String(bind.path || ""),
|
|
910
1044
|
"@bind tiers"
|
|
911
1045
|
);
|
|
912
|
-
const valueRef = `(${baseExpr} ?? 0)`;
|
|
913
1046
|
const tiers = bind.tiers;
|
|
1047
|
+
const usesStringCompare = tiers.some(
|
|
1048
|
+
(t) => typeof t.eq === "string" || typeof t.neq === "string"
|
|
1049
|
+
);
|
|
1050
|
+
const valueRef = usesStringCompare ? `(${baseExpr} ?? '')` : `(${baseExpr} ?? 0)`;
|
|
914
1051
|
const branches = [];
|
|
915
1052
|
for (const tier of tiers) {
|
|
916
1053
|
const className = typeof tier.className === "string" ? tier.className : "";
|
|
@@ -919,6 +1056,16 @@ export default ${safeName}Component;
|
|
|
919
1056
|
if (typeof tier.gt === "number") conditions.push(`${valueRef} > ${tier.gt}`);
|
|
920
1057
|
if (typeof tier.lte === "number") conditions.push(`${valueRef} <= ${tier.lte}`);
|
|
921
1058
|
if (typeof tier.lt === "number") conditions.push(`${valueRef} < ${tier.lt}`);
|
|
1059
|
+
if (typeof tier.eq === "number") conditions.push(`${valueRef} === ${tier.eq}`);
|
|
1060
|
+
else if (typeof tier.eq === "string")
|
|
1061
|
+
conditions.push(
|
|
1062
|
+
`${valueRef} === ${JSON.stringify(this.assertSafeLiteral(tier.eq, "@bind tier eq"))}`
|
|
1063
|
+
);
|
|
1064
|
+
if (typeof tier.neq === "number") conditions.push(`${valueRef} !== ${tier.neq}`);
|
|
1065
|
+
else if (typeof tier.neq === "string")
|
|
1066
|
+
conditions.push(
|
|
1067
|
+
`${valueRef} !== ${JSON.stringify(this.assertSafeLiteral(tier.neq, "@bind tier neq"))}`
|
|
1068
|
+
);
|
|
922
1069
|
branches.push({
|
|
923
1070
|
condition: conditions.length > 0 ? conditions.join(" && ") : null,
|
|
924
1071
|
className
|
|
@@ -941,6 +1088,309 @@ export default ${safeName}Component;
|
|
|
941
1088
|
fallback
|
|
942
1089
|
);
|
|
943
1090
|
}
|
|
1091
|
+
/**
|
|
1092
|
+
* @sparkline: render a bound numeric array as an inline SVG polyline — the
|
|
1093
|
+
* smallest slice of native data-viz (no axes/legend). The points are computed
|
|
1094
|
+
* at render time from the array, normalized into a fixed viewBox
|
|
1095
|
+
* (`width`×`height`, default 100×30) with `preserveAspectRatio="none"` so the
|
|
1096
|
+
* SVG fills its CSS box. `state`(+optional `path`) is the array; `valueKey`
|
|
1097
|
+
* reads a number out of object items (e.g. items `{sizeKb}` → valueKey
|
|
1098
|
+
* "sizeKb"); `stroke` is a themeable line-color class (default
|
|
1099
|
+
* `stroke-studio-accent`). Container styling (`@theme`/`@layout`) rides in on
|
|
1100
|
+
* `props`. Dependency-free, injection-safe: identifiers are validated and the
|
|
1101
|
+
* points expression uses string concatenation (no inner template literals).
|
|
1102
|
+
*/
|
|
1103
|
+
buildSparklineElement(traits, props, keyProp) {
|
|
1104
|
+
const sp = traits.sparkline;
|
|
1105
|
+
const state = this.assertSafeDotPath(String(sp.state), "@sparkline state");
|
|
1106
|
+
const path = sp.path ? String(sp.path) : "";
|
|
1107
|
+
if (path) this.assertSafeDotPath(path, "@sparkline path");
|
|
1108
|
+
const arrayRef = this.buildStatePathExpr(state, path, "@sparkline");
|
|
1109
|
+
const W = Number.isInteger(sp.width) && sp.width > 0 ? sp.width : 100;
|
|
1110
|
+
const H = Number.isInteger(sp.height) && sp.height > 0 ? sp.height : 30;
|
|
1111
|
+
let valueExpr = "d";
|
|
1112
|
+
if (sp.valueKey != null) {
|
|
1113
|
+
const vk = String(sp.valueKey);
|
|
1114
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(vk)) {
|
|
1115
|
+
throw new Error(`Native2DCompiler @sparkline: invalid valueKey ${JSON.stringify(vk)}`);
|
|
1116
|
+
}
|
|
1117
|
+
valueExpr = `d?.${vk}`;
|
|
1118
|
+
}
|
|
1119
|
+
const stroke = typeof sp.stroke === "string" ? this.assertSafeLiteral(sp.stroke, "@sparkline stroke") : "stroke-studio-accent";
|
|
1120
|
+
const strokeWidth = /^[0-9]+(\.[0-9]+)?$/.test(String(sp.strokeWidth ?? "")) ? String(sp.strokeWidth) : "1.5";
|
|
1121
|
+
const points = `((__a) => { const __v = (__a ?? []).map((d) => Number(${valueExpr}) || 0); if (!__v.length) return ''; const __mn = Math.min(...__v), __mx = Math.max(...__v), __r = (__mx - __mn) || 1, __sx = __v.length > 1 ? ${W} / (__v.length - 1) : 0; return __v.map((y, i) => (i * __sx).toFixed(2) + ',' + (${H} - ((y - __mn) / __r) * ${H}).toFixed(2)).join(' '); })(${arrayRef})`;
|
|
1122
|
+
return `<svg${props}${keyProp} data-baseline="min" viewBox="0 0 ${W} ${H}" preserveAspectRatio="none">
|
|
1123
|
+
<polyline fill="none" className="${stroke}" strokeWidth="${strokeWidth}" points={${points}} />
|
|
1124
|
+
</svg>`;
|
|
1125
|
+
}
|
|
1126
|
+
/**
|
|
1127
|
+
* @chart: the fuller native data-viz primitive — a bar / line / area chart with
|
|
1128
|
+
* a baseline axis and (bar) crisp category labels. Unlike @sparkline (fill-the-box,
|
|
1129
|
+
* no axes), @chart uses a fixed-aspect viewBox with margins so `<text>` labels stay
|
|
1130
|
+
* undistorted. Geometry is computed at render time from the bound array; a bar chart
|
|
1131
|
+
* emits one `<rect>` per item, line/area emit a `<polyline>`/`<polygon>` over the
|
|
1132
|
+
* plot region. Injection-safe: `state`/`path`/`valueKey`/`labelKey` are validated
|
|
1133
|
+
* identifiers/dot-paths, `stroke`/`fill` pass the literal guard, and the point math
|
|
1134
|
+
* uses string concatenation (no inner template literals).
|
|
1135
|
+
*
|
|
1136
|
+
* `@chart { kind: "bar"|"line"|"area", state, path?, valueKey?, labelKey?,
|
|
1137
|
+
* width?, height?, stroke?, fill? }`
|
|
1138
|
+
*/
|
|
1139
|
+
buildChartElement(traits, props, keyProp) {
|
|
1140
|
+
const ch = traits.chart;
|
|
1141
|
+
const kind = ch.kind === "line" || ch.kind === "area" ? ch.kind : "bar";
|
|
1142
|
+
const state = this.assertSafeDotPath(String(ch.state), "@chart state");
|
|
1143
|
+
const path = ch.path ? String(ch.path) : "";
|
|
1144
|
+
if (path) this.assertSafeDotPath(path, "@chart path");
|
|
1145
|
+
const arrayRef = this.buildStatePathExpr(state, path, "@chart");
|
|
1146
|
+
let valueExpr = "d";
|
|
1147
|
+
if (ch.valueKey != null) {
|
|
1148
|
+
const vk = String(ch.valueKey);
|
|
1149
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(vk)) {
|
|
1150
|
+
throw new Error(`Native2DCompiler @chart: invalid valueKey ${JSON.stringify(vk)}`);
|
|
1151
|
+
}
|
|
1152
|
+
valueExpr = `d?.${vk}`;
|
|
1153
|
+
}
|
|
1154
|
+
let labelKey = "";
|
|
1155
|
+
if (ch.labelKey != null) {
|
|
1156
|
+
labelKey = String(ch.labelKey);
|
|
1157
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(labelKey)) {
|
|
1158
|
+
throw new Error(`Native2DCompiler @chart: invalid labelKey ${JSON.stringify(labelKey)}`);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
let classKey = "";
|
|
1162
|
+
if (ch.classKey != null) {
|
|
1163
|
+
classKey = String(ch.classKey);
|
|
1164
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(classKey)) {
|
|
1165
|
+
throw new Error(`Native2DCompiler @chart: invalid classKey ${JSON.stringify(classKey)}`);
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
const W = Number.isInteger(ch.width) && ch.width > 0 ? ch.width : 280;
|
|
1169
|
+
const H = Number.isInteger(ch.height) && ch.height > 0 ? ch.height : 140;
|
|
1170
|
+
const stroke = typeof ch.stroke === "string" ? this.assertSafeLiteral(ch.stroke, "@chart stroke") : "stroke-studio-accent";
|
|
1171
|
+
const fill = typeof ch.fill === "string" ? this.assertSafeLiteral(ch.fill, "@chart fill") : "fill-studio-accent";
|
|
1172
|
+
const PX = 6;
|
|
1173
|
+
const PT = 8;
|
|
1174
|
+
const PB = labelKey && kind === "bar" ? 16 : 6;
|
|
1175
|
+
const plotW = W - 2 * PX;
|
|
1176
|
+
const plotH = H - PT - PB;
|
|
1177
|
+
const baselineY = H - PB;
|
|
1178
|
+
const baseline = `<line x1="${PX}" y1="${baselineY}" x2="${W - PX}" y2="${baselineY}" className="stroke-studio-border" strokeWidth="0.5" />`;
|
|
1179
|
+
const provDefs = classKey ? `<defs><pattern id="holo-hatch" width="4" height="4" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><line x1="0" y1="0" x2="0" y2="4" className="stroke-studio-accent" strokeWidth="1.2" /></pattern><pattern id="holo-dots" width="3" height="3" patternUnits="userSpaceOnUse"><circle cx="1.5" cy="1.5" r="0.6" className="fill-studio-accent" /></pattern></defs>` : "";
|
|
1180
|
+
let body;
|
|
1181
|
+
if (kind === "bar") {
|
|
1182
|
+
const label = labelKey ? `<text x={__x + __bw / 2} y={${H - 4}} textAnchor="middle" className="fill-studio-muted" fontSize="6">{String(d?.${labelKey} ?? '')}</text>` : "";
|
|
1183
|
+
const provFill = classKey ? ` fill={d?.${classKey} === "inferred" ? "url(#holo-hatch)" : d?.${classKey} === "generative" ? "url(#holo-dots)" : undefined} data-provenance-class={String(d?.${classKey} ?? "")}` : "";
|
|
1184
|
+
body = `{((__a) => { const __d = (__a ?? []); const __v = __d.map((d) => Number(${valueExpr}) || 0); const __max = Math.max(1, ...__v); const __n = __d.length || 1; const __slot = ${plotW} / __n; const __bw = Math.max(1, Math.min(__slot * 0.62, __slot - 1)); return __d.map((d, i) => { const __h = Math.max(0, Number(${valueExpr}) || 0) / __max * ${plotH}; const __x = ${PX} + i * __slot + (__slot - __bw) / 2; const __y = ${baselineY} - __h; return (<g key={i}><rect x={__x} y={__y} width={__bw} height={__h} className="${fill}"${provFill} rx="0.5" />${label}</g>); }); })(${arrayRef})}`;
|
|
1185
|
+
} else {
|
|
1186
|
+
const norm = this._honestMode ? `const __mn = 0, __r = Math.max(1, ...__v), ` : `const __mn = Math.min(...__v), __mx = Math.max(...__v), __r = (__mx - __mn) || 1, `;
|
|
1187
|
+
const yExpr = this._honestMode ? "Math.max(0, y)" : "y";
|
|
1188
|
+
const pts = `((__a) => { const __v = (__a ?? []).map((d) => Number(${valueExpr}) || 0); if (!__v.length) return ''; ` + norm + `__sx = __v.length > 1 ? ${plotW} / (__v.length - 1) : 0; return __v.map((y, i) => (${PX} + i * __sx).toFixed(2) + ',' + (${baselineY} - ((${yExpr} - __mn) / __r) * ${plotH}).toFixed(2)).join(' '); })(${arrayRef})`;
|
|
1189
|
+
const line = `<polyline fill="none" className="${stroke}" strokeWidth="1.5" points={${pts}} />`;
|
|
1190
|
+
if (kind === "area") {
|
|
1191
|
+
const areaPts = `((__p) => __p ? __p + ' ' + ${W - PX} + ',' + ${baselineY} + ' ' + ${PX} + ',' + ${baselineY} : '')(${pts})`;
|
|
1192
|
+
body = `<polygon className="${fill}" fillOpacity="0.25" points={${areaPts}} />
|
|
1193
|
+
${line}`;
|
|
1194
|
+
} else {
|
|
1195
|
+
body = line;
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
const baselineAttr = ` data-baseline="${kind === "bar" || this._honestMode ? "zero" : "min"}"`;
|
|
1199
|
+
const clampedAttr = kind === "bar" || this._honestMode ? ` data-clamped={String(((__a) => (__a ?? []).some((d) => (Number(${valueExpr}) || 0) < 0))(${arrayRef}))}` : "";
|
|
1200
|
+
return `<svg${props}${keyProp}${baselineAttr}${clampedAttr} viewBox="0 0 ${W} ${H}">
|
|
1201
|
+
${provDefs}
|
|
1202
|
+
${baseline}
|
|
1203
|
+
${body}
|
|
1204
|
+
</svg>`;
|
|
1205
|
+
}
|
|
1206
|
+
/**
|
|
1207
|
+
* Receipt-Bound Surface enforcement + emission (@honest / @provenance_bound).
|
|
1208
|
+
*
|
|
1209
|
+
* A "data-bound" element (one that renders a value from state via @bind/@chart/
|
|
1210
|
+
* @sparkline/@model) must, in honest mode, carry `@provenance_bound {source, class}`
|
|
1211
|
+
* — otherwise the compiler THROWS (HONEST-UNSOURCED): the surface cannot emit an
|
|
1212
|
+
* unsourced pixel. When provenance IS present, this returns the inline receipt
|
|
1213
|
+
* attributes (`data-holo-provenance` = a machine-readable {source,class,confidence}
|
|
1214
|
+
* an independent consumer can re-derive against, `data-provenance-class`) plus the
|
|
1215
|
+
* class so the caller can add a visible honesty glyph to text values. An unknown
|
|
1216
|
+
* class is rejected (fail toward lower trust — never silently upgraded to measured).
|
|
1217
|
+
* Returns null when the element is not provenance-bound (no attributes, no glyph).
|
|
1218
|
+
*/
|
|
1219
|
+
/**
|
|
1220
|
+
* @verified_view / @projects — the admission gate for agent-authored
|
|
1221
|
+
* surfaces (slice 4 of the Receipt-Bound Surface, honest v0).
|
|
1222
|
+
*
|
|
1223
|
+
* `@projects { node: "stats.sessions" }` is the AUTHOR'S CLAIM of which
|
|
1224
|
+
* world-model node an element renders. This compiler owns the actual data
|
|
1225
|
+
* path (@bind/@chart/@sparkline/@model → state[.path]), so the claim is
|
|
1226
|
+
* verified as compiler-owned DATA-FLOW — the two sides are independently
|
|
1227
|
+
* authored, which is exactly what the shallow "source is non-empty" version
|
|
1228
|
+
* (rejected as theater in the slice-4 warning) lacks. Checks, all fatal
|
|
1229
|
+
* (VIEW-UNGROUNDED):
|
|
1230
|
+
* 1. a declared projection must MATCH the element's actual bound path —
|
|
1231
|
+
* "the agent says sessions but wired revenue" fails to compile;
|
|
1232
|
+
* 2. a projection must root in a REAL node (composition state or a @fetch
|
|
1233
|
+
* into-slot) — a hallucinated node fails to compile;
|
|
1234
|
+
* 3. a projection on an element with NO data binding is a lie by
|
|
1235
|
+
* construction — fails to compile;
|
|
1236
|
+
* 4. under composition-level `@verified_view`, every data-bound element
|
|
1237
|
+
* MUST declare a projection (mirrors HONEST-UNSOURCED).
|
|
1238
|
+
* Checks 1–3 are always-on (a lying receipt is worse than none); check 4 is
|
|
1239
|
+
* the mode. Verified elements emit `data-holo-projects` so independent
|
|
1240
|
+
* consumers can re-check the claim against the artifact. HONEST SCOPE:
|
|
1241
|
+
* runtime re-derivation against a live graph.holo world model (the full
|
|
1242
|
+
* research-spec `projects:` semantics + SimulationContract co-emission) is
|
|
1243
|
+
* v1+ — this v0 proves what the compiler can prove, statically.
|
|
1244
|
+
*/
|
|
1245
|
+
resolveProjection(traits, obj) {
|
|
1246
|
+
const nm = () => String(obj.name ?? "element");
|
|
1247
|
+
const src = traits.bind?.state ? { state: traits.bind.state, path: traits.bind.path } : traits.chart?.state ? { state: traits.chart.state, path: traits.chart.path } : traits.sparkline?.state ? { state: traits.sparkline.state, path: traits.sparkline.path } : traits.model?.state ? { state: traits.model.state, path: traits.model.path } : (
|
|
1248
|
+
// @each renders a LIST from state — the element's provenance is the bound array.
|
|
1249
|
+
traits.each?.state ? { state: traits.each.state, path: traits.each.path } : null
|
|
1250
|
+
);
|
|
1251
|
+
const actualPath = src ? `${String(src.state)}${src.path ? "." + String(src.path) : ""}` : null;
|
|
1252
|
+
const pj = traits.projects;
|
|
1253
|
+
if (!pj) {
|
|
1254
|
+
if (this._verifiedViewMode && actualPath) {
|
|
1255
|
+
throw new Error(
|
|
1256
|
+
`Native2DCompiler @verified_view: VIEW-UNGROUNDED \u2014 "${nm()}" renders data without @projects {node}; an agent-authored surface ships only if every element declares what it renders`
|
|
1257
|
+
);
|
|
1258
|
+
}
|
|
1259
|
+
return null;
|
|
1260
|
+
}
|
|
1261
|
+
const node = this.assertSafeDotPath(String(pj.node ?? ""), "@projects node");
|
|
1262
|
+
if (!actualPath) {
|
|
1263
|
+
throw new Error(
|
|
1264
|
+
`Native2DCompiler @projects: VIEW-UNGROUNDED \u2014 "${nm()}" claims to project "${node}" but has no data binding at all; the claim is a lie by construction`
|
|
1265
|
+
);
|
|
1266
|
+
}
|
|
1267
|
+
if (node !== actualPath) {
|
|
1268
|
+
throw new Error(
|
|
1269
|
+
`Native2DCompiler @projects: VIEW-UNGROUNDED \u2014 "${nm()}" claims to project "${node}" but is actually bound to "${actualPath}"; the surface would lie about its source`
|
|
1270
|
+
);
|
|
1271
|
+
}
|
|
1272
|
+
const root = node.split(".")[0];
|
|
1273
|
+
if (!this._projectionRoots.has(root)) {
|
|
1274
|
+
throw new Error(
|
|
1275
|
+
`Native2DCompiler @projects: VIEW-UNGROUNDED \u2014 "${nm()}" projects "${node}" but no state node "${root}" exists (hallucinated node; declared state keys and @fetch slots: ${[...this._projectionRoots].join(", ") || "none"})`
|
|
1276
|
+
);
|
|
1277
|
+
}
|
|
1278
|
+
const b = traits.bind;
|
|
1279
|
+
const identity = !!b?.state && b.precision === void 0 && b.prefix === void 0 && b.suffix === void 0 && !b.tiers && !traits.chart && !traits.sparkline && !traits.each && !traits.model;
|
|
1280
|
+
let transform;
|
|
1281
|
+
if (b?.state && !traits.chart && !traits.sparkline && !traits.each && !traits.model && (b.precision !== void 0 || b.prefix !== void 0 || b.suffix !== void 0)) {
|
|
1282
|
+
transform = {};
|
|
1283
|
+
if (typeof b.precision === "number") transform.precision = b.precision;
|
|
1284
|
+
if (b.prefix !== void 0) transform.prefix = String(b.prefix);
|
|
1285
|
+
if (b.suffix !== void 0) transform.suffix = String(b.suffix);
|
|
1286
|
+
}
|
|
1287
|
+
let entity;
|
|
1288
|
+
if (pj.entity !== void 0) {
|
|
1289
|
+
const e = String(pj.entity);
|
|
1290
|
+
if (!/^[A-Za-z0-9_.:-]+$/.test(e)) {
|
|
1291
|
+
throw new Error(
|
|
1292
|
+
`Native2DCompiler @projects: invalid entity id ${JSON.stringify(e)} on "${nm()}" (allowed: alphanumerics and . : _ -)`
|
|
1293
|
+
);
|
|
1294
|
+
}
|
|
1295
|
+
entity = e;
|
|
1296
|
+
}
|
|
1297
|
+
this._collectedProjections.push({
|
|
1298
|
+
element: nm(),
|
|
1299
|
+
node,
|
|
1300
|
+
...entity ? { entity } : {},
|
|
1301
|
+
identity,
|
|
1302
|
+
...transform ? { transform } : {}
|
|
1303
|
+
});
|
|
1304
|
+
return ` data-holo-projects="${node}"`;
|
|
1305
|
+
}
|
|
1306
|
+
/**
|
|
1307
|
+
* @verified_view v1 — build the co-emitted view contract: a portable, sha256-bound JSON
|
|
1308
|
+
* receipt of every verified projection plus the valid state roots. The contract travels
|
|
1309
|
+
* WITH the compiled artifact (`export const holoViewContract` + a `data-holo-view-contract`
|
|
1310
|
+
* hash on the root), so an independent consumer re-derives the projection set from the
|
|
1311
|
+
* emitted `data-holo-projects` attributes and checks it against this contract — the two
|
|
1312
|
+
* emission paths cannot silently drift, and the surface's honesty becomes one verifiable
|
|
1313
|
+
* receipt instead of N scattered attributes (W.772). Returns null outside @verified_view
|
|
1314
|
+
* mode (un-gated surfaces carry no contract). Canonical: projections sorted by
|
|
1315
|
+
* (element, node) and roots sorted, so the hash is stable across traversal order.
|
|
1316
|
+
*
|
|
1317
|
+
* NOTE (v1 scope): this makes the projection contract portable and independently
|
|
1318
|
+
* re-checkable from the ARTIFACT — the foundation for runtime re-derivation. Verifying the
|
|
1319
|
+
* bound value against a LIVE graph.holo world model at runtime is the deeper v1 still to be
|
|
1320
|
+
* designed.
|
|
1321
|
+
*/
|
|
1322
|
+
buildViewContract() {
|
|
1323
|
+
if (!this._verifiedViewMode) return null;
|
|
1324
|
+
const projections = [...this._collectedProjections].sort(
|
|
1325
|
+
(a, b) => a.element === b.element ? a.node.localeCompare(b.node) : a.element.localeCompare(b.element)
|
|
1326
|
+
);
|
|
1327
|
+
const stateRoots = [...this._projectionRoots].sort();
|
|
1328
|
+
const body = { version: _Native2DCompiler.VIEW_CONTRACT_VERSION, projections, stateRoots };
|
|
1329
|
+
const hash = crypto.createHash("sha256").update(JSON.stringify(body)).digest("hex");
|
|
1330
|
+
return { json: JSON.stringify({ ...body, contractHash: hash }), hash };
|
|
1331
|
+
}
|
|
1332
|
+
resolveProvenance(traits, obj) {
|
|
1333
|
+
const dataBound = !!(traits.bind?.state || traits.chart?.state && !traits.chart?.classKey || traits.sparkline?.state || traits.model);
|
|
1334
|
+
const pb = traits.provenance_bound;
|
|
1335
|
+
if (this._honestMode && dataBound && !pb) {
|
|
1336
|
+
const nm = String(obj.name ?? "element");
|
|
1337
|
+
throw new Error(
|
|
1338
|
+
`Native2DCompiler @honest: HONEST-UNSOURCED \u2014 "${nm}" renders data without @provenance_bound {source, class}; the surface cannot emit an unsourced pixel`
|
|
1339
|
+
);
|
|
1340
|
+
}
|
|
1341
|
+
if (!pb) return null;
|
|
1342
|
+
const cls = String(pb.class ?? "");
|
|
1343
|
+
if (!_Native2DCompiler.PROVENANCE_CLASSES.has(cls)) {
|
|
1344
|
+
throw new Error(
|
|
1345
|
+
`Native2DCompiler @provenance_bound: invalid class ${JSON.stringify(cls)} \u2014 expected measured|derived|inferred|generative (unknown classes fail toward lower trust, never default to measured)`
|
|
1346
|
+
);
|
|
1347
|
+
}
|
|
1348
|
+
const source = this.assertSafeLiteral(String(pb.source ?? ""), "@provenance_bound source");
|
|
1349
|
+
const receipt = { source, class: cls };
|
|
1350
|
+
if (pb.confidence != null) {
|
|
1351
|
+
const c = Number(pb.confidence);
|
|
1352
|
+
if (Number.isFinite(c) && c >= 0 && c <= 1) receipt.confidence = c;
|
|
1353
|
+
}
|
|
1354
|
+
const propsStr = ` data-holo-provenance='${JSON.stringify(receipt)}' data-provenance-class="${cls}"`;
|
|
1355
|
+
return { propsStr, cls };
|
|
1356
|
+
}
|
|
1357
|
+
/**
|
|
1358
|
+
* @live_proof: the falsifiable surface — the receipt is load-bearing RENDER STATE.
|
|
1359
|
+
*
|
|
1360
|
+
* `@live_proof { claim, label? }` declares a boolean claim over state (a theorem the
|
|
1361
|
+
* element asserts). It compiles to a self-styled verdict badge whose colour + text
|
|
1362
|
+
* FLIP live as the claim breaks: `✓ <label> holds` (green) vs `✗ <label> FALSIFIED`
|
|
1363
|
+
* (red). Because the claim re-evaluates on every render, dragging a bound parameter
|
|
1364
|
+
* (via a sibling @model slider) past the point where the theorem fails flips the
|
|
1365
|
+
* badge in-band — FALSIFIED is a render state, not a console log.
|
|
1366
|
+
*
|
|
1367
|
+
* DISCIPLINE (W.767/W.769): the claim must re-derive from INDEPENDENT state fields
|
|
1368
|
+
* (e.g. `capacity >= load * factor`), never re-read the displayed value — a
|
|
1369
|
+
* self-referential claim proves nothing. The compiler cannot enforce independence,
|
|
1370
|
+
* but the emitted `data-proof-claim` makes the predicate auditable. The claim is
|
|
1371
|
+
* injection-safe (same char-class as @computed; no backticks/semicolons).
|
|
1372
|
+
*
|
|
1373
|
+
* HONESTY LABEL (@verified_view v1 groundwork): the emitted `data-proof-state` re-runs the
|
|
1374
|
+
* SAME `cond` the badge renders from, so today it proves DISPLAY-FAITHFULNESS (the badge
|
|
1375
|
+
* matches its own formula), NOT independently-verified TRUTH of the claim. We refuse to let
|
|
1376
|
+
* that masquerade — `data-proof-independence="self-referential"` marks it so no consumer (or
|
|
1377
|
+
* the moat's own claims) mistakes it for a real proof. A v1 runtime verifier that re-derives
|
|
1378
|
+
* the claim's inputs through a path the render did not author (an external state store or a
|
|
1379
|
+
* solver/StateAuthority oracle) flips this to `"verified"`. Until that oracle exists, honest
|
|
1380
|
+
* labeling is the only non-theatre option (see research/2026-07-10_verified-view-v1-design.md).
|
|
1381
|
+
*/
|
|
1382
|
+
buildLiveProofElement(traits, keyProp) {
|
|
1383
|
+
const lp = traits.live_proof;
|
|
1384
|
+
const claim = String(lp.claim ?? "");
|
|
1385
|
+
if (!claim.trim() || !/^[a-zA-Z0-9_$.,()\[\]'"/\s*+\-%<>=?:!&|]+$/.test(claim)) {
|
|
1386
|
+
throw new Error(`Native2DCompiler @live_proof: unsafe or empty claim ${JSON.stringify(claim)}`);
|
|
1387
|
+
}
|
|
1388
|
+
const label = lp.label != null ? this.assertSafeLiteral(String(lp.label), "@live_proof label") : "Claim";
|
|
1389
|
+
const cond = `(${claim})`;
|
|
1390
|
+
return `<div${keyProp} data-proof-claim={${JSON.stringify(claim)}} data-proof-independence="self-referential" data-proof-state={${cond} ? "pass" : "falsified"} className={\`rounded-md p-2 text-xs font-semibold \${${cond} ? "bg-studio-success/10 text-studio-success" : "bg-studio-error/10 text-studio-error"}\`}>
|
|
1391
|
+
{${cond} ? "\u2713 ${label} holds" : "\u2717 ${label} FALSIFIED"}
|
|
1392
|
+
</div>`;
|
|
1393
|
+
}
|
|
944
1394
|
buildHTMLBindAttributes(traits, staticClassName) {
|
|
945
1395
|
const bind = traits.bind;
|
|
946
1396
|
if (!bind?.state) return "";
|
|
@@ -1196,6 +1646,78 @@ export default ${safeName}Component;
|
|
|
1196
1646
|
}
|
|
1197
1647
|
return styles;
|
|
1198
1648
|
}
|
|
1649
|
+
/**
|
|
1650
|
+
* Resolve conflicting Tailwind COLOR utilities in a STATIC class string, keeping the LAST
|
|
1651
|
+
* of each color family. A node's @theme className is appended AFTER the variant defaults
|
|
1652
|
+
* (buildClasses), so this lets an authored token color win over a hardcoded default color
|
|
1653
|
+
* (e.g. @theme `text-studio-muted` overrides the caption default `text-gray-500`) — which
|
|
1654
|
+
* class actually wins otherwise depends on Tailwind's CSS emission order, not the class
|
|
1655
|
+
* attribute, so the default's raw color leaks unpredictably. Only color families are deduped
|
|
1656
|
+
* (text/bg/border/ring/…, incl. variant prefixes like hover:/focus:); sizes, spacing, and
|
|
1657
|
+
* layout are untouched, and text-<size> / border-<width> / ring-<width> are never colors.
|
|
1658
|
+
*/
|
|
1659
|
+
/**
|
|
1660
|
+
* The Tailwind COLOR family a token belongs to (incl. variant prefixes like
|
|
1661
|
+
* hover:/focus:), or null for a non-color token. Shared by conflict-resolution
|
|
1662
|
+
* and tier-family stripping. text-<size> / text-<align> / border|ring|divide-<width>
|
|
1663
|
+
* and arbitrary values ([10px], [#fff]) are NOT colors.
|
|
1664
|
+
*/
|
|
1665
|
+
colorFamilyKey(t) {
|
|
1666
|
+
const m = t.match(
|
|
1667
|
+
/^((?:[a-z-]+:)*)(text|bg|border|ring|ring-offset|divide|accent|fill|stroke|placeholder|caret|decoration|from|to|via)-(.+)$/
|
|
1668
|
+
);
|
|
1669
|
+
if (!m) return null;
|
|
1670
|
+
const [, variant, prop, rest] = m;
|
|
1671
|
+
if (rest.startsWith("[")) return null;
|
|
1672
|
+
if (prop === "text") {
|
|
1673
|
+
if (_Native2DCompiler.TEXT_SIZE_TOKENS.has(`text-${rest}`)) return null;
|
|
1674
|
+
if (["left", "center", "right", "justify", "start", "end"].includes(rest)) return null;
|
|
1675
|
+
}
|
|
1676
|
+
if (prop === "border" || prop === "divide") {
|
|
1677
|
+
if (/^([xytrbles]|\d+|[xytrbles]-\d+)$/.test(rest)) return null;
|
|
1678
|
+
}
|
|
1679
|
+
if (prop === "ring" && /^(\d+|inset)$/.test(rest)) return null;
|
|
1680
|
+
return `${variant}${prop}`;
|
|
1681
|
+
}
|
|
1682
|
+
resolveColorConflicts(classStr) {
|
|
1683
|
+
const tokens = classStr.split(/\s+/).filter(Boolean);
|
|
1684
|
+
const lastIndex = /* @__PURE__ */ new Map();
|
|
1685
|
+
tokens.forEach((t, i) => {
|
|
1686
|
+
const k = this.colorFamilyKey(t);
|
|
1687
|
+
if (k) lastIndex.set(k, i);
|
|
1688
|
+
});
|
|
1689
|
+
return tokens.filter((t, i) => {
|
|
1690
|
+
const k = this.colorFamilyKey(t);
|
|
1691
|
+
return k === null || lastIndex.get(k) === i;
|
|
1692
|
+
}).join(" ");
|
|
1693
|
+
}
|
|
1694
|
+
/**
|
|
1695
|
+
* The set of color families a @bind's tier classNames assign — so the caller
|
|
1696
|
+
* can strip those families from the static prefix (the dynamic tier cascade
|
|
1697
|
+
* owns them, and the static default would otherwise leak a raw color).
|
|
1698
|
+
*/
|
|
1699
|
+
tierColorFamilies(traits) {
|
|
1700
|
+
const families = /* @__PURE__ */ new Set();
|
|
1701
|
+
const tiers = traits?.bind?.tiers;
|
|
1702
|
+
if (!Array.isArray(tiers)) return families;
|
|
1703
|
+
for (const tier of tiers) {
|
|
1704
|
+
const cn = typeof tier?.className === "string" ? tier.className : "";
|
|
1705
|
+
for (const tok of cn.split(/\s+/).filter(Boolean)) {
|
|
1706
|
+
const k = this.colorFamilyKey(tok);
|
|
1707
|
+
if (k) families.add(k);
|
|
1708
|
+
}
|
|
1709
|
+
}
|
|
1710
|
+
return families;
|
|
1711
|
+
}
|
|
1712
|
+
/** Drop every token whose color family is in `families` (removes a static
|
|
1713
|
+
* default color that a dynamic @bind tier cascade will always override). */
|
|
1714
|
+
stripColorFamilies(classStr, families) {
|
|
1715
|
+
if (families.size === 0) return classStr;
|
|
1716
|
+
return classStr.split(/\s+/).filter(Boolean).filter((t) => {
|
|
1717
|
+
const k = this.colorFamilyKey(t);
|
|
1718
|
+
return k === null || !families.has(k);
|
|
1719
|
+
}).join(" ");
|
|
1720
|
+
}
|
|
1199
1721
|
buildClasses(traits) {
|
|
1200
1722
|
const classes = [];
|
|
1201
1723
|
if (traits.text) {
|
|
@@ -1238,6 +1760,48 @@ export default ${safeName}Component;
|
|
|
1238
1760
|
return str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
1239
1761
|
}
|
|
1240
1762
|
};
|
|
1763
|
+
/** Version tag for the co-emitted `holoViewContract` (@verified_view v1). */
|
|
1764
|
+
_Native2DCompiler.VIEW_CONTRACT_VERSION = "holo-view-contract-v1";
|
|
1765
|
+
/**
|
|
1766
|
+
* 2D data-value provenance vocabulary, ordered by TRUST (highest → lowest),
|
|
1767
|
+
* aligned to the shipped 3D PointProvenanceClass idiom (observed | interpolated |
|
|
1768
|
+
* nlos-inferred | generative-extended). An UNKNOWN class is REJECTED, never
|
|
1769
|
+
* silently upgraded to `measured` — provenance fails toward lower trust, so a
|
|
1770
|
+
* typo can never make an inferred value read as sensor-attested.
|
|
1771
|
+
*/
|
|
1772
|
+
_Native2DCompiler.PROVENANCE_CLASSES = /* @__PURE__ */ new Set([
|
|
1773
|
+
"measured",
|
|
1774
|
+
// source-attested: a real sensor reading, DB value, on-chain fact
|
|
1775
|
+
"derived",
|
|
1776
|
+
// computed from measured values by a transparent bounded function
|
|
1777
|
+
"inferred",
|
|
1778
|
+
// model/heuristic estimate (a forecast) — honest that it is a guess
|
|
1779
|
+
"generative"
|
|
1780
|
+
// produced by a generative model (LLM-authored value)
|
|
1781
|
+
]);
|
|
1782
|
+
/** Visible honesty glyph appended to a non-`measured` text value (measured = trusted, no marker). */
|
|
1783
|
+
_Native2DCompiler.PROVENANCE_GLYPH = {
|
|
1784
|
+
measured: "",
|
|
1785
|
+
derived: "\xB0",
|
|
1786
|
+
inferred: "~",
|
|
1787
|
+
generative: "\u2726"
|
|
1788
|
+
};
|
|
1789
|
+
_Native2DCompiler.TEXT_SIZE_TOKENS = /* @__PURE__ */ new Set([
|
|
1790
|
+
"text-xs",
|
|
1791
|
+
"text-sm",
|
|
1792
|
+
"text-base",
|
|
1793
|
+
"text-lg",
|
|
1794
|
+
"text-xl",
|
|
1795
|
+
"text-2xl",
|
|
1796
|
+
"text-3xl",
|
|
1797
|
+
"text-4xl",
|
|
1798
|
+
"text-5xl",
|
|
1799
|
+
"text-6xl",
|
|
1800
|
+
"text-7xl",
|
|
1801
|
+
"text-8xl",
|
|
1802
|
+
"text-9xl"
|
|
1803
|
+
]);
|
|
1804
|
+
var Native2DCompiler = _Native2DCompiler;
|
|
1241
1805
|
|
|
1242
1806
|
// src/compiler/NextJSCompiler.ts
|
|
1243
1807
|
function findTrait(composition, traitName2) {
|
|
@@ -1246,7 +1810,7 @@ function findTrait(composition, traitName2) {
|
|
|
1246
1810
|
const found = traits.find((t) => t.name === traitName2);
|
|
1247
1811
|
return found?.config || null;
|
|
1248
1812
|
}
|
|
1249
|
-
var NextJSCompiler = class extends
|
|
1813
|
+
var NextJSCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
1250
1814
|
constructor(options = {}) {
|
|
1251
1815
|
super();
|
|
1252
1816
|
this.options = options;
|
|
@@ -1350,12 +1914,12 @@ var NextJSCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
1350
1914
|
};
|
|
1351
1915
|
|
|
1352
1916
|
// src/compiler/index.ts
|
|
1353
|
-
|
|
1917
|
+
chunkCESMPUEZ_cjs.init_NextJSAPICompiler();
|
|
1354
1918
|
|
|
1355
1919
|
// src/compiler/MCPConfigCompiler.ts
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
var MCPConfigCompiler = class extends
|
|
1920
|
+
chunkSE2Y5BSL_cjs.init_CompilerBase();
|
|
1921
|
+
chunkCESMPUEZ_cjs.init_DialectRegistry();
|
|
1922
|
+
var MCPConfigCompiler = class extends chunkSE2Y5BSL_cjs.CompilerBase {
|
|
1359
1923
|
constructor(options = {}) {
|
|
1360
1924
|
super();
|
|
1361
1925
|
this.compilerName = "MCPConfigCompiler";
|
|
@@ -1551,7 +2115,7 @@ var MCPConfigCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
|
|
|
1551
2115
|
return void 0;
|
|
1552
2116
|
}
|
|
1553
2117
|
};
|
|
1554
|
-
|
|
2118
|
+
chunkCESMPUEZ_cjs.DialectRegistry.register({
|
|
1555
2119
|
name: "mcp-config",
|
|
1556
2120
|
domain: "configuration",
|
|
1557
2121
|
description: "Compiles .holo MCP server connection definitions to IDE-specific client config JSON",
|
|
@@ -1562,10 +2126,10 @@ chunkRMOEL2GD_cjs.DialectRegistry.register({
|
|
|
1562
2126
|
});
|
|
1563
2127
|
|
|
1564
2128
|
// src/compiler/index.ts
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
2129
|
+
chunkCESMPUEZ_cjs.init_HoloMCPCompiler();
|
|
2130
|
+
chunkYMI3ED3B_cjs.init_AgentInferenceExportTarget();
|
|
2131
|
+
chunkCESMPUEZ_cjs.init_OmnigentAgentYamlCompiler();
|
|
2132
|
+
chunkOOP4S3GU_cjs.init_DaimonSeedCompiler();
|
|
1569
2133
|
chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
|
|
1570
2134
|
|
|
1571
2135
|
// src/compiler/authority/AuthoritySymbolGraph.ts
|
|
@@ -2782,13 +3346,13 @@ function byzantineResilientMerge(agentDags, ledger, options = {}) {
|
|
|
2782
3346
|
}
|
|
2783
3347
|
|
|
2784
3348
|
// src/compiler/index.ts
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
3349
|
+
chunkCESMPUEZ_cjs.init_NodeServiceCompiler();
|
|
3350
|
+
chunkCESMPUEZ_cjs.init_SDKCompiler();
|
|
3351
|
+
chunkCESMPUEZ_cjs.init_LlamaServerCompiler();
|
|
3352
|
+
chunkCESMPUEZ_cjs.init_holoscript_gbnf();
|
|
3353
|
+
chunkCESMPUEZ_cjs.init_DialectRegistry();
|
|
3354
|
+
chunkCESMPUEZ_cjs.init_registerBuiltinDialects();
|
|
3355
|
+
chunkCESMPUEZ_cjs.init_PCGGraphCompiler();
|
|
2792
3356
|
|
|
2793
3357
|
// src/compiler/dispatch/DispatchPolicy.ts
|
|
2794
3358
|
var DispatchTier = /* @__PURE__ */ ((DispatchTier2) => {
|
|
@@ -3267,8 +3831,8 @@ async function sha256Hex(input) {
|
|
|
3267
3831
|
const digest = await subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
3268
3832
|
return bytesToHex(new Uint8Array(digest));
|
|
3269
3833
|
}
|
|
3270
|
-
const { createHash } = await import('crypto');
|
|
3271
|
-
return
|
|
3834
|
+
const { createHash: createHash2 } = await import('crypto');
|
|
3835
|
+
return createHash2("sha256").update(input).digest("hex");
|
|
3272
3836
|
}
|
|
3273
3837
|
function bytesToHex(bytes) {
|
|
3274
3838
|
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -3615,16 +4179,16 @@ function formatTierCounts(counts) {
|
|
|
3615
4179
|
}
|
|
3616
4180
|
|
|
3617
4181
|
// src/compiler/TraitRegistryBridge.ts
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
4182
|
+
chunkREN3LHO6_cjs.init_AndroidXRTraitMap();
|
|
4183
|
+
chunkFOM36K5I_cjs.init_VisionOSTraitMap();
|
|
4184
|
+
chunk7FYSSI3C_cjs.init_traitDocs();
|
|
3621
4185
|
function normaliseTraitName(name) {
|
|
3622
4186
|
return name.toLowerCase().replace(/^@/, "").replace(/trait$/i, "").replace(/_/g, "-").trim();
|
|
3623
4187
|
}
|
|
3624
4188
|
function queryTrait(name, opts = {}) {
|
|
3625
4189
|
const target = opts.target || "core";
|
|
3626
4190
|
if (target === "android-xr") {
|
|
3627
|
-
const map =
|
|
4191
|
+
const map = chunkREN3LHO6_cjs.getTraitMapping(name);
|
|
3628
4192
|
if (map) {
|
|
3629
4193
|
return {
|
|
3630
4194
|
name,
|
|
@@ -3636,7 +4200,7 @@ function queryTrait(name, opts = {}) {
|
|
|
3636
4200
|
}
|
|
3637
4201
|
}
|
|
3638
4202
|
if (target === "visionos") {
|
|
3639
|
-
const map =
|
|
4203
|
+
const map = chunkFOM36K5I_cjs.getTraitMapping(name);
|
|
3640
4204
|
if (map) {
|
|
3641
4205
|
return {
|
|
3642
4206
|
name,
|
|
@@ -3649,9 +4213,9 @@ function queryTrait(name, opts = {}) {
|
|
|
3649
4213
|
return { name, exists: false, sourceMap: "VisionOSTraitMap" };
|
|
3650
4214
|
}
|
|
3651
4215
|
const normalised = normaliseTraitName(name);
|
|
3652
|
-
if (
|
|
3653
|
-
const handler =
|
|
3654
|
-
const doc2 =
|
|
4216
|
+
if (chunkML4V5PVU_cjs.vrTraitRegistry.has(normalised)) {
|
|
4217
|
+
const handler = chunkML4V5PVU_cjs.vrTraitRegistry.getHandler(normalised);
|
|
4218
|
+
const doc2 = chunk7FYSSI3C_cjs.getTraitDoc(name);
|
|
3655
4219
|
return {
|
|
3656
4220
|
name,
|
|
3657
4221
|
exists: true,
|
|
@@ -3662,7 +4226,7 @@ function queryTrait(name, opts = {}) {
|
|
|
3662
4226
|
annotation: doc2?.annotation
|
|
3663
4227
|
};
|
|
3664
4228
|
}
|
|
3665
|
-
const doc =
|
|
4229
|
+
const doc = chunk7FYSSI3C_cjs.getTraitDoc(name);
|
|
3666
4230
|
if (doc) {
|
|
3667
4231
|
return {
|
|
3668
4232
|
name,
|
|
@@ -3681,12 +4245,12 @@ function queryTrait(name, opts = {}) {
|
|
|
3681
4245
|
}
|
|
3682
4246
|
function generateTraitForTarget(name, target, config = {}) {
|
|
3683
4247
|
if (target === "android-xr" || target === "android") {
|
|
3684
|
-
return
|
|
4248
|
+
return chunkREN3LHO6_cjs.getTraitMapping(name)?.generate?.(name, config) ?? [
|
|
3685
4249
|
`// @${name} not yet mapped for android-xr (see AndroidXRTraitMap)`
|
|
3686
4250
|
];
|
|
3687
4251
|
}
|
|
3688
4252
|
if (target === "visionos") {
|
|
3689
|
-
return
|
|
4253
|
+
return chunkFOM36K5I_cjs.generateTraitCode(name, name, config) ?? [
|
|
3690
4254
|
`// @${name} not yet mapped for visionos (see VisionOSTraitMap)`
|
|
3691
4255
|
];
|
|
3692
4256
|
}
|
|
@@ -3701,22 +4265,22 @@ function generateTraitForTarget(name, target, config = {}) {
|
|
|
3701
4265
|
}
|
|
3702
4266
|
function listTraitsForTarget(target) {
|
|
3703
4267
|
if (target === "android-xr") {
|
|
3704
|
-
return Object.keys(
|
|
4268
|
+
return Object.keys(chunkREN3LHO6_cjs.ANDROIDXR_TRAIT_MAP);
|
|
3705
4269
|
}
|
|
3706
4270
|
if (target === "visionos") {
|
|
3707
|
-
return
|
|
4271
|
+
return chunkFOM36K5I_cjs.listAllTraits ? chunkFOM36K5I_cjs.listAllTraits() : [];
|
|
3708
4272
|
}
|
|
3709
4273
|
if (target === "core") {
|
|
3710
4274
|
const seen = /* @__PURE__ */ new Set();
|
|
3711
4275
|
const result = [];
|
|
3712
|
-
for (const name of
|
|
4276
|
+
for (const name of chunkML4V5PVU_cjs.vrTraitRegistry.getRegisteredTraits()) {
|
|
3713
4277
|
const norm = normaliseTraitName(name);
|
|
3714
4278
|
if (!seen.has(norm)) {
|
|
3715
4279
|
seen.add(norm);
|
|
3716
4280
|
result.push(name);
|
|
3717
4281
|
}
|
|
3718
4282
|
}
|
|
3719
|
-
for (const annotation of
|
|
4283
|
+
for (const annotation of chunk7FYSSI3C_cjs.getAllTraitNames()) {
|
|
3720
4284
|
const norm = normaliseTraitName(annotation);
|
|
3721
4285
|
if (!seen.has(norm)) {
|
|
3722
4286
|
seen.add(norm);
|
|
@@ -3729,17 +4293,17 @@ function listTraitsForTarget(target) {
|
|
|
3729
4293
|
}
|
|
3730
4294
|
function traitExists(name) {
|
|
3731
4295
|
const normalised = normaliseTraitName(name);
|
|
3732
|
-
if (
|
|
4296
|
+
if (chunkML4V5PVU_cjs.vrTraitRegistry.has(normalised)) {
|
|
3733
4297
|
return true;
|
|
3734
4298
|
}
|
|
3735
|
-
const doc =
|
|
4299
|
+
const doc = chunk7FYSSI3C_cjs.getTraitDoc(name);
|
|
3736
4300
|
if (doc) {
|
|
3737
4301
|
return true;
|
|
3738
4302
|
}
|
|
3739
|
-
if (
|
|
4303
|
+
if (chunkREN3LHO6_cjs.getTraitMapping(name)) {
|
|
3740
4304
|
return true;
|
|
3741
4305
|
}
|
|
3742
|
-
if (
|
|
4306
|
+
if (chunkFOM36K5I_cjs.getTraitMapping(name)) {
|
|
3743
4307
|
return true;
|
|
3744
4308
|
}
|
|
3745
4309
|
return false;
|
|
@@ -3827,7 +4391,7 @@ function getAllManifests() {
|
|
|
3827
4391
|
}
|
|
3828
4392
|
|
|
3829
4393
|
// src/compiler/platform/plugins/WebGPUWGSLPlugin.ts
|
|
3830
|
-
|
|
4394
|
+
chunkERYKKPHW_cjs.init_WebGPUCompiler();
|
|
3831
4395
|
var WEBGPU_WGSL_METADATA = {
|
|
3832
4396
|
name: "holoscript-plugin-webgpu-wgsl",
|
|
3833
4397
|
version: "1.0.0",
|
|
@@ -3856,7 +4420,7 @@ var WebGPUWGSLPlugin = class {
|
|
|
3856
4420
|
switch (target) {
|
|
3857
4421
|
case "web": {
|
|
3858
4422
|
try {
|
|
3859
|
-
const compiler = new
|
|
4423
|
+
const compiler = new chunkERYKKPHW_cjs.WebGPUCompiler({ enableCompute: true });
|
|
3860
4424
|
const result = compiler.compile(ast, "");
|
|
3861
4425
|
return { type: "text", data: result };
|
|
3862
4426
|
} catch (err) {
|
|
@@ -3950,7 +4514,7 @@ var WebGPUWGSLPlugin = class {
|
|
|
3950
4514
|
platformPluginRegistry.register(new WebGPUWGSLPlugin());
|
|
3951
4515
|
|
|
3952
4516
|
// src/compiler/platform/plugins/AndroidARCorePlugin.ts
|
|
3953
|
-
|
|
4517
|
+
chunkREN3LHO6_cjs.init_AndroidXRCompiler();
|
|
3954
4518
|
var ANDROID_ARCORE_METADATA = {
|
|
3955
4519
|
name: "holoscript-plugin-android-arcore",
|
|
3956
4520
|
version: "1.0.0",
|
|
@@ -3981,7 +4545,7 @@ var AndroidARCorePlugin = class {
|
|
|
3981
4545
|
case "android-xr":
|
|
3982
4546
|
case "android-xr-ar": {
|
|
3983
4547
|
try {
|
|
3984
|
-
const compiler = new
|
|
4548
|
+
const compiler = new chunkREN3LHO6_cjs.AndroidXRCompiler({
|
|
3985
4549
|
formFactor: target === "android-xr-ar" ? "glasses" : "headset"
|
|
3986
4550
|
});
|
|
3987
4551
|
const result = compiler.compile(ast, "apl-plugin-token");
|
|
@@ -4081,6 +4645,18 @@ platformPluginRegistry.register(new AndroidARCorePlugin());
|
|
|
4081
4645
|
var SOVEREIGN_TARGETS = [
|
|
4082
4646
|
"webgpu",
|
|
4083
4647
|
// WebGPUCompiler → WGSL compute+render shaders on our own WebGPU device (WebGPURenderer)
|
|
4648
|
+
"audio",
|
|
4649
|
+
// SpatialAudioCompiler → our own Web Audio graph (HRTF PannerNode + Convolver reverb + filters); no third-party audio engine
|
|
4650
|
+
"desktop-gpu",
|
|
4651
|
+
// DesktopGPUCompiler → standalone Rust wgpu project (Vulkan/Metal/DX12), renders the scene offscreen on the machine's own GPU; no browser, no third-party engine. Verified on Jetson Orin/Vulkan.
|
|
4652
|
+
"pathtrace",
|
|
4653
|
+
// PathTracerCompiler → standalone Rust wgpu COMPUTE path tracer (cosine-weighted GI, emissive area lights, multi-sample) → tonemapped PNG; our own tracer, no Cycles/OptiX. Verified on Jetson Orin/Vulkan.
|
|
4654
|
+
"pathtrace-cpu",
|
|
4655
|
+
// CpuPathTracer → the no-GPU fallback: pure-TS CPU path tracer (same algorithm + shared scene extraction) → PNG. Runs offline GI anywhere Node/JS runs (server/CI/old device). The "runs anywhere / no-WebGPU compute fallback" gap.
|
|
4656
|
+
"media",
|
|
4657
|
+
// MediaPipelineCompiler → renders an animated turntable of the scene (CPU) and encodes it to an APNG with our OWN encoder (node:zlib only, no ffmpeg/codec/muxer). The video/media-pipeline gap; a moving picture from a .holo.
|
|
4658
|
+
"physics-sim",
|
|
4659
|
+
// ComputePhysicsCompiler → WGSL COMPUTE rigid-body solver (gravity + sphere/sphere + sphere/AABB collisions, restitution, double-buffered) that steps on the GPU + renders the settled state. Our own solver, no third-party physics engine. Consumes the collider vocabulary; the DYNAMICS layer on top of PhysicsColliderCompiler. Verified on Jetson Orin/Vulkan.
|
|
4084
4660
|
"character-webgpu",
|
|
4085
4661
|
// CharacterWebGPUCompiler → authored .holo character → CharacterDrawSpec run by our renderCharacter (sovereign skinned-character path)
|
|
4086
4662
|
"nir",
|
|
@@ -4302,40 +4878,100 @@ var SOVEREIGN_ENGINES = [
|
|
|
4302
4878
|
tests: true,
|
|
4303
4879
|
promoted: false,
|
|
4304
4880
|
note: "Signed-distance-field \u2192 raymarch WGSL/GLSL. Native GPU renderer codegen."
|
|
4881
|
+
},
|
|
4882
|
+
{
|
|
4883
|
+
id: "spatial-audio",
|
|
4884
|
+
name: "SpatialAudioCompiler",
|
|
4885
|
+
file: "packages/core/src/compiler/SpatialAudioCompiler.ts",
|
|
4886
|
+
kind: "compiler",
|
|
4887
|
+
maturity: "real",
|
|
4888
|
+
tests: true,
|
|
4889
|
+
promoted: false,
|
|
4890
|
+
note: "The audio peer of WebGPU: emits our OWN Web Audio graph (HRTF PannerNode + Convolver reverb from synthesized rt60 impulses + directivity/occlusion/portal filters) from @audio_source/@audio_listener/@reverb_zone/@audio_material/@audio_occlusion/@audio_portal traits. Sovereign \u2014 no FMOD/Wwise/Resonance. Fills the #1 spatial-computing gap (no audio compiler existed)."
|
|
4891
|
+
},
|
|
4892
|
+
{
|
|
4893
|
+
id: "desktop-gpu",
|
|
4894
|
+
name: "DesktopGPUCompiler",
|
|
4895
|
+
file: "packages/core/src/compiler/DesktopGPUCompiler.ts",
|
|
4896
|
+
kind: "compiler",
|
|
4897
|
+
maturity: "real",
|
|
4898
|
+
tests: true,
|
|
4899
|
+
promoted: false,
|
|
4900
|
+
note: `Sovereign native-desktop GPU: emits a self-contained Rust wgpu project (Vulkan/Metal/DX12) that renders the scene offscreen to a PNG on the machine's OWN GPU \u2014 standalone, no browser, no third-party engine. WebGPU is browser/runtime-bound; this is the "runs standalone at native perf" gap. Matrices computed in the compiler; geometry generators + wgpu host emitted. VERIFIED on real hardware: Jetson Orin (Tegra) via Vulkan rendered a 6-object scene offscreen to PNG (adapter=NVIDIA Tegra Orin, backend=Vulkan). Consumes the same geometry-registry + geometry-purpose vocabulary as render/physics/audio.`
|
|
4901
|
+
},
|
|
4902
|
+
{
|
|
4903
|
+
id: "path-tracer",
|
|
4904
|
+
name: "PathTracerCompiler",
|
|
4905
|
+
file: "packages/core/src/compiler/PathTracerCompiler.ts",
|
|
4906
|
+
kind: "compiler",
|
|
4907
|
+
maturity: "real",
|
|
4908
|
+
tests: true,
|
|
4909
|
+
promoted: false,
|
|
4910
|
+
note: "Sovereign OFFLINE path-traced render \u2014 the film-grade-still gap the rasterizers (WebGPU/desktop-gpu) do not fill. Emits a self-contained Rust wgpu COMPUTE program: our OWN GPU path tracer (no Cycles/OptiX) that traces cosine-weighted diffuse bounces against analytic sphere/box primitives, accumulates many samples, and tonemaps to PNG. Global illumination \u2014 soft shadows, colour bleeding, emissive area lights. VERIFIED on Jetson Orin (Tegra/Vulkan): a Cornell-box scene rendered with visible GI colour-bleed + soft shadows. Fifth consumer of the shared geometry-registry + geometry-purpose vocabulary."
|
|
4911
|
+
},
|
|
4912
|
+
{
|
|
4913
|
+
id: "cpu-path-tracer",
|
|
4914
|
+
name: "CpuPathTracer",
|
|
4915
|
+
file: "packages/core/src/compiler/CpuPathTracer.ts",
|
|
4916
|
+
kind: "runtime",
|
|
4917
|
+
maturity: "real",
|
|
4918
|
+
tests: true,
|
|
4919
|
+
promoted: false,
|
|
4920
|
+
note: 'The sovereign no-GPU FALLBACK: a pure-TypeScript CPU path tracer that RUNS (not emits) the same GI algorithm as PathTracerCompiler, sharing extractRaytraceScene so the two render the same scene. Renders offline global-illumination stills anywhere Node/JS runs \u2014 server, CI, old device, no WebGPU/GPU needed. Ships its own PNG encoder (node:zlib), zero deps. Fills the "runs anywhere / no-WebGPU compute fallback" gap the audit named (compiler-wasm is a parser, not a compute backend).'
|
|
4921
|
+
},
|
|
4922
|
+
{
|
|
4923
|
+
id: "media-pipeline",
|
|
4924
|
+
name: "MediaPipelineCompiler",
|
|
4925
|
+
file: "packages/core/src/compiler/MediaPipelineCompiler.ts",
|
|
4926
|
+
kind: "runtime",
|
|
4927
|
+
maturity: "real",
|
|
4928
|
+
tests: true,
|
|
4929
|
+
promoted: false,
|
|
4930
|
+
note: "The sovereign VIDEO / media-pipeline: renders an animated turntable of the scene (orbiting camera, fast CPU flat projector over the shared raytrace-scene extraction) and encodes the frame sequence to an APNG with our OWN encoder (acTL/fcTL/fdAT via node:zlib) \u2014 no ffmpeg / codec / muxer dependency. A moving picture from a .holo, runs anywhere Node runs. Fills the media-pipeline gap the audit named; browser-native WebCodecs H.264/WebM is the follow-on encode path."
|
|
4931
|
+
},
|
|
4932
|
+
{
|
|
4933
|
+
id: "compute-physics",
|
|
4934
|
+
name: "ComputePhysicsCompiler",
|
|
4935
|
+
file: "packages/core/src/compiler/ComputePhysicsCompiler.ts",
|
|
4936
|
+
kind: "compiler",
|
|
4937
|
+
maturity: "real",
|
|
4938
|
+
tests: true,
|
|
4939
|
+
promoted: false,
|
|
4940
|
+
note: "The sovereign GPU rigid-body SIMULATION \u2014 the dynamics layer PhysicsColliderCompiler was missing. Emits a Rust wgpu program with a WGSL COMPUTE solver: gravity + sphere/sphere + sphere/static-AABB collisions with restitution + friction, double-buffered (gather, race-free), stepped N times on the GPU; then renders the settled state to PNG. Our own solver, no third-party physics engine. One .holo drives BOTH render and sim (Grok + Claude converged design). Dynamic bodies = @rigid_body spheres; statics = scene boxes. VERIFIED on Jetson Orin (Tegra/Vulkan): spheres dropped above a floor fall, collide and settle. Hooks the physics-discovery / provenance goals."
|
|
4305
4941
|
}
|
|
4306
4942
|
];
|
|
4307
4943
|
|
|
4308
4944
|
Object.defineProperty(exports, "ContextCompileError", {
|
|
4309
4945
|
enumerable: true,
|
|
4310
|
-
get: function () { return
|
|
4946
|
+
get: function () { return chunkYM7UUYR5_cjs.ContextCompileError; }
|
|
4311
4947
|
});
|
|
4312
4948
|
Object.defineProperty(exports, "ContextCompiler", {
|
|
4313
4949
|
enumerable: true,
|
|
4314
|
-
get: function () { return
|
|
4950
|
+
get: function () { return chunkYM7UUYR5_cjs.ContextCompiler; }
|
|
4315
4951
|
});
|
|
4316
4952
|
Object.defineProperty(exports, "createContextCompiler", {
|
|
4317
4953
|
enumerable: true,
|
|
4318
|
-
get: function () { return
|
|
4954
|
+
get: function () { return chunkYM7UUYR5_cjs.createContextCompiler; }
|
|
4319
4955
|
});
|
|
4320
4956
|
Object.defineProperty(exports, "LLMCapabilityCompileError", {
|
|
4321
4957
|
enumerable: true,
|
|
4322
|
-
get: function () { return
|
|
4958
|
+
get: function () { return chunkD44CEFY4_cjs.LLMCapabilityCompileError; }
|
|
4323
4959
|
});
|
|
4324
4960
|
Object.defineProperty(exports, "LLMProviderCapabilitiesCompiler", {
|
|
4325
4961
|
enumerable: true,
|
|
4326
|
-
get: function () { return
|
|
4962
|
+
get: function () { return chunkD44CEFY4_cjs.LLMProviderCapabilitiesCompiler; }
|
|
4327
4963
|
});
|
|
4328
4964
|
Object.defineProperty(exports, "createLLMProviderCapabilitiesCompiler", {
|
|
4329
4965
|
enumerable: true,
|
|
4330
|
-
get: function () { return
|
|
4966
|
+
get: function () { return chunkD44CEFY4_cjs.createLLMProviderCapabilitiesCompiler; }
|
|
4331
4967
|
});
|
|
4332
4968
|
Object.defineProperty(exports, "GLTF_PIPELINE_TOOLS", {
|
|
4333
4969
|
enumerable: true,
|
|
4334
|
-
get: function () { return
|
|
4970
|
+
get: function () { return chunk7ITJP33Q_cjs.GLTF_PIPELINE_TOOLS; }
|
|
4335
4971
|
});
|
|
4336
4972
|
Object.defineProperty(exports, "registerGLTFTools", {
|
|
4337
4973
|
enumerable: true,
|
|
4338
|
-
get: function () { return
|
|
4974
|
+
get: function () { return chunk7ITJP33Q_cjs.registerGLTFTools; }
|
|
4339
4975
|
});
|
|
4340
4976
|
Object.defineProperty(exports, "BUSINESS_QUEST_TOOLS", {
|
|
4341
4977
|
enumerable: true,
|
|
@@ -4383,259 +5019,287 @@ Object.defineProperty(exports, "parseReproducibilityFlags", {
|
|
|
4383
5019
|
});
|
|
4384
5020
|
Object.defineProperty(exports, "QuantumCircuitCompiler", {
|
|
4385
5021
|
enumerable: true,
|
|
4386
|
-
get: function () { return
|
|
5022
|
+
get: function () { return chunkGGH3ZYDB_cjs.QuantumCircuitCompiler; }
|
|
4387
5023
|
});
|
|
4388
5024
|
Object.defineProperty(exports, "CodeEditorCompiler", {
|
|
4389
5025
|
enumerable: true,
|
|
4390
|
-
get: function () { return
|
|
5026
|
+
get: function () { return chunkCESMPUEZ_cjs.CodeEditorCompiler; }
|
|
4391
5027
|
});
|
|
4392
5028
|
Object.defineProperty(exports, "CompileTimeAuthorityEffectError", {
|
|
4393
5029
|
enumerable: true,
|
|
4394
|
-
get: function () { return
|
|
5030
|
+
get: function () { return chunkCESMPUEZ_cjs.CompileTimeAuthorityEffectError; }
|
|
4395
5031
|
});
|
|
4396
5032
|
Object.defineProperty(exports, "CompilerBridge", {
|
|
4397
5033
|
enumerable: true,
|
|
4398
|
-
get: function () { return
|
|
5034
|
+
get: function () { return chunkCESMPUEZ_cjs.CompilerBridge; }
|
|
5035
|
+
});
|
|
5036
|
+
Object.defineProperty(exports, "ComputePhysicsCompiler", {
|
|
5037
|
+
enumerable: true,
|
|
5038
|
+
get: function () { return chunkCESMPUEZ_cjs.ComputePhysicsCompiler; }
|
|
5039
|
+
});
|
|
5040
|
+
Object.defineProperty(exports, "CpuPathTracer", {
|
|
5041
|
+
enumerable: true,
|
|
5042
|
+
get: function () { return chunkCESMPUEZ_cjs.CpuPathTracer; }
|
|
4399
5043
|
});
|
|
4400
5044
|
Object.defineProperty(exports, "DEFAULT_MATERIAL_KEYWORDS", {
|
|
4401
5045
|
enumerable: true,
|
|
4402
|
-
get: function () { return
|
|
5046
|
+
get: function () { return chunkCESMPUEZ_cjs.DEFAULT_MATERIAL_KEYWORDS; }
|
|
4403
5047
|
});
|
|
4404
5048
|
Object.defineProperty(exports, "DEFAULT_OBJECT_KEYWORDS", {
|
|
4405
5049
|
enumerable: true,
|
|
4406
|
-
get: function () { return
|
|
5050
|
+
get: function () { return chunkCESMPUEZ_cjs.DEFAULT_OBJECT_KEYWORDS; }
|
|
4407
5051
|
});
|
|
4408
5052
|
Object.defineProperty(exports, "DEFAULT_PRIMITIVE_SHAPES", {
|
|
4409
5053
|
enumerable: true,
|
|
4410
|
-
get: function () { return
|
|
5054
|
+
get: function () { return chunkCESMPUEZ_cjs.DEFAULT_PRIMITIVE_SHAPES; }
|
|
5055
|
+
});
|
|
5056
|
+
Object.defineProperty(exports, "DesktopGPUCompiler", {
|
|
5057
|
+
enumerable: true,
|
|
5058
|
+
get: function () { return chunkCESMPUEZ_cjs.DesktopGPUCompiler; }
|
|
4411
5059
|
});
|
|
4412
5060
|
Object.defineProperty(exports, "DialectRegistry", {
|
|
4413
5061
|
enumerable: true,
|
|
4414
|
-
get: function () { return
|
|
5062
|
+
get: function () { return chunkCESMPUEZ_cjs.DialectRegistry; }
|
|
4415
5063
|
});
|
|
4416
5064
|
Object.defineProperty(exports, "EdgeCompiler", {
|
|
4417
5065
|
enumerable: true,
|
|
4418
|
-
get: function () { return
|
|
5066
|
+
get: function () { return chunkCESMPUEZ_cjs.EdgeCompiler; }
|
|
4419
5067
|
});
|
|
4420
5068
|
Object.defineProperty(exports, "FMUCompiler", {
|
|
4421
5069
|
enumerable: true,
|
|
4422
|
-
get: function () { return
|
|
5070
|
+
get: function () { return chunkCESMPUEZ_cjs.FMUCompiler; }
|
|
4423
5071
|
});
|
|
4424
5072
|
Object.defineProperty(exports, "GaussianSplattingCompiler", {
|
|
4425
5073
|
enumerable: true,
|
|
4426
|
-
get: function () { return
|
|
5074
|
+
get: function () { return chunkCESMPUEZ_cjs.GaussianSplattingCompiler; }
|
|
4427
5075
|
});
|
|
4428
5076
|
Object.defineProperty(exports, "GaussianTrainCompiler", {
|
|
4429
5077
|
enumerable: true,
|
|
4430
|
-
get: function () { return
|
|
5078
|
+
get: function () { return chunkCESMPUEZ_cjs.GaussianTrainCompiler; }
|
|
4431
5079
|
});
|
|
4432
5080
|
Object.defineProperty(exports, "GaussianTrainConfigError", {
|
|
4433
5081
|
enumerable: true,
|
|
4434
|
-
get: function () { return
|
|
5082
|
+
get: function () { return chunkCESMPUEZ_cjs.GaussianTrainConfigError; }
|
|
4435
5083
|
});
|
|
4436
5084
|
Object.defineProperty(exports, "HOLOSCRIPT_GRAMMAR_PRESETS", {
|
|
4437
5085
|
enumerable: true,
|
|
4438
|
-
get: function () { return
|
|
5086
|
+
get: function () { return chunkCESMPUEZ_cjs.HOLOSCRIPT_GRAMMAR_PRESETS; }
|
|
4439
5087
|
});
|
|
4440
5088
|
Object.defineProperty(exports, "HoloMCPCompiler", {
|
|
4441
5089
|
enumerable: true,
|
|
4442
|
-
get: function () { return
|
|
5090
|
+
get: function () { return chunkCESMPUEZ_cjs.HoloMCPCompiler; }
|
|
4443
5091
|
});
|
|
4444
5092
|
Object.defineProperty(exports, "LlamaServerCompiler", {
|
|
4445
5093
|
enumerable: true,
|
|
4446
|
-
get: function () { return
|
|
5094
|
+
get: function () { return chunkCESMPUEZ_cjs.LlamaServerCompiler; }
|
|
5095
|
+
});
|
|
5096
|
+
Object.defineProperty(exports, "MediaPipelineCompiler", {
|
|
5097
|
+
enumerable: true,
|
|
5098
|
+
get: function () { return chunkCESMPUEZ_cjs.MediaPipelineCompiler; }
|
|
4447
5099
|
});
|
|
4448
5100
|
Object.defineProperty(exports, "NextJSAPICompiler", {
|
|
4449
5101
|
enumerable: true,
|
|
4450
|
-
get: function () { return
|
|
5102
|
+
get: function () { return chunkCESMPUEZ_cjs.NextJSAPICompiler; }
|
|
4451
5103
|
});
|
|
4452
5104
|
Object.defineProperty(exports, "NodeServiceCompiler", {
|
|
4453
5105
|
enumerable: true,
|
|
4454
|
-
get: function () { return
|
|
5106
|
+
get: function () { return chunkCESMPUEZ_cjs.NodeServiceCompiler; }
|
|
4455
5107
|
});
|
|
4456
5108
|
Object.defineProperty(exports, "OmnigentAgentYamlCompiler", {
|
|
4457
5109
|
enumerable: true,
|
|
4458
|
-
get: function () { return
|
|
5110
|
+
get: function () { return chunkCESMPUEZ_cjs.OmnigentAgentYamlCompiler; }
|
|
4459
5111
|
});
|
|
4460
5112
|
Object.defineProperty(exports, "PCGGraphCompiler", {
|
|
4461
5113
|
enumerable: true,
|
|
4462
|
-
get: function () { return
|
|
5114
|
+
get: function () { return chunkCESMPUEZ_cjs.PCGGraphCompiler; }
|
|
4463
5115
|
});
|
|
4464
5116
|
Object.defineProperty(exports, "PCG_GRAPH_SCHEMA", {
|
|
4465
5117
|
enumerable: true,
|
|
4466
|
-
get: function () { return
|
|
5118
|
+
get: function () { return chunkCESMPUEZ_cjs.PCG_GRAPH_SCHEMA; }
|
|
5119
|
+
});
|
|
5120
|
+
Object.defineProperty(exports, "PathTracerCompiler", {
|
|
5121
|
+
enumerable: true,
|
|
5122
|
+
get: function () { return chunkCESMPUEZ_cjs.PathTracerCompiler; }
|
|
5123
|
+
});
|
|
5124
|
+
Object.defineProperty(exports, "PhysicsColliderCompiler", {
|
|
5125
|
+
enumerable: true,
|
|
5126
|
+
get: function () { return chunkCESMPUEZ_cjs.PhysicsColliderCompiler; }
|
|
4467
5127
|
});
|
|
4468
5128
|
Object.defineProperty(exports, "REMOTE_TRAIN_EXECUTOR", {
|
|
4469
5129
|
enumerable: true,
|
|
4470
|
-
get: function () { return
|
|
5130
|
+
get: function () { return chunkCESMPUEZ_cjs.REMOTE_TRAIN_EXECUTOR; }
|
|
4471
5131
|
});
|
|
4472
5132
|
Object.defineProperty(exports, "REQUIRED_SANDBOX_AUTHORITY_EFFECT", {
|
|
4473
5133
|
enumerable: true,
|
|
4474
|
-
get: function () { return
|
|
5134
|
+
get: function () { return chunkCESMPUEZ_cjs.REQUIRED_SANDBOX_AUTHORITY_EFFECT; }
|
|
4475
5135
|
});
|
|
4476
5136
|
Object.defineProperty(exports, "SANDBOX_AUTHORITY_TRAIT", {
|
|
4477
5137
|
enumerable: true,
|
|
4478
|
-
get: function () { return
|
|
5138
|
+
get: function () { return chunkCESMPUEZ_cjs.SANDBOX_AUTHORITY_TRAIT; }
|
|
4479
5139
|
});
|
|
4480
5140
|
Object.defineProperty(exports, "SCMCompiler", {
|
|
4481
5141
|
enumerable: true,
|
|
4482
|
-
get: function () { return
|
|
5142
|
+
get: function () { return chunkCESMPUEZ_cjs.SCMCompiler; }
|
|
4483
5143
|
});
|
|
4484
5144
|
Object.defineProperty(exports, "SDKCompiler", {
|
|
4485
5145
|
enumerable: true,
|
|
4486
|
-
get: function () { return
|
|
5146
|
+
get: function () { return chunkCESMPUEZ_cjs.SDKCompiler; }
|
|
4487
5147
|
});
|
|
4488
5148
|
Object.defineProperty(exports, "SHARED_SORT_SHADER_PATH", {
|
|
4489
5149
|
enumerable: true,
|
|
4490
|
-
get: function () { return
|
|
5150
|
+
get: function () { return chunkCESMPUEZ_cjs.SHARED_SORT_SHADER_PATH; }
|
|
4491
5151
|
});
|
|
4492
5152
|
Object.defineProperty(exports, "SOVEREIGN_TRAIN_EXECUTOR", {
|
|
4493
5153
|
enumerable: true,
|
|
4494
|
-
get: function () { return
|
|
5154
|
+
get: function () { return chunkCESMPUEZ_cjs.SOVEREIGN_TRAIN_EXECUTOR; }
|
|
4495
5155
|
});
|
|
4496
5156
|
Object.defineProperty(exports, "SVGCompiler", {
|
|
4497
5157
|
enumerable: true,
|
|
4498
|
-
get: function () { return
|
|
5158
|
+
get: function () { return chunkCESMPUEZ_cjs.SVGCompiler; }
|
|
5159
|
+
});
|
|
5160
|
+
Object.defineProperty(exports, "SpatialAudioCompiler", {
|
|
5161
|
+
enumerable: true,
|
|
5162
|
+
get: function () { return chunkCESMPUEZ_cjs.SpatialAudioCompiler; }
|
|
4499
5163
|
});
|
|
4500
5164
|
Object.defineProperty(exports, "SpatialPartitionPass", {
|
|
4501
5165
|
enumerable: true,
|
|
4502
|
-
get: function () { return
|
|
5166
|
+
get: function () { return chunkCESMPUEZ_cjs.SpatialPartitionPass; }
|
|
4503
5167
|
});
|
|
4504
5168
|
Object.defineProperty(exports, "ThreeDTilesCompiler", {
|
|
4505
5169
|
enumerable: true,
|
|
4506
|
-
get: function () { return
|
|
5170
|
+
get: function () { return chunkCESMPUEZ_cjs.ThreeDTilesCompiler; }
|
|
4507
5171
|
});
|
|
4508
5172
|
Object.defineProperty(exports, "USDZPipeline", {
|
|
4509
5173
|
enumerable: true,
|
|
4510
|
-
get: function () { return
|
|
5174
|
+
get: function () { return chunkCESMPUEZ_cjs.USDZPipeline; }
|
|
4511
5175
|
});
|
|
4512
5176
|
Object.defineProperty(exports, "absorbFMU", {
|
|
4513
5177
|
enumerable: true,
|
|
4514
|
-
get: function () { return
|
|
5178
|
+
get: function () { return chunkCESMPUEZ_cjs.absorbFMU; }
|
|
4515
5179
|
});
|
|
4516
5180
|
Object.defineProperty(exports, "assertAuthorityEffects", {
|
|
4517
5181
|
enumerable: true,
|
|
4518
|
-
get: function () { return
|
|
5182
|
+
get: function () { return chunkCESMPUEZ_cjs.assertAuthorityEffects; }
|
|
4519
5183
|
});
|
|
4520
5184
|
Object.defineProperty(exports, "bestCategoryForTraits", {
|
|
4521
5185
|
enumerable: true,
|
|
4522
|
-
get: function () { return
|
|
5186
|
+
get: function () { return chunkCESMPUEZ_cjs.bestCategoryForTraits; }
|
|
4523
5187
|
});
|
|
4524
5188
|
Object.defineProperty(exports, "checkAuthorityEffects", {
|
|
4525
5189
|
enumerable: true,
|
|
4526
|
-
get: function () { return
|
|
5190
|
+
get: function () { return chunkCESMPUEZ_cjs.checkAuthorityEffects; }
|
|
4527
5191
|
});
|
|
4528
5192
|
Object.defineProperty(exports, "collectAuthorityEffectNodes", {
|
|
4529
5193
|
enumerable: true,
|
|
4530
|
-
get: function () { return
|
|
5194
|
+
get: function () { return chunkCESMPUEZ_cjs.collectAuthorityEffectNodes; }
|
|
4531
5195
|
});
|
|
4532
5196
|
Object.defineProperty(exports, "compileAllToNextJSAPI", {
|
|
4533
5197
|
enumerable: true,
|
|
4534
|
-
get: function () { return
|
|
5198
|
+
get: function () { return chunkCESMPUEZ_cjs.compileAllToNextJSAPI; }
|
|
4535
5199
|
});
|
|
4536
5200
|
Object.defineProperty(exports, "compilePCGGraphFromBlocks", {
|
|
4537
5201
|
enumerable: true,
|
|
4538
|
-
get: function () { return
|
|
5202
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePCGGraphFromBlocks; }
|
|
4539
5203
|
});
|
|
4540
5204
|
Object.defineProperty(exports, "compilePipelineSource", {
|
|
4541
5205
|
enumerable: true,
|
|
4542
|
-
get: function () { return
|
|
5206
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePipelineSource; }
|
|
4543
5207
|
});
|
|
4544
5208
|
Object.defineProperty(exports, "compilePipelineSourceToNode", {
|
|
4545
5209
|
enumerable: true,
|
|
4546
|
-
get: function () { return
|
|
5210
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePipelineSourceToNode; }
|
|
4547
5211
|
});
|
|
4548
5212
|
Object.defineProperty(exports, "compilePipelineSourceToPython", {
|
|
4549
5213
|
enumerable: true,
|
|
4550
|
-
get: function () { return
|
|
5214
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePipelineSourceToPython; }
|
|
4551
5215
|
});
|
|
4552
5216
|
Object.defineProperty(exports, "compilePipelineToNode", {
|
|
4553
5217
|
enumerable: true,
|
|
4554
|
-
get: function () { return
|
|
5218
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePipelineToNode; }
|
|
4555
5219
|
});
|
|
4556
5220
|
Object.defineProperty(exports, "compilePipelineToPython", {
|
|
4557
5221
|
enumerable: true,
|
|
4558
|
-
get: function () { return
|
|
5222
|
+
get: function () { return chunkCESMPUEZ_cjs.compilePipelineToPython; }
|
|
4559
5223
|
});
|
|
4560
5224
|
Object.defineProperty(exports, "compileTo3DTiles", {
|
|
4561
5225
|
enumerable: true,
|
|
4562
|
-
get: function () { return
|
|
5226
|
+
get: function () { return chunkCESMPUEZ_cjs.compileTo3DTiles; }
|
|
4563
5227
|
});
|
|
4564
5228
|
Object.defineProperty(exports, "compileToFMU", {
|
|
4565
5229
|
enumerable: true,
|
|
4566
|
-
get: function () { return
|
|
5230
|
+
get: function () { return chunkCESMPUEZ_cjs.compileToFMU; }
|
|
4567
5231
|
});
|
|
4568
5232
|
Object.defineProperty(exports, "compileToNextJSAPI", {
|
|
4569
5233
|
enumerable: true,
|
|
4570
|
-
get: function () { return
|
|
5234
|
+
get: function () { return chunkCESMPUEZ_cjs.compileToNextJSAPI; }
|
|
4571
5235
|
});
|
|
4572
5236
|
Object.defineProperty(exports, "compileToPCGGraph", {
|
|
4573
5237
|
enumerable: true,
|
|
4574
|
-
get: function () { return
|
|
5238
|
+
get: function () { return chunkCESMPUEZ_cjs.compileToPCGGraph; }
|
|
4575
5239
|
});
|
|
4576
5240
|
Object.defineProperty(exports, "createGaussianSplattingCompiler", {
|
|
4577
5241
|
enumerable: true,
|
|
4578
|
-
get: function () { return
|
|
5242
|
+
get: function () { return chunkCESMPUEZ_cjs.createGaussianSplattingCompiler; }
|
|
4579
5243
|
});
|
|
4580
5244
|
Object.defineProperty(exports, "createGaussianTrainCompiler", {
|
|
4581
5245
|
enumerable: true,
|
|
4582
|
-
get: function () { return
|
|
5246
|
+
get: function () { return chunkCESMPUEZ_cjs.createGaussianTrainCompiler; }
|
|
4583
5247
|
});
|
|
4584
5248
|
Object.defineProperty(exports, "createOmnigentAgentYamlCompiler", {
|
|
4585
5249
|
enumerable: true,
|
|
4586
|
-
get: function () { return
|
|
5250
|
+
get: function () { return chunkCESMPUEZ_cjs.createOmnigentAgentYamlCompiler; }
|
|
4587
5251
|
});
|
|
4588
5252
|
Object.defineProperty(exports, "createThreeDTilesCompiler", {
|
|
4589
5253
|
enumerable: true,
|
|
4590
|
-
get: function () { return
|
|
5254
|
+
get: function () { return chunkCESMPUEZ_cjs.createThreeDTilesCompiler; }
|
|
4591
5255
|
});
|
|
4592
5256
|
Object.defineProperty(exports, "detectMultiUserSharedSort", {
|
|
4593
5257
|
enumerable: true,
|
|
4594
|
-
get: function () { return
|
|
5258
|
+
get: function () { return chunkCESMPUEZ_cjs.detectMultiUserSharedSort; }
|
|
4595
5259
|
});
|
|
4596
5260
|
Object.defineProperty(exports, "ensureDialectsBooted", {
|
|
4597
5261
|
enumerable: true,
|
|
4598
|
-
get: function () { return
|
|
5262
|
+
get: function () { return chunkCESMPUEZ_cjs.ensureDialectsBooted; }
|
|
4599
5263
|
});
|
|
4600
5264
|
Object.defineProperty(exports, "generateHoloScriptGbnf", {
|
|
4601
5265
|
enumerable: true,
|
|
4602
|
-
get: function () { return
|
|
5266
|
+
get: function () { return chunkCESMPUEZ_cjs.generateHoloScriptGbnf; }
|
|
4603
5267
|
});
|
|
4604
5268
|
Object.defineProperty(exports, "isHoloScriptGrammarPreset", {
|
|
4605
5269
|
enumerable: true,
|
|
4606
|
-
get: function () { return
|
|
5270
|
+
get: function () { return chunkCESMPUEZ_cjs.isHoloScriptGrammarPreset; }
|
|
4607
5271
|
});
|
|
4608
5272
|
Object.defineProperty(exports, "pcgGraphToUnrealXml", {
|
|
4609
5273
|
enumerable: true,
|
|
4610
|
-
get: function () { return
|
|
5274
|
+
get: function () { return chunkCESMPUEZ_cjs.pcgGraphToUnrealXml; }
|
|
4611
5275
|
});
|
|
4612
5276
|
Object.defineProperty(exports, "quickSafetyCheck", {
|
|
4613
5277
|
enumerable: true,
|
|
4614
|
-
get: function () { return
|
|
5278
|
+
get: function () { return chunkCESMPUEZ_cjs.quickSafetyCheck; }
|
|
4615
5279
|
});
|
|
4616
5280
|
Object.defineProperty(exports, "registerBuiltinDialects", {
|
|
4617
5281
|
enumerable: true,
|
|
4618
|
-
get: function () { return
|
|
5282
|
+
get: function () { return chunkCESMPUEZ_cjs.registerBuiltinDialects; }
|
|
4619
5283
|
});
|
|
4620
5284
|
Object.defineProperty(exports, "runSafetyPass", {
|
|
4621
5285
|
enumerable: true,
|
|
4622
|
-
get: function () { return
|
|
5286
|
+
get: function () { return chunkCESMPUEZ_cjs.runSafetyPass; }
|
|
4623
5287
|
});
|
|
4624
5288
|
Object.defineProperty(exports, "selectModality", {
|
|
4625
5289
|
enumerable: true,
|
|
4626
|
-
get: function () { return
|
|
5290
|
+
get: function () { return chunkCESMPUEZ_cjs.selectModality; }
|
|
4627
5291
|
});
|
|
4628
5292
|
Object.defineProperty(exports, "selectModalityForAll", {
|
|
4629
5293
|
enumerable: true,
|
|
4630
|
-
get: function () { return
|
|
5294
|
+
get: function () { return chunkCESMPUEZ_cjs.selectModalityForAll; }
|
|
4631
5295
|
});
|
|
4632
5296
|
Object.defineProperty(exports, "spatialPartition", {
|
|
4633
5297
|
enumerable: true,
|
|
4634
|
-
get: function () { return
|
|
5298
|
+
get: function () { return chunkCESMPUEZ_cjs.spatialPartition; }
|
|
4635
5299
|
});
|
|
4636
5300
|
Object.defineProperty(exports, "streamWorldTiles", {
|
|
4637
5301
|
enumerable: true,
|
|
4638
|
-
get: function () { return
|
|
5302
|
+
get: function () { return chunkCESMPUEZ_cjs.streamWorldTiles; }
|
|
4639
5303
|
});
|
|
4640
5304
|
Object.defineProperty(exports, "generateHullGeometry", {
|
|
4641
5305
|
enumerable: true,
|
|
@@ -4651,23 +5315,23 @@ Object.defineProperty(exports, "generateSplineGeometry", {
|
|
|
4651
5315
|
});
|
|
4652
5316
|
Object.defineProperty(exports, "SceneIRCompiler", {
|
|
4653
5317
|
enumerable: true,
|
|
4654
|
-
get: function () { return
|
|
5318
|
+
get: function () { return chunk4CRMVEON_cjs.SceneIRCompiler; }
|
|
4655
5319
|
});
|
|
4656
5320
|
Object.defineProperty(exports, "DaimonSeedCompiler", {
|
|
4657
5321
|
enumerable: true,
|
|
4658
|
-
get: function () { return
|
|
5322
|
+
get: function () { return chunkOOP4S3GU_cjs.DaimonSeedCompiler; }
|
|
4659
5323
|
});
|
|
4660
5324
|
Object.defineProperty(exports, "computeExportFidelity", {
|
|
4661
5325
|
enumerable: true,
|
|
4662
|
-
get: function () { return
|
|
5326
|
+
get: function () { return chunkOOP4S3GU_cjs.computeExportFidelity; }
|
|
4663
5327
|
});
|
|
4664
5328
|
Object.defineProperty(exports, "createDaimonSeedCompiler", {
|
|
4665
5329
|
enumerable: true,
|
|
4666
|
-
get: function () { return
|
|
5330
|
+
get: function () { return chunkOOP4S3GU_cjs.createDaimonSeedCompiler; }
|
|
4667
5331
|
});
|
|
4668
5332
|
Object.defineProperty(exports, "runHysteresisExp2", {
|
|
4669
5333
|
enumerable: true,
|
|
4670
|
-
get: function () { return
|
|
5334
|
+
get: function () { return chunkOOP4S3GU_cjs.runHysteresisExp2; }
|
|
4671
5335
|
});
|
|
4672
5336
|
Object.defineProperty(exports, "COCOExporter", {
|
|
4673
5337
|
enumerable: true,
|
|
@@ -4683,91 +5347,91 @@ Object.defineProperty(exports, "SemanticSceneGraph", {
|
|
|
4683
5347
|
});
|
|
4684
5348
|
Object.defineProperty(exports, "AgentInferenceCompiler", {
|
|
4685
5349
|
enumerable: true,
|
|
4686
|
-
get: function () { return
|
|
5350
|
+
get: function () { return chunkYMI3ED3B_cjs.AgentInferenceCompiler; }
|
|
4687
5351
|
});
|
|
4688
5352
|
Object.defineProperty(exports, "AgentInferenceExportTarget", {
|
|
4689
5353
|
enumerable: true,
|
|
4690
|
-
get: function () { return
|
|
5354
|
+
get: function () { return chunkYMI3ED3B_cjs.AgentInferenceExportTarget_default; }
|
|
4691
5355
|
});
|
|
4692
5356
|
Object.defineProperty(exports, "createAgentInferenceCompiler", {
|
|
4693
5357
|
enumerable: true,
|
|
4694
|
-
get: function () { return
|
|
5358
|
+
get: function () { return chunkYMI3ED3B_cjs.createAgentInferenceCompiler; }
|
|
4695
5359
|
});
|
|
4696
5360
|
Object.defineProperty(exports, "createPythonAgentInferenceCompiler", {
|
|
4697
5361
|
enumerable: true,
|
|
4698
|
-
get: function () { return
|
|
5362
|
+
get: function () { return chunkYMI3ED3B_cjs.createPythonAgentInferenceCompiler; }
|
|
4699
5363
|
});
|
|
4700
5364
|
Object.defineProperty(exports, "USDPhysicsCompiler", {
|
|
4701
5365
|
enumerable: true,
|
|
4702
|
-
get: function () { return
|
|
5366
|
+
get: function () { return chunk5B2AJKA5_cjs.USDPhysicsCompiler; }
|
|
4703
5367
|
});
|
|
4704
5368
|
Object.defineProperty(exports, "SDFCompiler", {
|
|
4705
5369
|
enumerable: true,
|
|
4706
|
-
get: function () { return
|
|
5370
|
+
get: function () { return chunkKLM6QD6D_cjs.SDFCompiler; }
|
|
4707
5371
|
});
|
|
4708
5372
|
Object.defineProperty(exports, "StateCompiler", {
|
|
4709
5373
|
enumerable: true,
|
|
4710
|
-
get: function () { return
|
|
5374
|
+
get: function () { return chunkSKVBUGMC_cjs.StateCompiler; }
|
|
4711
5375
|
});
|
|
4712
5376
|
Object.defineProperty(exports, "TraitCompositionCompiler", {
|
|
4713
5377
|
enumerable: true,
|
|
4714
|
-
get: function () { return
|
|
5378
|
+
get: function () { return chunkVZI7S7P6_cjs.TraitCompositionCompiler; }
|
|
4715
5379
|
});
|
|
4716
5380
|
Object.defineProperty(exports, "IncrementalCompiler", {
|
|
4717
5381
|
enumerable: true,
|
|
4718
|
-
get: function () { return
|
|
5382
|
+
get: function () { return chunkPZ46WRHX_cjs.IncrementalCompiler; }
|
|
4719
5383
|
});
|
|
4720
5384
|
Object.defineProperty(exports, "createIncrementalCompiler", {
|
|
4721
5385
|
enumerable: true,
|
|
4722
|
-
get: function () { return
|
|
5386
|
+
get: function () { return chunkPZ46WRHX_cjs.createIncrementalCompiler; }
|
|
4723
5387
|
});
|
|
4724
5388
|
Object.defineProperty(exports, "AndroidCompiler", {
|
|
4725
5389
|
enumerable: true,
|
|
4726
|
-
get: function () { return
|
|
5390
|
+
get: function () { return chunkXZC75AJ4_cjs.AndroidCompiler; }
|
|
4727
5391
|
});
|
|
4728
5392
|
Object.defineProperty(exports, "AndroidXRCompiler", {
|
|
4729
5393
|
enumerable: true,
|
|
4730
|
-
get: function () { return
|
|
5394
|
+
get: function () { return chunkREN3LHO6_cjs.AndroidXRCompiler; }
|
|
4731
5395
|
});
|
|
4732
5396
|
Object.defineProperty(exports, "IOSCompiler", {
|
|
4733
5397
|
enumerable: true,
|
|
4734
|
-
get: function () { return
|
|
5398
|
+
get: function () { return chunkGYJLP4BO_cjs.IOSCompiler; }
|
|
4735
5399
|
});
|
|
4736
5400
|
Object.defineProperty(exports, "VisionOSCompiler", {
|
|
4737
5401
|
enumerable: true,
|
|
4738
|
-
get: function () { return
|
|
5402
|
+
get: function () { return chunkFOM36K5I_cjs.VisionOSCompiler; }
|
|
4739
5403
|
});
|
|
4740
5404
|
Object.defineProperty(exports, "WASMCompiler", {
|
|
4741
5405
|
enumerable: true,
|
|
4742
|
-
get: function () { return
|
|
5406
|
+
get: function () { return chunkSNMQUWIO_cjs.WASMCompiler; }
|
|
4743
5407
|
});
|
|
4744
5408
|
Object.defineProperty(exports, "WebGPUCompiler", {
|
|
4745
5409
|
enumerable: true,
|
|
4746
|
-
get: function () { return
|
|
5410
|
+
get: function () { return chunkERYKKPHW_cjs.WebGPUCompiler; }
|
|
4747
5411
|
});
|
|
4748
5412
|
Object.defineProperty(exports, "DTDLCompiler", {
|
|
4749
5413
|
enumerable: true,
|
|
4750
|
-
get: function () { return
|
|
5414
|
+
get: function () { return chunkOSKGCXAQ_cjs.DTDLCompiler; }
|
|
4751
5415
|
});
|
|
4752
5416
|
Object.defineProperty(exports, "URDFCompiler", {
|
|
4753
5417
|
enumerable: true,
|
|
4754
|
-
get: function () { return
|
|
5418
|
+
get: function () { return chunkB6JHTTMR_cjs.URDFCompiler; }
|
|
4755
5419
|
});
|
|
4756
5420
|
Object.defineProperty(exports, "createURDFCompiler", {
|
|
4757
5421
|
enumerable: true,
|
|
4758
|
-
get: function () { return
|
|
5422
|
+
get: function () { return chunkB6JHTTMR_cjs.createURDFCompiler; }
|
|
4759
5423
|
});
|
|
4760
5424
|
Object.defineProperty(exports, "OpenXRCompiler", {
|
|
4761
5425
|
enumerable: true,
|
|
4762
|
-
get: function () { return
|
|
5426
|
+
get: function () { return chunkVTFLKSJL_cjs.OpenXRCompiler; }
|
|
4763
5427
|
});
|
|
4764
5428
|
Object.defineProperty(exports, "VRChatCompiler", {
|
|
4765
5429
|
enumerable: true,
|
|
4766
|
-
get: function () { return
|
|
5430
|
+
get: function () { return chunkVA7THINF_cjs.VRChatCompiler; }
|
|
4767
5431
|
});
|
|
4768
5432
|
Object.defineProperty(exports, "UnityCompiler", {
|
|
4769
5433
|
enumerable: true,
|
|
4770
|
-
get: function () { return
|
|
5434
|
+
get: function () { return chunkLQNL3IYV_cjs.UnityCompiler; }
|
|
4771
5435
|
});
|
|
4772
5436
|
Object.defineProperty(exports, "PlatformConditionalCompilerMixin", {
|
|
4773
5437
|
enumerable: true,
|
|
@@ -4791,7 +5455,7 @@ Object.defineProperty(exports, "normalizePlatformName", {
|
|
|
4791
5455
|
});
|
|
4792
5456
|
Object.defineProperty(exports, "GodotCompiler", {
|
|
4793
5457
|
enumerable: true,
|
|
4794
|
-
get: function () { return
|
|
5458
|
+
get: function () { return chunkHCONR4J6_cjs.GodotCompiler; }
|
|
4795
5459
|
});
|
|
4796
5460
|
Object.defineProperty(exports, "SCIENTIFIC_COLOR_MAPS", {
|
|
4797
5461
|
enumerable: true,
|
|
@@ -4827,23 +5491,23 @@ Object.defineProperty(exports, "srgbToHex", {
|
|
|
4827
5491
|
});
|
|
4828
5492
|
Object.defineProperty(exports, "CompilerBase", {
|
|
4829
5493
|
enumerable: true,
|
|
4830
|
-
get: function () { return
|
|
5494
|
+
get: function () { return chunkSE2Y5BSL_cjs.CompilerBase; }
|
|
4831
5495
|
});
|
|
4832
5496
|
Object.defineProperty(exports, "CompilerDocumentationGenerator", {
|
|
4833
5497
|
enumerable: true,
|
|
4834
|
-
get: function () { return
|
|
5498
|
+
get: function () { return chunkSE2Y5BSL_cjs.CompilerDocumentationGenerator; }
|
|
4835
5499
|
});
|
|
4836
5500
|
Object.defineProperty(exports, "UnauthorizedCompilerAccessError", {
|
|
4837
5501
|
enumerable: true,
|
|
4838
|
-
get: function () { return
|
|
5502
|
+
get: function () { return chunkSE2Y5BSL_cjs.UnauthorizedCompilerAccessError; }
|
|
4839
5503
|
});
|
|
4840
5504
|
Object.defineProperty(exports, "createTestCompilerToken", {
|
|
4841
5505
|
enumerable: true,
|
|
4842
|
-
get: function () { return
|
|
5506
|
+
get: function () { return chunkSE2Y5BSL_cjs.createTestCompilerToken; }
|
|
4843
5507
|
});
|
|
4844
5508
|
Object.defineProperty(exports, "isCapabilityTokenCredential", {
|
|
4845
5509
|
enumerable: true,
|
|
4846
|
-
get: function () { return
|
|
5510
|
+
get: function () { return chunkSE2Y5BSL_cjs.isCapabilityTokenCredential; }
|
|
4847
5511
|
});
|
|
4848
5512
|
exports.AgentTrustLedger = AgentTrustLedger;
|
|
4849
5513
|
exports.AlphaTracker = AlphaTracker;
|