@holoscript/core 6.0.3 → 6.0.4

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.
Files changed (229) hide show
  1. package/README.md +38 -38
  2. package/dist/GLTFPipeline-DEN36VNK.js +12 -0
  3. package/dist/GLTFPipeline-YPCAK236.cjs +33 -0
  4. package/dist/{HoloScriptPlusParser-BZR5DELQ.js → HoloScriptPlusParser-BN6KVRCM.js} +5 -5
  5. package/dist/{HoloScriptPlusParser-SBMYDNXO.cjs → HoloScriptPlusParser-NC5FE6AL.cjs} +16 -16
  6. package/dist/{USDZExporter-YA55ZS35.js → USDZExporter-NTMBNTDB.js} +3 -3
  7. package/dist/{USDZExporter-MHEHXZB4.cjs → USDZExporter-UWGWNMMD.cjs} +3 -3
  8. package/dist/{chunk-32TWR3HE.js → chunk-2CWOLHTE.js} +3 -4
  9. package/dist/{chunk-2UX5LRAP.cjs → chunk-33LSUQDD.cjs} +33 -31
  10. package/dist/{chunk-LBPEZQAF.js → chunk-3FJCK5XA.js} +7 -7
  11. package/dist/{chunk-EGIZHYJP.cjs → chunk-3SAK5KFL.cjs} +2 -4
  12. package/dist/{chunk-PJMOXFPR.cjs → chunk-4XSNJCLC.cjs} +25 -27
  13. package/dist/{chunk-HKCVM6OK.cjs → chunk-5BGSECRJ.cjs} +21 -21
  14. package/dist/{chunk-EMO7HAKJ.cjs → chunk-5O6TQC6M.cjs} +26 -30
  15. package/dist/{chunk-XSUZMPVQ.cjs → chunk-5OEOHAAW.cjs} +26 -26
  16. package/dist/{chunk-EJA7G2C4.cjs → chunk-5WUNN6ZN.cjs} +2 -2
  17. package/dist/{chunk-CQDOF3G7.cjs → chunk-6TZPZCOJ.cjs} +18 -18
  18. package/dist/{chunk-NRUB55IT.cjs → chunk-6UEHYZ7V.cjs} +18 -16
  19. package/dist/{chunk-V42NTCFH.js → chunk-6XSERL6L.js} +4230 -2197
  20. package/dist/{chunk-X4YVN7H3.cjs → chunk-72EQECGT.cjs} +37 -17
  21. package/dist/{chunk-4KJ2R7VP.cjs → chunk-7AGYRWKW.cjs} +19 -19
  22. package/dist/{chunk-UQW6SLM5.js → chunk-A7PIMZGU.js} +110 -19
  23. package/dist/{chunk-RT7LJRSF.cjs → chunk-ATSKSYVE.cjs} +1013 -6708
  24. package/dist/{chunk-WN3YF33G.cjs → chunk-B5TCIAPQ.cjs} +9 -10
  25. package/dist/{chunk-AIUXRS74.cjs → chunk-BF2235SI.cjs} +4275 -2242
  26. package/dist/{chunk-DIEDKX5B.cjs → chunk-BND3ST2K.cjs} +18 -16
  27. package/dist/{chunk-EPWRXL6S.js → chunk-BU7VWW2K.js} +29 -29
  28. package/dist/{chunk-6OQBLABR.js → chunk-BWFJEM5A.js} +368 -189
  29. package/dist/{chunk-ARNKA274.cjs → chunk-CAUCGUEA.cjs} +6 -6
  30. package/dist/{chunk-YCMQQQ5U.cjs → chunk-CBJSLA2E.cjs} +398 -219
  31. package/dist/{chunk-BU5ZAFMC.js → chunk-CDPGV4DN.js} +6 -7
  32. package/dist/{chunk-CO2VM2DK.js → chunk-CS2EMTGF.js} +10 -9
  33. package/dist/{chunk-AW7WAELW.js → chunk-DMG7C4H2.js} +4 -4
  34. package/dist/{chunk-XSF76QRU.js → chunk-DXJQDCFL.js} +3 -3
  35. package/dist/{chunk-4FCZDTD5.js → chunk-E3FWRT3Z.js} +7 -9
  36. package/dist/{chunk-KYM4XRFG.js → chunk-E3UALNFA.js} +4 -4
  37. package/dist/{chunk-GC3YU46J.js → chunk-EONILVMF.js} +2 -2
  38. package/dist/{chunk-VJVCD5T5.cjs → chunk-EQV4R3EV.cjs} +22 -22
  39. package/dist/{chunk-FEFHPUEM.cjs → chunk-F3HH56EB.cjs} +74 -658
  40. package/dist/{chunk-WYH4GVZ5.js → chunk-F4IULT7N.js} +2 -2
  41. package/dist/{chunk-XDXZM3ZP.cjs → chunk-FFKU7BTK.cjs} +19 -19
  42. package/dist/{chunk-NKRKT6V2.js → chunk-FHQVYCH2.js} +11 -10
  43. package/dist/{chunk-7H5UNJZD.cjs → chunk-FSF7EQVA.cjs} +11 -10
  44. package/dist/{chunk-KUJRR4FJ.js → chunk-G4VZTCIB.js} +9 -7
  45. package/dist/{chunk-A6GO3DPZ.cjs → chunk-G7CT3EMP.cjs} +4 -4
  46. package/dist/{chunk-EUFLX2PI.js → chunk-GGHSW2NN.js} +989 -6611
  47. package/dist/chunk-GVUR45UF.cjs +777 -0
  48. package/dist/{chunk-ODGMVILH.js → chunk-H5Z7NASB.js} +3 -3
  49. package/dist/{chunk-7KPI4EKH.cjs → chunk-HE7ULERA.cjs} +45 -49
  50. package/dist/{chunk-26TLYBFD.js → chunk-HPS76H7Q.js} +3 -3
  51. package/dist/{chunk-RE3OKSYF.cjs → chunk-HQUEA5R6.cjs} +6 -6
  52. package/dist/{chunk-ZGTGVSTZ.js → chunk-HYNTS5CP.js} +2 -2
  53. package/dist/{chunk-PBA6NXCT.cjs → chunk-IBDG74G2.cjs} +6 -3
  54. package/dist/chunk-IFNQFCTM.js +3098 -0
  55. package/dist/{chunk-ZL6VJ6SN.js → chunk-IWI6J7FX.js} +5 -5
  56. package/dist/{chunk-3KEU5QYY.cjs → chunk-K3JDKWGI.cjs} +118 -23
  57. package/dist/{chunk-NLPSZT4C.js → chunk-K6EKD26I.js} +6 -6
  58. package/dist/chunk-KCQ5NDYC.cjs +3172 -0
  59. package/dist/{chunk-ELLQPFAF.js → chunk-KED34ILP.js} +11 -9
  60. package/dist/{chunk-BY3B7ZYV.cjs → chunk-KSGXLT74.cjs} +3 -3
  61. package/dist/{chunk-65RFOWZI.js → chunk-L4G4RLXX.js} +9 -7
  62. package/dist/{chunk-4SMUJFHL.js → chunk-LDP5OK6G.js} +6 -3
  63. package/dist/{chunk-VZNKJZTT.cjs → chunk-LGGRPKTV.cjs} +82 -96
  64. package/dist/{chunk-C2QHVHZF.js → chunk-LSW7P7ML.js} +23 -414
  65. package/dist/{chunk-HHS6FMOU.cjs → chunk-LXJ4667L.cjs} +83 -22
  66. package/dist/{chunk-H6WMMLQK.cjs → chunk-LZ266PCM.cjs} +20 -13
  67. package/dist/{chunk-V2ILLPHK.cjs → chunk-MD6KDHVE.cjs} +10 -10
  68. package/dist/{chunk-6WNCRE6F.js → chunk-MEASWI2Y.js} +5 -5
  69. package/dist/chunk-MPXBVFHQ.js +768 -0
  70. package/dist/{chunk-WUXIRGZP.cjs → chunk-NCUKG4SK.cjs} +304 -144
  71. package/dist/chunk-NDQNIJEH.js +1715 -0
  72. package/dist/{chunk-Y5MUAYTO.js → chunk-NOZZ46QU.js} +9 -8
  73. package/dist/{chunk-F5LVGHNT.js → chunk-OFKWH2IP.js} +3 -3
  74. package/dist/{chunk-SPDELRRV.cjs → chunk-PMGODDJA.cjs} +12 -12
  75. package/dist/{chunk-I3XGTIHM.cjs → chunk-Q4QX3AET.cjs} +2 -2
  76. package/dist/{chunk-Y7VK5TH3.cjs → chunk-Q5JT3YML.cjs} +10 -10
  77. package/dist/{chunk-TSWTWZ42.cjs → chunk-Q5SJOGHQ.cjs} +247 -205
  78. package/dist/{chunk-M6FU6S22.js → chunk-QGKNANZ3.js} +251 -91
  79. package/dist/{chunk-WFJIDI2N.cjs → chunk-QLEAOI3Q.cjs} +10 -10
  80. package/dist/{chunk-VK5AXKO3.js → chunk-R7MA7QWV.js} +70 -84
  81. package/dist/{chunk-W76ETJTI.js → chunk-RVYPEYPX.js} +6 -6
  82. package/dist/{chunk-MWEFR6YQ.js → chunk-S2N5TNMA.js} +7 -9
  83. package/dist/{chunk-NCUHGRTZ.js → chunk-S565K7NK.js} +7 -7
  84. package/dist/{chunk-AC4BSHFV.js → chunk-SDAMZIRE.js} +5 -5
  85. package/dist/{chunk-HBZYCASG.js → chunk-T36DDXSF.js} +75 -33
  86. package/dist/{chunk-BO2OKHIY.js → chunk-T4NKMBDL.js} +30 -611
  87. package/dist/{chunk-7X2IEJIE.cjs → chunk-T7LEXZUZ.cjs} +29 -29
  88. package/dist/{chunk-HUFNKFA6.js → chunk-TEWCN33Y.js} +8 -12
  89. package/dist/{chunk-L3Z2HIWJ.cjs → chunk-TQSZUOW5.cjs} +2 -2
  90. package/dist/chunk-TSH3MSQU.cjs +129 -0
  91. package/dist/{chunk-PLMYCCA4.js → chunk-UERJ3YJV.js} +6 -6
  92. package/dist/{chunk-7N3JIJMT.js → chunk-UPJBDCVF.js} +6 -6
  93. package/dist/{chunk-CMYAWUX3.js → chunk-V3NN3HPP.js} +12 -5
  94. package/dist/{chunk-SUCBB66F.js → chunk-WB4Z63GG.js} +3 -3
  95. package/dist/{chunk-PPULB4GG.cjs → chunk-WDW67DZB.cjs} +68 -68
  96. package/dist/chunk-WGMEAYBG.js +126 -0
  97. package/dist/{chunk-VSXOIUCF.cjs → chunk-X4ZF6CNE.cjs} +7 -7
  98. package/dist/{chunk-HF4OFY25.cjs → chunk-X6SEAXAX.cjs} +29 -445
  99. package/dist/{chunk-C7BNX4XJ.js → chunk-XCWFGZAA.js} +6 -6
  100. package/dist/{chunk-CNVM7J3M.js → chunk-XD6IYDUX.js} +34 -14
  101. package/dist/chunk-XG23EUQX.cjs +1717 -0
  102. package/dist/{chunk-DN7UFU63.cjs → chunk-XRKWN5PL.cjs} +12 -11
  103. package/dist/{chunk-XNMEH2BI.js → chunk-XUTX5CBW.js} +3 -3
  104. package/dist/{chunk-PQLGZKMC.cjs → chunk-XWPNTWDN.cjs} +26 -26
  105. package/dist/{chunk-NTMZSDXM.cjs → chunk-XXINBTZK.cjs} +43 -43
  106. package/dist/{chunk-74YCHHTE.js → chunk-YCXFCXDS.js} +8 -12
  107. package/dist/{chunk-KDB6BUMB.js → chunk-YQK5JNFK.js} +77 -18
  108. package/dist/{chunk-DH5G2JUA.cjs → chunk-Z34RLXRA.cjs} +44 -46
  109. package/dist/{chunk-XH7SE4HH.cjs → chunk-ZP4D3CSX.cjs} +19 -19
  110. package/dist/cli/holoscript-runner.cjs +33 -32
  111. package/dist/cli/holoscript-runner.js +13 -12
  112. package/dist/codebase/index.cjs +1 -1
  113. package/dist/codebase/index.d.ts +25 -0
  114. package/dist/codebase/index.js +1 -1
  115. package/dist/compiler/agent-inference.cjs +7 -8
  116. package/dist/compiler/agent-inference.js +3 -4
  117. package/dist/compiler/android-xr.cjs +7 -8
  118. package/dist/compiler/android-xr.js +5 -6
  119. package/dist/compiler/android.cjs +8 -9
  120. package/dist/compiler/android.js +6 -7
  121. package/dist/compiler/ar.cjs +6 -7
  122. package/dist/compiler/ar.js +4 -5
  123. package/dist/compiler/babylon.cjs +8 -9
  124. package/dist/compiler/babylon.js +7 -8
  125. package/dist/compiler/coco.cjs +1 -1
  126. package/dist/compiler/coco.js +1 -1
  127. package/dist/compiler/domain-block-utils.cjs +158 -151
  128. package/dist/compiler/domain-block-utils.js +4 -5
  129. package/dist/compiler/dtdl.cjs +7 -8
  130. package/dist/compiler/dtdl.js +4 -5
  131. package/dist/compiler/gltf-pipeline.cjs +9 -9
  132. package/dist/compiler/gltf-pipeline.js +2 -2
  133. package/dist/compiler/godot.cjs +6 -7
  134. package/dist/compiler/godot.js +5 -6
  135. package/dist/compiler/incremental.cjs +7 -8
  136. package/dist/compiler/incremental.js +2 -3
  137. package/dist/compiler/index.cjs +1934 -878
  138. package/dist/compiler/index.js +1904 -842
  139. package/dist/compiler/ios.cjs +8 -9
  140. package/dist/compiler/ios.js +6 -7
  141. package/dist/compiler/multi-layer.cjs +10 -17
  142. package/dist/compiler/multi-layer.js +9 -10
  143. package/dist/compiler/nodetoy.cjs +1 -1
  144. package/dist/compiler/nodetoy.js +1 -1
  145. package/dist/compiler/openxr.cjs +6 -7
  146. package/dist/compiler/openxr.js +5 -6
  147. package/dist/compiler/playcanvas.cjs +7 -8
  148. package/dist/compiler/playcanvas.js +6 -7
  149. package/dist/compiler/r3f.cjs +13 -14
  150. package/dist/compiler/r3f.js +8 -9
  151. package/dist/compiler/remotion.cjs +1 -1
  152. package/dist/compiler/remotion.js +1 -1
  153. package/dist/compiler/reproducibility.cjs +1 -1
  154. package/dist/compiler/reproducibility.js +1 -1
  155. package/dist/compiler/sdf.cjs +7 -8
  156. package/dist/compiler/sdf.js +5 -6
  157. package/dist/compiler/semantic-scene.cjs +7 -7
  158. package/dist/compiler/semantic-scene.js +2 -2
  159. package/dist/compiler/state.cjs +5 -6
  160. package/dist/compiler/state.js +3 -4
  161. package/dist/compiler/trait-composition.cjs +7 -8
  162. package/dist/compiler/trait-composition.js +3 -4
  163. package/dist/compiler/unity.cjs +6 -7
  164. package/dist/compiler/unity.js +5 -6
  165. package/dist/compiler/unreal.cjs +7 -8
  166. package/dist/compiler/unreal.js +5 -6
  167. package/dist/compiler/urdf.cjs +13 -14
  168. package/dist/compiler/urdf.js +5 -6
  169. package/dist/compiler/usd-physics.cjs +7 -8
  170. package/dist/compiler/usd-physics.js +4 -5
  171. package/dist/compiler/visionos.cjs +6 -7
  172. package/dist/compiler/visionos.js +5 -6
  173. package/dist/compiler/vrchat.cjs +7 -8
  174. package/dist/compiler/vrchat.js +5 -6
  175. package/dist/compiler/vrr.cjs +7 -8
  176. package/dist/compiler/vrr.js +5 -6
  177. package/dist/compiler/wasm.cjs +10 -11
  178. package/dist/compiler/wasm.js +5 -6
  179. package/dist/compiler/webgpu.cjs +6 -7
  180. package/dist/compiler/webgpu.js +5 -6
  181. package/dist/constants.d.ts +3 -0
  182. package/dist/debugger.cjs +7 -7
  183. package/dist/debugger.js +5 -5
  184. package/dist/entries/interop.cjs +1 -1
  185. package/dist/entries/interop.d.ts +9 -0
  186. package/dist/entries/interop.js +1 -1
  187. package/dist/entries/scripting.cjs +18 -17
  188. package/dist/entries/scripting.d.ts +7 -0
  189. package/dist/entries/scripting.js +8 -7
  190. package/dist/index.cjs +6773 -27555
  191. package/dist/index.d.ts +19 -0
  192. package/dist/index.js +5212 -26101
  193. package/dist/math/vec3.cjs +1 -1
  194. package/dist/math/vec3.js +1 -1
  195. package/dist/ml-dsa-PHCWUBPX.cjs +1178 -0
  196. package/dist/ml-dsa-WYLJHJO6.js +1178 -0
  197. package/dist/parser.cjs +11 -10
  198. package/dist/parser.js +8 -7
  199. package/dist/{playwright-BIZXMLD2.js → playwright-5OSAPTNH.js} +3 -3
  200. package/dist/{playwright-7DTEQCBD.cjs → playwright-RL6GY4F7.cjs} +1985 -1985
  201. package/dist/runtime.cjs +5 -5
  202. package/dist/runtime.js +4 -4
  203. package/dist/self-improvement/index.d.ts +0 -48
  204. package/dist/storage/index.cjs +1 -1
  205. package/dist/storage/index.d.ts +24 -0
  206. package/dist/storage/index.js +1 -1
  207. package/dist/tools/index.d.ts +12 -0
  208. package/dist/traits/index.cjs +925 -607
  209. package/dist/traits/index.js +137 -20
  210. package/dist/type-checker.cjs +4 -4
  211. package/dist/type-checker.js +2 -2
  212. package/package.json +56 -21
  213. package/LICENSE +0 -21
  214. package/dist/GLTFPipeline-3KLWWUQO.cjs +0 -34
  215. package/dist/GLTFPipeline-LYII2ZVQ.js +0 -13
  216. package/dist/chunk-CN4NOESF.cjs +0 -416
  217. package/dist/chunk-DXVCEFZB.js +0 -2027
  218. package/dist/chunk-ENV7K6XA.js +0 -282
  219. package/dist/chunk-H7XMORZI.js +0 -2731
  220. package/dist/chunk-HAN4V3PF.cjs +0 -2037
  221. package/dist/chunk-LER4WXW5.cjs +0 -286
  222. package/dist/chunk-QHVVVN47.cjs +0 -2033
  223. package/dist/chunk-QWKUKVRE.js +0 -2026
  224. package/dist/chunk-UITWA6DV.cjs +0 -2829
  225. package/dist/chunk-X67XRI2T.js +0 -410
  226. package/dist/post-quantum-JTTAAGO3.cjs +0 -6
  227. package/dist/post-quantum-RVPVDEPI.js +0 -4
  228. package/dist/wot/index.cjs +0 -29
  229. package/dist/wot/index.js +0 -4
@@ -1,488 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var chunkTSWTWZ42_cjs = require('./chunk-TSWTWZ42.cjs');
4
- var chunkHHS6FMOU_cjs = require('./chunk-HHS6FMOU.cjs');
5
- var chunkQHVVVN47_cjs = require('./chunk-QHVVVN47.cjs');
6
- var chunkEGIZHYJP_cjs = require('./chunk-EGIZHYJP.cjs');
7
-
8
- // src/compiler/Native2DCompiler.ts
9
- var Native2DCompiler_exports = {};
10
- chunkEGIZHYJP_cjs.__export(Native2DCompiler_exports, {
11
- Native2DCompiler: () => exports.Native2DCompiler
12
- });
13
- exports.Native2DCompiler = void 0;
14
- var init_Native2DCompiler = chunkEGIZHYJP_cjs.__esm({
15
- "src/compiler/Native2DCompiler.ts"() {
16
- chunkQHVVVN47_cjs.init_CompilerBase();
17
- exports.Native2DCompiler = class extends chunkQHVVVN47_cjs.CompilerBase {
18
- constructor() {
19
- super(...arguments);
20
- this.compilerName = "Native2DCompiler";
21
- // ============================================================================
22
- // REACT GENERATION
23
- // ============================================================================
24
- /** Collected during node traversal — used to generate imports and hooks */
25
- this._slotImports = /* @__PURE__ */ new Map();
26
- this._uiImports = /* @__PURE__ */ new Set();
27
- this._stateFields = /* @__PURE__ */ new Map();
28
- this._fetchCalls = [];
29
- this._options = {};
30
- }
31
- // @ts-expect-error During migration
32
- compile(composition, agentToken, outputPath, options) {
33
- this.validateCompilerAccess(agentToken, outputPath);
34
- const isReact = options?.format === "react";
35
- const elements = composition.ui?.elements || composition.objects || [];
36
- if (isReact) {
37
- const code = this.generateReactComponent(composition.name, elements, composition, options);
38
- if (options?.generateDocs) {
39
- return {
40
- output: code,
41
- documentation: this.generateDocumentation(composition, code, options.docsOptions)
42
- };
43
- }
44
- return code;
45
- } else {
46
- const code = this.generateHTMLPage(composition.name, elements, composition);
47
- if (options?.generateDocs) {
48
- return {
49
- output: code,
50
- documentation: this.generateDocumentation(composition, code, options.docsOptions)
51
- };
52
- }
53
- return code;
54
- }
55
- }
56
- generateReactComponent(name, objects, composition, options) {
57
- this._slotImports.clear();
58
- this._uiImports.clear();
59
- this._stateFields.clear();
60
- this._fetchCalls = [];
61
- this._options = options || {};
62
- const safeName = name.replace(/[^a-zA-Z0-9]/g, "");
63
- if (composition?.state?.properties) {
64
- for (const prop of composition.state.properties) {
65
- this._stateFields.set(prop.key, prop.value ?? null);
66
- }
67
- }
68
- const jsx = objects.map((obj) => this.generateReactNode(obj)).join("\n ");
69
- const imports = [];
70
- const reactImports = /* @__PURE__ */ new Set();
71
- if (this._stateFields.size > 0) reactImports.add("useState");
72
- if (this._fetchCalls.length > 0) reactImports.add("useEffect");
73
- imports.push(
74
- reactImports.size > 0 ? `import React, { ${[...reactImports].join(", ")} } from 'react';` : `import React from 'react';`
75
- );
76
- if (this._uiImports.size > 0) {
77
- imports.push(`import { ${[...this._uiImports].join(", ")} } from '@holoscript/ui';`);
78
- }
79
- for (const [, slot] of this._slotImports) {
80
- imports.push(`import { ${slot.component} } from '${slot.importPath}';`);
81
- }
82
- const stateHooks = [];
83
- for (const [key, value] of this._stateFields) {
84
- const capitalKey = key.charAt(0).toUpperCase() + key.slice(1);
85
- const initValue = JSON.stringify(value);
86
- stateHooks.push(` const [${key}, set${capitalKey}] = useState(${initValue === void 0 ? "null" : initValue});`);
87
- }
88
- const fetchEffects = [];
89
- for (const f of this._fetchCalls) {
90
- fetchEffects.push(` useEffect(() => {
91
- fetch(\`${f.endpoint}\`${f.method !== "GET" ? `, { method: '${f.method}' }` : ""})
92
- .then(r => r.json())
93
- .then(set${f.name.charAt(0).toUpperCase() + f.name.slice(1)})
94
- .catch(console.error);
95
- }, []);`);
96
- }
97
- return `${imports.join("\n")}
98
-
99
- // @generated by HoloScript Native2DCompiler \u2014 DO NOT EDIT
100
- export function ${safeName}Component() {
101
- ${stateHooks.join("\n")}
102
- ${fetchEffects.join("\n")}
103
-
104
- return (
105
- <div className="holoscript-2d-root w-full h-full">
106
- ${jsx}
107
- </div>
108
- );
109
- }
110
-
111
- export default ${safeName}Component;
112
- `;
113
- }
114
- generateReactNode(obj) {
115
- const traits = this.extractTraits(obj);
116
- if (traits.slot) {
117
- const slotName = traits.slot.name || obj.name || "Slot";
118
- const configuredSlot = this._options.slots?.[String(slotName)];
119
- const component = traits.slot.component || configuredSlot?.component || slotName;
120
- const importPath = traits.slot.import || configuredSlot?.importPath || `@/components/${component}`;
121
- this._slotImports.set(slotName, { component, importPath });
122
- const propsStr = traits.slot.props ? ` {...${JSON.stringify(traits.slot.props)}}` : "";
123
- return `<div data-holo-slot="${slotName}">
124
- <${component}${propsStr} />
125
- </div>`;
126
- }
127
- if (traits.fetch) {
128
- const name = traits.fetch.into || "data";
129
- const endpoint = traits.fetch.endpoint || "/api/data";
130
- const method = traits.fetch.method || "GET";
131
- this._fetchCalls.push({ name, endpoint, method });
132
- if (!this._stateFields.has(name)) {
133
- this._stateFields.set(name, null);
134
- }
135
- }
136
- let tag = traits.theme?.tag || traits.panel?.tag || (typeof obj.type === "string" ? obj.type.toLowerCase() : void 0) || "div";
137
- if ([
138
- "nav",
139
- "section",
140
- "main",
141
- "footer",
142
- "form",
143
- "style",
144
- "a",
145
- "header",
146
- "h1",
147
- "h2",
148
- "h3"
149
- ].includes(tag)) ; else if (tag === "container") {
150
- tag = "div";
151
- } else if (traits.link || tag === "link") {
152
- tag = "a";
153
- } else if (traits.button || tag === "button") {
154
- tag = "button";
155
- } else if (traits.image || tag === "image") {
156
- tag = "img";
157
- } else if (traits.input || tag === "input") {
158
- tag = "input";
159
- } else if (traits.text || tag === "text") {
160
- tag = this.mapTextVariantToTag(traits.text?.variant || "body");
161
- } else {
162
- tag = "div";
163
- }
164
- const styles = this.buildStyles(traits);
165
- const classes = this.buildClasses(traits);
166
- let props = ``;
167
- if (traits.theme?.className) {
168
- classes.push(traits.theme.className);
169
- }
170
- if (traits.theme?.id) {
171
- props += ` id="${traits.theme.id}"`;
172
- }
173
- const combinedStyles = { ...styles };
174
- if (traits.theme?.style) {
175
- traits.theme.style.split(";").forEach((rule) => {
176
- const [key, ...valueParts] = rule.split(":");
177
- const value = valueParts.join(":");
178
- if (key && value) {
179
- const camelKey = key.trim().replace(/-([a-z])/g, (g) => g[1].toUpperCase());
180
- combinedStyles[camelKey] = value.trim();
181
- }
182
- });
183
- }
184
- if (Object.keys(combinedStyles).length > 0) {
185
- props += ` style={${JSON.stringify(combinedStyles)}}`;
186
- }
187
- if (classes.length > 0) {
188
- props += ` className="${classes.join(" ")}"`;
189
- }
190
- if (traits.theme?.attributes) {
191
- try {
192
- const parsedAttrs = JSON.parse(traits.theme.attributes);
193
- for (const [key, value] of Object.entries(parsedAttrs)) {
194
- props += ` ${key}="${value}"`;
195
- }
196
- } catch (e) {
197
- }
198
- }
199
- if (traits.button?.onClick || traits.form?.onSubmit) {
200
- const action = traits.button?.onClick || traits.form?.onSubmit;
201
- if (action) {
202
- const cleanAction = action.replace(/["']/g, "'");
203
- if (cleanAction.includes("navigate")) {
204
- props += ` onClick={() => ${cleanAction}}`;
205
- } else if (cleanAction.includes("submit")) {
206
- props += ` onSubmit={${cleanAction}}`;
207
- } else if (cleanAction.includes("window.open")) {
208
- props += ` onClick={() => ${cleanAction}}`;
209
- } else {
210
- props += ` onClick={() => console.log('${cleanAction}')}`;
211
- }
212
- }
213
- }
214
- if (traits.image?.src) props += ` src="${traits.image.src}"`;
215
- if (traits.image?.alt) props += ` alt="${traits.image.alt}"`;
216
- if (traits.link?.href) props += ` href="${traits.link.href}"`;
217
- if (traits.input?.placeholder) props += ` placeholder="${traits.input.placeholder}"`;
218
- if (traits.input?.type) props += ` type="${traits.input.type}"`;
219
- if (traits.input?.required) props += ` required`;
220
- if (traits.button?.type) props += ` type="${traits.button.type}"`;
221
- const childrenMarkup = (obj.children || obj.objects || []).map((child) => this.generateReactNode(child)).join("\n");
222
- const content = traits.text?.content || traits.button?.content || traits.link?.content || traits.icon?.name;
223
- let safeContent = "";
224
- if (content) {
225
- safeContent = `{\`${content.replace(/`/g, "\\`").replace(/\$/g, "\\$")}\`}`;
226
- }
227
- if (tag === "style") {
228
- const escapedStyle = (content || "").replace(/`/g, "\\`").replace(/\$/g, "\\$");
229
- return `<style dangerouslySetInnerHTML={{ __html: \`${escapedStyle}\` }} />`;
230
- }
231
- if (tag === "img" || tag === "input") {
232
- return `<${tag}${props} />`;
233
- }
234
- return `<${tag}${props}>
235
- ${safeContent}
236
- ${childrenMarkup}
237
- </${tag}>`;
238
- }
239
- // ============================================================================
240
- // HTML GENERATION
241
- // ============================================================================
242
- generateHTMLPage(name, objects, composition) {
243
- const content = objects.map((obj) => this.generateHTMLNode(obj)).join("\n ");
244
- let bgColor = "#ffffff";
245
- let color = "#000000";
246
- if (composition.environment?.properties) {
247
- const themeProp = composition.environment.properties.find((p) => p.key === "theme");
248
- const bgProp = composition.environment.properties.find((p) => p.key === "backgroundColor");
249
- if (themeProp?.value === "dark" || composition.traits?.some((t) => t.name === "theme" && t.config?.dark)) {
250
- bgColor = bgProp?.value || "#050510";
251
- color = "#ffffff";
252
- }
253
- }
254
- return `<!DOCTYPE html>
255
- <html lang="en">
256
- <head>
257
- <meta charset="UTF-8">
258
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
259
- <title>${name}</title>
260
- <script src="https://cdn.tailwindcss.com"></script>
261
- <style>
262
- body { margin: 0; padding: 0; background-color: ${bgColor}; color: ${color}; font-family: system-ui, -apple-system, sans-serif; }
263
- /* Basic resets and custom trait animations to mirror React Framer variants */
264
- .glow-btn:hover { box-shadow: 0 0 15px rgba(255,255,255,0.5); }
265
- .lift-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
266
- .lift-card:hover { transform: translateY(-4px); box-shadow: 0 10px 20px rgba(0,0,0,0.2); }
267
- </style>
268
- </head>
269
- <body>
270
- <div id="holoscript-native-root">
271
- ${content}
272
- </div>
273
- <script>
274
- function navigate(path) { window.location.href = path; }
275
- function submitNewsletter(e) { e.preventDefault(); alert('Subscribed!'); }
276
- </script>
277
- </body>
278
- </html>`;
279
- }
280
- generateHTMLNode(obj) {
281
- const node = obj;
282
- const traits = this.extractTraits(obj);
283
- const nodeType = typeof node.type === "string" ? node.type.toLowerCase() : void 0;
284
- let tag = traits.theme?.tag || traits.panel?.tag || nodeType || "div";
285
- if ([
286
- "nav",
287
- "section",
288
- "main",
289
- "footer",
290
- "form",
291
- "style",
292
- "a",
293
- "header",
294
- "h1",
295
- "h2",
296
- "h3"
297
- ].includes(tag)) ; else if (tag === "container") {
298
- tag = "div";
299
- } else if (traits.link || tag === "link") {
300
- tag = "a";
301
- } else if (traits.button || tag === "button") {
302
- tag = "button";
303
- } else if (traits.image || tag === "image") {
304
- tag = "img";
305
- } else if (traits.input || tag === "input") {
306
- tag = "input";
307
- } else if (traits.text || tag === "text") {
308
- tag = this.mapTextVariantToTag(traits.text?.variant || "body");
309
- } else {
310
- tag = "div";
311
- }
312
- const styles = this.buildStyles(traits);
313
- const classes = this.buildClasses(traits);
314
- let props = ``;
315
- if (traits.theme?.className) {
316
- classes.push(traits.theme.className);
317
- }
318
- if (traits.theme?.id) {
319
- props += ` id="${traits.theme.id}"`;
320
- }
321
- if (Object.keys(styles).length > 0 || traits.theme?.style) {
322
- let styleStr = Object.entries(styles).map(([k, v]) => `${this.camelToKebab(k)}: ${v}`).join("; ");
323
- if (traits.theme?.style) {
324
- styleStr += (styleStr ? "; " : "") + traits.theme.style;
325
- }
326
- props += ` style="${styleStr}"`;
327
- }
328
- if (classes.length > 0) {
329
- props += ` class="${classes.join(" ")}"`;
330
- }
331
- if (traits.theme?.attributes) {
332
- try {
333
- const parsedAttrs = JSON.parse(traits.theme.attributes);
334
- for (const [key, value] of Object.entries(parsedAttrs)) {
335
- props += ` ${key}="${value}"`;
336
- }
337
- } catch (e) {
338
- }
339
- }
340
- if (traits.button?.onClick) props += ` onclick="${traits.button.onClick}"`;
341
- if (traits.form?.onSubmit) props += ` onsubmit="${traits.form.onSubmit}"`;
342
- if (traits.image?.src) props += ` src="${traits.image.src}"`;
343
- if (traits.image?.alt) props += ` alt="${traits.image.alt}"`;
344
- if (traits.link?.href) props += ` href="${traits.link.href}"`;
345
- if (traits.input?.placeholder) props += ` placeholder="${traits.input.placeholder}"`;
346
- if (traits.input?.type) props += ` type="${traits.input.type}"`;
347
- if (traits.input?.required) props += ` required`;
348
- const children = node.children || node.objects || [];
349
- const childrenMarkup = children.map((child) => this.generateHTMLNode(child)).join("\n");
350
- const content = traits.text?.content || traits.button?.content || traits.link?.content || traits.icon?.name;
351
- if (tag === "img" || tag === "input") {
352
- return `<${tag}${props}>`;
353
- }
354
- return `<${tag}${props}>
355
- ${content ? content : ""}
356
- ${childrenMarkup}
357
- </${tag}>`;
358
- }
359
- // ============================================================================
360
- // UTILITIES
361
- // ============================================================================
362
- extractTraits(obj) {
363
- const map = {};
364
- const node = obj;
365
- if (!node.traits) return map;
366
- for (const t of node.traits) {
367
- map[t.name] = t.config || {};
368
- if (t.name === "tailwind" && typeof t.config === "string") {
369
- map[t.name] = { classes: t.config };
370
- }
371
- }
372
- return map;
373
- }
374
- mapTextVariantToTag(variant) {
375
- switch (variant) {
376
- case "h1":
377
- return "h1";
378
- case "h2":
379
- return "h2";
380
- case "h3":
381
- return "h3";
382
- case "subtitle":
383
- return "h4";
384
- case "caption":
385
- return "span";
386
- case "emoji":
387
- return "span";
388
- default:
389
- return "p";
390
- }
391
- }
392
- buildStyles(traits) {
393
- const styles = {};
394
- const layout = traits.layout;
395
- const theme = traits.theme;
396
- if (layout) {
397
- if (layout.flex) {
398
- styles.display = "flex";
399
- styles.flexDirection = layout.flex === "row" ? "row" : "column";
400
- }
401
- if (layout.grid) {
402
- styles.display = "grid";
403
- styles.gridTemplateColumns = `repeat(${layout.columns || 1}, minmax(0, 1fr))`;
404
- }
405
- if (layout.justify) styles.justifyContent = layout.justify;
406
- if (layout.align) styles.alignItems = layout.align;
407
- if (layout.gap) styles.gap = typeof layout.gap === "number" ? `${layout.gap}px` : layout.gap;
408
- if (layout.padding)
409
- styles.padding = typeof layout.padding === "number" ? `${layout.padding}px` : layout.padding;
410
- }
411
- if (theme) {
412
- if (theme.backgroundColor) styles.backgroundColor = theme.backgroundColor;
413
- if (theme.color) styles.color = theme.color;
414
- if (theme.padding)
415
- styles.padding = typeof theme.padding === "number" ? `${theme.padding}px` : theme.padding;
416
- if (theme.borderRadius)
417
- styles.borderRadius = typeof theme.borderRadius === "number" ? `${theme.borderRadius}px` : theme.borderRadius;
418
- if (theme.border) styles.border = theme.border;
419
- if (theme.borderTop) styles.borderTop = theme.borderTop;
420
- }
421
- if (traits.text) {
422
- if (traits.text.align) styles.textAlign = traits.text.align;
423
- if (traits.text.maxWidth)
424
- styles.maxWidth = typeof traits.text.maxWidth === "number" ? `${traits.text.maxWidth}px` : traits.text.maxWidth;
425
- if (traits.text.weight) styles.fontWeight = traits.text.weight;
426
- }
427
- return styles;
428
- }
429
- buildClasses(traits) {
430
- const classes = [];
431
- if (traits.text) {
432
- if (traits.text.variant === "h1") classes.push("text-5xl font-bold tracking-tight");
433
- if (traits.text.variant === "h2") classes.push("text-3xl font-bold");
434
- if (traits.text.variant === "h3") classes.push("text-xl font-semibold");
435
- if (traits.text.variant === "subtitle") classes.push("text-xl text-gray-400");
436
- if (traits.text.variant === "caption") classes.push("text-sm text-gray-500");
437
- if (traits.text.variant === "emoji") classes.push("text-2xl");
438
- }
439
- if (traits.button) {
440
- classes.push("px-4 py-2 rounded-lg font-medium transition-all");
441
- if (traits.button.variant === "primary")
442
- classes.push("bg-blue-600 hover:bg-blue-700 text-white");
443
- if (traits.button.variant === "outline")
444
- classes.push("border border-gray-600 hover:bg-gray-800 text-white");
445
- if (traits.button.variant === "ghost")
446
- classes.push("hover:bg-gray-800 text-gray-300 hover:text-white");
447
- if (traits.button.variant === "glow")
448
- classes.push("bg-indigo-600 text-white glow-btn hover:bg-indigo-500");
449
- if (traits.button.size === "lg") classes.push("px-6 py-3 text-lg");
450
- if (traits.button.size === "sm") classes.push("px-3 py-1 text-sm");
451
- }
452
- if (traits.card) {
453
- if (traits.card.shadow === "md") classes.push("shadow-md");
454
- if (traits.card.shadow === "lg") classes.push("shadow-lg");
455
- if (traits.card.hover === "glow") classes.push("lift-card");
456
- }
457
- if (traits.input) {
458
- classes.push(
459
- "px-4 py-2 rounded-lg border border-gray-700 bg-gray-900 text-white focus:ring-2 focus:ring-indigo-500 outline-none"
460
- );
461
- }
462
- if (traits.tailwind?.classes) {
463
- classes.push(traits.tailwind.classes);
464
- }
465
- return classes;
466
- }
467
- camelToKebab(str) {
468
- return str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
469
- }
470
- };
471
- }
472
- });
3
+ var chunkQ5SJOGHQ_cjs = require('./chunk-Q5SJOGHQ.cjs');
4
+ var chunkLXJ4667L_cjs = require('./chunk-LXJ4667L.cjs');
5
+ var chunkBF2235SI_cjs = require('./chunk-BF2235SI.cjs');
6
+ var chunk3SAK5KFL_cjs = require('./chunk-3SAK5KFL.cjs');
7
+ var platform = require('@holoscript/platform');
473
8
 
474
9
  // src/compiler/A2AAgentCardCompiler.ts
475
10
  var A2AAgentCardCompiler_exports = {};
476
- chunkEGIZHYJP_cjs.__export(A2AAgentCardCompiler_exports, {
11
+ chunk3SAK5KFL_cjs.__export(A2AAgentCardCompiler_exports, {
477
12
  A2AAgentCardCompiler: () => exports.A2AAgentCardCompiler,
478
13
  default: () => A2AAgentCardCompiler_default
479
14
  });
480
15
  exports.A2AAgentCardCompiler = void 0; var A2AAgentCardCompiler_default;
481
- var init_A2AAgentCardCompiler = chunkEGIZHYJP_cjs.__esm({
16
+ var init_A2AAgentCardCompiler = chunk3SAK5KFL_cjs.__esm({
482
17
  "src/compiler/A2AAgentCardCompiler.ts"() {
483
- chunkQHVVVN47_cjs.init_CompilerBase();
484
- chunkQHVVVN47_cjs.init_ANSNamespace();
485
- exports.A2AAgentCardCompiler = class extends chunkQHVVVN47_cjs.CompilerBase {
18
+ chunkBF2235SI_cjs.init_CompilerBase();
19
+ exports.A2AAgentCardCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
486
20
  constructor(options = {}) {
487
21
  super();
488
22
  this.compilerName = "A2AAgentCardCompiler";
@@ -507,7 +41,7 @@ var init_A2AAgentCardCompiler = chunkEGIZHYJP_cjs.__esm({
507
41
  };
508
42
  }
509
43
  getRequiredCapability() {
510
- return chunkQHVVVN47_cjs.ANSCapabilityPath.A2A_AGENT_CARD;
44
+ return platform.ANSCapabilityPath.A2A_AGENT_CARD;
511
45
  }
512
46
  /**
513
47
  * Compile a HoloComposition AST into an A2A Agent Card JSON string.
@@ -635,9 +169,7 @@ var init_A2AAgentCardCompiler = chunkEGIZHYJP_cjs.__esm({
635
169
  }
636
170
  }
637
171
  if (examples.length === 0) {
638
- examples.push(
639
- `Create a ${this.escapeStringValue(template.name, "JSON")} instance`
640
- );
172
+ examples.push(`Create a ${this.escapeStringValue(template.name, "JSON")} instance`);
641
173
  }
642
174
  return {
643
175
  id: this.sanitizeId(template.name),
@@ -665,9 +197,7 @@ var init_A2AAgentCardCompiler = chunkEGIZHYJP_cjs.__esm({
665
197
  }
666
198
  const examples = [];
667
199
  if (objTraitNames.includes("sensor")) {
668
- examples.push(
669
- `Read sensor data from ${this.escapeStringValue(obj.name, "JSON")}`
670
- );
200
+ examples.push(`Read sensor data from ${this.escapeStringValue(obj.name, "JSON")}`);
671
201
  }
672
202
  if (objTraitNames.includes("networked")) {
673
203
  examples.push(
@@ -945,9 +475,7 @@ var init_A2AAgentCardCompiler = chunkEGIZHYJP_cjs.__esm({
945
475
  */
946
476
  generateDescription(composition) {
947
477
  const parts = [];
948
- parts.push(
949
- `HoloScript agent "${this.escapeStringValue(composition.name, "JSON")}"`
950
- );
478
+ parts.push(`HoloScript agent "${this.escapeStringValue(composition.name, "JSON")}"`);
951
479
  const features = [];
952
480
  if (composition.templates?.length) {
953
481
  features.push(`${composition.templates.length} template(s)`);
@@ -1044,7 +572,7 @@ function validateNIRGraph(graph) {
1044
572
  return { valid: errors.length === 0, errors };
1045
573
  }
1046
574
  var NEURON_TRAIT_MAP, SYNAPSE_TRAIT_MAP, ENCODING_TRAIT_MAP, TOPOLOGY_TRAIT_MAP, NIR_TRAIT_MAP;
1047
- var init_NIRTraitMap = chunkEGIZHYJP_cjs.__esm({
575
+ var init_NIRTraitMap = chunk3SAK5KFL_cjs.__esm({
1048
576
  "src/compiler/NIRTraitMap.ts"() {
1049
577
  NEURON_TRAIT_MAP = {
1050
578
  lif_neuron: {
@@ -1558,17 +1086,16 @@ var init_NIRTraitMap = chunkEGIZHYJP_cjs.__esm({
1558
1086
 
1559
1087
  // src/compiler/NIRCompiler.ts
1560
1088
  var NIRCompiler_exports = {};
1561
- chunkEGIZHYJP_cjs.__export(NIRCompiler_exports, {
1089
+ chunk3SAK5KFL_cjs.__export(NIRCompiler_exports, {
1562
1090
  NIRCompiler: () => exports.NIRCompiler,
1563
1091
  default: () => NIRCompiler_default
1564
1092
  });
1565
1093
  exports.NIRCompiler = void 0; var NIRCompiler_default;
1566
- var init_NIRCompiler = chunkEGIZHYJP_cjs.__esm({
1094
+ var init_NIRCompiler = chunk3SAK5KFL_cjs.__esm({
1567
1095
  "src/compiler/NIRCompiler.ts"() {
1568
- chunkQHVVVN47_cjs.init_CompilerBase();
1569
- chunkQHVVVN47_cjs.init_ANSNamespace();
1096
+ chunkBF2235SI_cjs.init_CompilerBase();
1570
1097
  init_NIRTraitMap();
1571
- exports.NIRCompiler = class extends chunkQHVVVN47_cjs.CompilerBase {
1098
+ exports.NIRCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
1572
1099
  constructor(options = {}) {
1573
1100
  super();
1574
1101
  this.compilerName = "NIRCompiler";
@@ -1589,7 +1116,7 @@ var init_NIRCompiler = chunkEGIZHYJP_cjs.__esm({
1589
1116
  };
1590
1117
  }
1591
1118
  getRequiredCapability() {
1592
- return chunkQHVVVN47_cjs.ANSCapabilityPath.NIR;
1119
+ return platform.ANSCapabilityPath.NIR;
1593
1120
  }
1594
1121
  /**
1595
1122
  * Compile a HoloScript composition to NIR graph JSON.
@@ -2172,7 +1699,11 @@ function parsePipelineContent(name, content, errors) {
2172
1699
  for (const block of extractBlock(content, "filter")) {
2173
1700
  const p = parseProperties(block.content);
2174
1701
  if (!p.where) {
2175
- errors.push({ message: `Filter "${block.name}" missing 'where' clause`, line: block.startLine, block: block.name });
1702
+ errors.push({
1703
+ message: `Filter "${block.name}" missing 'where' clause`,
1704
+ line: block.startLine,
1705
+ block: block.name
1706
+ });
2176
1707
  }
2177
1708
  filters.push({
2178
1709
  kind: "filter",
@@ -2596,8 +2127,8 @@ function hasCapability(target, cap) {
2596
2127
  }
2597
2128
 
2598
2129
  // src/compiler/USDZPipeline.ts
2599
- chunkHHS6FMOU_cjs.init_DomainBlockCompilerMixin();
2600
- chunkTSWTWZ42_cjs.init_R3FCompiler();
2130
+ chunkLXJ4667L_cjs.init_DomainBlockCompilerMixin();
2131
+ chunkQ5SJOGHQ_cjs.init_R3FCompiler();
2601
2132
  var _USDZPipeline = class _USDZPipeline {
2602
2133
  constructor(options = {}) {
2603
2134
  this.materials = /* @__PURE__ */ new Map();
@@ -2816,8 +2347,8 @@ ${domainBlocksOutput}` : materials,
2816
2347
  const matName = `Material_${this.sanitizeName(obj.name)}`;
2817
2348
  const mat = { name: matName };
2818
2349
  const presetName = typeof material === "string" ? material : typeof materialPreset === "string" ? materialPreset : void 0;
2819
- if (presetName && chunkTSWTWZ42_cjs.MATERIAL_PRESETS[presetName]) {
2820
- const preset = chunkTSWTWZ42_cjs.MATERIAL_PRESETS[presetName];
2350
+ if (presetName && chunkQ5SJOGHQ_cjs.MATERIAL_PRESETS[presetName]) {
2351
+ const preset = chunkQ5SJOGHQ_cjs.MATERIAL_PRESETS[presetName];
2821
2352
  if (preset.color) mat.baseColor = this.hexToRGB(preset.color);
2822
2353
  if (preset.metalness !== void 0) mat.metallic = preset.metalness;
2823
2354
  if (preset.roughness !== void 0) mat.roughness = preset.roughness;
@@ -3302,59 +2833,59 @@ ${domainBlocksOutput}` : materials,
3302
2833
  generateDomainBlocks(composition) {
3303
2834
  const domainBlocks = composition.domainBlocks ?? [];
3304
2835
  if (domainBlocks.length === 0) return "";
3305
- const compiled = chunkHHS6FMOU_cjs.compileDomainBlocks(
2836
+ const compiled = chunkLXJ4667L_cjs.compileDomainBlocks(
3306
2837
  domainBlocks,
3307
2838
  {
3308
2839
  material: (block) => {
3309
- const mat = chunkHHS6FMOU_cjs.compileMaterialBlock(block);
3310
- return chunkHHS6FMOU_cjs.materialToUSD(mat);
2840
+ const mat = chunkLXJ4667L_cjs.compileMaterialBlock(block);
2841
+ return chunkLXJ4667L_cjs.materialToUSD(mat);
3311
2842
  },
3312
2843
  physics: (block) => {
3313
- const phys = chunkHHS6FMOU_cjs.compilePhysicsBlock(block);
2844
+ const phys = chunkLXJ4667L_cjs.compilePhysicsBlock(block);
3314
2845
  return `# Physics: ${phys.keyword} "${phys.name || ""}" \u2014 ${JSON.stringify(phys.properties)}`;
3315
2846
  },
3316
2847
  vfx: (block) => {
3317
- const ps = chunkHHS6FMOU_cjs.compileParticleBlock(block);
3318
- return chunkHHS6FMOU_cjs.particlesToUSD(ps);
2848
+ const ps = chunkLXJ4667L_cjs.compileParticleBlock(block);
2849
+ return chunkLXJ4667L_cjs.particlesToUSD(ps);
3319
2850
  },
3320
2851
  postfx: (block) => {
3321
- const pp = chunkHHS6FMOU_cjs.compilePostProcessingBlock(block);
3322
- return chunkHHS6FMOU_cjs.postProcessingToUSD(pp);
2852
+ const pp = chunkLXJ4667L_cjs.compilePostProcessingBlock(block);
2853
+ return chunkLXJ4667L_cjs.postProcessingToUSD(pp);
3323
2854
  },
3324
2855
  audio: (block) => {
3325
- const audio = chunkHHS6FMOU_cjs.compileAudioSourceBlock(block);
3326
- return chunkHHS6FMOU_cjs.audioSourceToUSD(audio);
2856
+ const audio = chunkLXJ4667L_cjs.compileAudioSourceBlock(block);
2857
+ return chunkLXJ4667L_cjs.audioSourceToUSD(audio);
3327
2858
  },
3328
2859
  weather: (block) => {
3329
- const weather = chunkHHS6FMOU_cjs.compileWeatherBlock(block);
3330
- return chunkHHS6FMOU_cjs.weatherToUSD(weather);
2860
+ const weather = chunkLXJ4667L_cjs.compileWeatherBlock(block);
2861
+ return chunkLXJ4667L_cjs.weatherToUSD(weather);
3331
2862
  },
3332
2863
  narrative: (block) => {
3333
- const narr = chunkHHS6FMOU_cjs.compileNarrativeBlock(block);
3334
- return chunkHHS6FMOU_cjs.narrativeToUSDA(narr);
2864
+ const narr = chunkLXJ4667L_cjs.compileNarrativeBlock(block);
2865
+ return chunkLXJ4667L_cjs.narrativeToUSDA(narr);
3335
2866
  },
3336
2867
  payment: (block) => {
3337
- const pay = chunkHHS6FMOU_cjs.compilePaymentBlock(block);
3338
- return chunkHHS6FMOU_cjs.paymentToUSDA(pay);
2868
+ const pay = chunkLXJ4667L_cjs.compilePaymentBlock(block);
2869
+ return chunkLXJ4667L_cjs.paymentToUSDA(pay);
3339
2870
  },
3340
2871
  healthcare: (block) => {
3341
- const h = chunkHHS6FMOU_cjs.compileHealthcareBlock(block);
3342
- return chunkHHS6FMOU_cjs.healthcareToUSDA(h);
2872
+ const h = chunkLXJ4667L_cjs.compileHealthcareBlock(block);
2873
+ return chunkLXJ4667L_cjs.healthcareToUSDA(h);
3343
2874
  },
3344
2875
  robotics: (block) => {
3345
- const r = chunkHHS6FMOU_cjs.compileRoboticsBlock(block);
3346
- return chunkHHS6FMOU_cjs.roboticsToUSDA(r);
2876
+ const r = chunkLXJ4667L_cjs.compileRoboticsBlock(block);
2877
+ return chunkLXJ4667L_cjs.roboticsToUSDA(r);
3347
2878
  },
3348
- iot: (block) => chunkHHS6FMOU_cjs.iotToUSDA(chunkHHS6FMOU_cjs.compileIoTBlock(block)),
3349
- dataviz: (block) => chunkHHS6FMOU_cjs.datavizToUSDA(chunkHHS6FMOU_cjs.compileDataVizBlock(block)),
3350
- education: (block) => chunkHHS6FMOU_cjs.educationToUSDA(chunkHHS6FMOU_cjs.compileEducationBlock(block)),
3351
- music: (block) => chunkHHS6FMOU_cjs.musicToUSDA(chunkHHS6FMOU_cjs.compileMusicBlock(block)),
3352
- architecture: (block) => chunkHHS6FMOU_cjs.architectureToUSDA(chunkHHS6FMOU_cjs.compileArchitectureBlock(block)),
3353
- web3: (block) => chunkHHS6FMOU_cjs.web3ToUSDA(chunkHHS6FMOU_cjs.compileWeb3Block(block)),
3354
- procedural: (block) => chunkHHS6FMOU_cjs.proceduralToUSDA(chunkHHS6FMOU_cjs.compileProceduralBlock(block)),
3355
- rendering: (block) => chunkHHS6FMOU_cjs.renderingToUSDA(chunkHHS6FMOU_cjs.compileRenderingBlock(block)),
3356
- navigation: (block) => chunkHHS6FMOU_cjs.navigationToUSDA(chunkHHS6FMOU_cjs.compileNavigationBlock(block)),
3357
- input: (block) => chunkHHS6FMOU_cjs.inputToUSDA(chunkHHS6FMOU_cjs.compileInputBlock(block))
2879
+ iot: (block) => chunkLXJ4667L_cjs.iotToUSDA(chunkLXJ4667L_cjs.compileIoTBlock(block)),
2880
+ dataviz: (block) => chunkLXJ4667L_cjs.datavizToUSDA(chunkLXJ4667L_cjs.compileDataVizBlock(block)),
2881
+ education: (block) => chunkLXJ4667L_cjs.educationToUSDA(chunkLXJ4667L_cjs.compileEducationBlock(block)),
2882
+ music: (block) => chunkLXJ4667L_cjs.musicToUSDA(chunkLXJ4667L_cjs.compileMusicBlock(block)),
2883
+ architecture: (block) => chunkLXJ4667L_cjs.architectureToUSDA(chunkLXJ4667L_cjs.compileArchitectureBlock(block)),
2884
+ web3: (block) => chunkLXJ4667L_cjs.web3ToUSDA(chunkLXJ4667L_cjs.compileWeb3Block(block)),
2885
+ procedural: (block) => chunkLXJ4667L_cjs.proceduralToUSDA(chunkLXJ4667L_cjs.compileProceduralBlock(block)),
2886
+ rendering: (block) => chunkLXJ4667L_cjs.renderingToUSDA(chunkLXJ4667L_cjs.compileRenderingBlock(block)),
2887
+ navigation: (block) => chunkLXJ4667L_cjs.navigationToUSDA(chunkLXJ4667L_cjs.compileNavigationBlock(block)),
2888
+ input: (block) => chunkLXJ4667L_cjs.inputToUSDA(chunkLXJ4667L_cjs.compileInputBlock(block))
3358
2889
  },
3359
2890
  (block) => `# Domain block: ${block.domain}/${block.keyword} "${block.name}"`
3360
2891
  );
@@ -5309,14 +4840,10 @@ function selectModality(platform, options = {}) {
5309
4840
  reasoning.push(`Embodiment forced to ${embodiment} by caller`);
5310
4841
  } else if (platform in PLATFORM_EMBODIMENT_OVERRIDES) {
5311
4842
  embodiment = PLATFORM_EMBODIMENT_OVERRIDES[platform];
5312
- reasoning.push(
5313
- `Embodiment ${embodiment} from platform-specific override for ${platform}`
5314
- );
4843
+ reasoning.push(`Embodiment ${embodiment} from platform-specific override for ${platform}`);
5315
4844
  } else {
5316
4845
  embodiment = CATEGORY_DEFAULT_EMBODIMENT[category];
5317
- reasoning.push(
5318
- `Embodiment ${embodiment} from category default for ${category}`
5319
- );
4846
+ reasoning.push(`Embodiment ${embodiment} from category default for ${category}`);
5320
4847
  }
5321
4848
  let exportTarget;
5322
4849
  let fallbackTarget;
@@ -5327,16 +4854,12 @@ function selectModality(platform, options = {}) {
5327
4854
  } else if (platform in PLATFORM_TARGET_OVERRIDES) {
5328
4855
  exportTarget = PLATFORM_TARGET_OVERRIDES[platform];
5329
4856
  fallbackTarget = EMBODIMENT_TO_TARGET[embodiment]?.fallback ?? null;
5330
- reasoning.push(
5331
- `ExportTarget ${exportTarget} from platform-specific override for ${platform}`
5332
- );
4857
+ reasoning.push(`ExportTarget ${exportTarget} from platform-specific override for ${platform}`);
5333
4858
  } else {
5334
4859
  const mapping = EMBODIMENT_TO_TARGET[embodiment];
5335
4860
  exportTarget = mapping.primary;
5336
4861
  fallbackTarget = mapping.fallback;
5337
- reasoning.push(
5338
- `ExportTarget ${exportTarget} from embodiment mapping for ${embodiment}`
5339
- );
4862
+ reasoning.push(`ExportTarget ${exportTarget} from embodiment mapping for ${embodiment}`);
5340
4863
  }
5341
4864
  const canRenderSpatial = capabilities.gpu3D && capabilities.frameBudgetMs <= 16.6;
5342
4865
  reasoning.push(
@@ -5378,8 +4901,10 @@ function bestCategoryForTraits(requiredCapabilities) {
5378
4901
  const canSupport = platforms.some((platform) => {
5379
4902
  const caps = PLATFORM_CAPABILITIES[platform];
5380
4903
  return Object.entries(requiredCapabilities).every(([key, required]) => {
5381
- if (typeof required === "boolean") return !required || caps[key] === true;
5382
- if (typeof required === "number") return caps[key] <= required;
4904
+ if (typeof required === "boolean")
4905
+ return !required || caps[key] === true;
4906
+ if (typeof required === "number")
4907
+ return caps[key] <= required;
5383
4908
  return true;
5384
4909
  });
5385
4910
  });
@@ -5545,7 +5070,9 @@ function emitSource(source) {
5545
5070
  }
5546
5071
  function emitFieldMappingTransform(t) {
5547
5072
  const mappings = t.mappings || [];
5548
- const mapExpr = mappings.map((m) => `${json(m.to)}: applyTransforms(item[${json(m.from)}], ${json(m.transforms || [])})`).join(",\n ");
5073
+ const mapExpr = mappings.map(
5074
+ (m) => `${json(m.to)}: applyTransforms(item[${json(m.from)}], ${json(m.transforms || [])})`
5075
+ ).join(",\n ");
5549
5076
  return `data = data.map((item) => ({
5550
5077
  ${mapExpr}
5551
5078
  }));`;
@@ -5602,7 +5129,9 @@ function emitPythonSource(source) {
5602
5129
  }
5603
5130
  function emitPythonFieldMappingTransform(t) {
5604
5131
  const mappings = t.mappings || [];
5605
- const mappingLines = mappings.map((m) => `${json(m.to)}: apply_transforms(item.get(${json(m.from)}), ${json(m.transforms || [])}),`).join("\n ");
5132
+ const mappingLines = mappings.map(
5133
+ (m) => `${json(m.to)}: apply_transforms(item.get(${json(m.from)}), ${json(m.transforms || [])}),`
5134
+ ).join("\n ");
5606
5135
  return `data = [
5607
5136
  {
5608
5137
  ${mappingLines}
@@ -5942,116 +5471,6 @@ function compilePipelineSource(source, options = {}) {
5942
5471
  return compilePipelineSourceToNode(source, options.node);
5943
5472
  }
5944
5473
 
5945
- // src/compiler/NextJSCompiler.ts
5946
- chunkQHVVVN47_cjs.init_CompilerBase();
5947
- init_Native2DCompiler();
5948
- function findTrait(composition, traitName) {
5949
- const traits = composition.traits;
5950
- if (!traits) return null;
5951
- const found = traits.find((t) => t.name === traitName);
5952
- return found?.config || null;
5953
- }
5954
- var NextJSCompiler = class extends chunkQHVVVN47_cjs.CompilerBase {
5955
- constructor(options = {}) {
5956
- super();
5957
- this.options = options;
5958
- this.compilerName = "NextJSCompiler";
5959
- }
5960
- /**
5961
- * Compile HoloComposition AST to Next.js App Router Code
5962
- *
5963
- * @param composition - HoloScript AST
5964
- * @param agentToken - JWT or UCAN token proving agent identity
5965
- * @param outputPath - Optional output file path for scope validation
5966
- * @param sceneGraph - Optional pre-computed SSG
5967
- */
5968
- async compile(composition, agentToken, outputPath, _sceneGraph) {
5969
- this.validateCompilerAccess(agentToken, outputPath);
5970
- return this.buildNextRoute(composition);
5971
- }
5972
- validateCompilerAccess(agentToken, outputPath) {
5973
- if (typeof agentToken === "object" && agentToken !== null) {
5974
- this.validateCapabilityAccess(agentToken, outputPath);
5975
- } else {
5976
- this.validateASTAccess(agentToken);
5977
- this.validateCodeGeneration(agentToken);
5978
- if (outputPath) {
5979
- this.validateOutputPath(agentToken, outputPath);
5980
- }
5981
- this.validateSpatialZoneAccess(agentToken);
5982
- }
5983
- }
5984
- buildNextRoute(composition) {
5985
- const compiler = new exports.Native2DCompiler();
5986
- const pageTrait = findTrait(composition, "page");
5987
- const metaTrait = findTrait(composition, "metadata");
5988
- const route = pageTrait?.route || `/${composition.name.toLowerCase().replace(/\s+/g, "-")}`;
5989
- const isClient = pageTrait?.client !== false;
5990
- const slotMap = this.options.slots || {};
5991
- if (pageTrait?.redirect) {
5992
- const redirectUrl = pageTrait.redirect;
5993
- const lines2 = [
5994
- `// @generated by HoloScript NextJSCompiler \u2014 DO NOT EDIT`,
5995
- `import { redirect } from 'next/navigation';`,
5996
- ``,
5997
- `export default function RedirectPage() {`,
5998
- ` redirect(${JSON.stringify(redirectUrl)});`,
5999
- `}`
6000
- ];
6001
- if (metaTrait) {
6002
- const metaEntries = [];
6003
- if (metaTrait.title) metaEntries.push(` title: ${JSON.stringify(metaTrait.title)},`);
6004
- if (metaTrait.description) metaEntries.push(` description: ${JSON.stringify(metaTrait.description)},`);
6005
- lines2.push("");
6006
- lines2.push(`export const metadata = {`);
6007
- lines2.push(metaEntries.join("\n"));
6008
- lines2.push(`};`);
6009
- }
6010
- const routePath2 = route.replace(/^\//, "") || "index";
6011
- return {
6012
- path: `${routePath2}/page.tsx`,
6013
- code: lines2.join("\n")
6014
- };
6015
- }
6016
- const compilerOptions = {
6017
- format: "react",
6018
- useUIComponents: true,
6019
- slots: slotMap
6020
- };
6021
- const elements = composition.ui?.elements || composition.objects || [];
6022
- const componentCode = compiler.generateReactComponent(
6023
- composition.name,
6024
- elements,
6025
- composition,
6026
- compilerOptions
6027
- );
6028
- const pageSafeComponentCode = componentCode.replace(
6029
- /export\s+function\s+([A-Za-z0-9_]+)\s*\(/,
6030
- "function $1("
6031
- );
6032
- const lines = [];
6033
- if (isClient) {
6034
- lines.push("'use client';");
6035
- lines.push("");
6036
- }
6037
- lines.push(pageSafeComponentCode);
6038
- if (metaTrait && !isClient) {
6039
- const metaEntries = [];
6040
- if (metaTrait.title) metaEntries.push(` title: ${JSON.stringify(metaTrait.title)},`);
6041
- if (metaTrait.description) metaEntries.push(` description: ${JSON.stringify(metaTrait.description)},`);
6042
- lines.push("");
6043
- lines.push(`export const metadata = {`);
6044
- lines.push(metaEntries.join("\n"));
6045
- lines.push(`};`);
6046
- }
6047
- const routePath = route.replace(/^\//, "") || "index";
6048
- return {
6049
- path: `${routePath}/page.tsx`,
6050
- code: lines.join("\n")
6051
- };
6052
- }
6053
- };
6054
-
6055
5474
  exports.A2AAgentCardCompiler_exports = A2AAgentCardCompiler_exports;
6056
5475
  exports.ALL_PLATFORMS = ALL_PLATFORMS;
6057
5476
  exports.BUILTIN_RESOURCES = BUILTIN_RESOURCES;
@@ -6067,8 +5486,6 @@ exports.HANDOFF_PATH_RULES = HANDOFF_PATH_RULES;
6067
5486
  exports.LinearTypeChecker = LinearTypeChecker;
6068
5487
  exports.MVC_BUDGET_CONSTRAINTS = MVC_BUDGET_CONSTRAINTS;
6069
5488
  exports.NIRCompiler_exports = NIRCompiler_exports;
6070
- exports.Native2DCompiler_exports = Native2DCompiler_exports;
6071
- exports.NextJSCompiler = NextJSCompiler;
6072
5489
  exports.PLATFORM_BUDGETS = PLATFORM_BUDGETS;
6073
5490
  exports.PLATFORM_CAPABILITIES = PLATFORM_CAPABILITIES;
6074
5491
  exports.PLATFORM_CATEGORIES = PLATFORM_CATEGORIES;
@@ -6103,7 +5520,6 @@ exports.inferFromBuiltins = inferFromBuiltins;
6103
5520
  exports.inferFromTraits = inferFromTraits;
6104
5521
  exports.init_A2AAgentCardCompiler = init_A2AAgentCardCompiler;
6105
5522
  exports.init_NIRCompiler = init_NIRCompiler;
6106
- exports.init_Native2DCompiler = init_Native2DCompiler;
6107
5523
  exports.isPipelineSource = isPipelineSource;
6108
5524
  exports.isSafeTraitSet = isSafeTraitSet;
6109
5525
  exports.knownBuiltins = knownBuiltins;
@@ -6118,5 +5534,5 @@ exports.runSafetyPass = runSafetyPass;
6118
5534
  exports.selectBlock = selectBlock;
6119
5535
  exports.selectModality = selectModality;
6120
5536
  exports.selectModalityForAll = selectModalityForAll;
6121
- //# sourceMappingURL=chunk-FEFHPUEM.cjs.map
6122
- //# sourceMappingURL=chunk-FEFHPUEM.cjs.map
5537
+ //# sourceMappingURL=chunk-F3HH56EB.cjs.map
5538
+ //# sourceMappingURL=chunk-F3HH56EB.cjs.map