@holoscript/core 8.0.13 → 8.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +20 -13
  2. package/bin/holo-decision.mjs +133 -0
  3. package/bin/holoscript.cjs +0 -0
  4. package/dist/{GLTFPipeline-L76YTXKA.js → GLTFPipeline-FRBZIATS.js} +7 -7
  5. package/dist/{GLTFPipeline-ZWJN7GI6.cjs → GLTFPipeline-MTPP444P.cjs} +11 -11
  6. package/dist/{HoloCompositionParser-P4Y3CXKQ.js → HoloCompositionParser-2GVQAZ2X.js} +7 -7
  7. package/dist/HoloCompositionParser-3NDF6BMX.cjs +45 -0
  8. package/dist/HoloScriptPlusParser-URSIBEAW.cjs +30 -0
  9. package/dist/HoloScriptPlusParser-YCV6L7GI.js +13 -0
  10. package/dist/{HoloScriptRuntime-YBYXJHJN.cjs → HoloScriptRuntime-CRWI6C3P.cjs} +5 -5
  11. package/dist/{HoloScriptRuntime-UTRLJI5L.js → HoloScriptRuntime-IAZGHPFP.js} +4 -4
  12. package/dist/{SceneIRCompiler-63KA3M2F.js → SceneIRCompiler-BJQMKLWL.js} +7 -7
  13. package/dist/{SceneIRCompiler-KWUFHZ4O.cjs → SceneIRCompiler-RTPPDQAV.cjs} +12 -12
  14. package/dist/{chunk-FWCHPCD4.js → chunk-22AULOAL.js} +5 -5
  15. package/dist/{chunk-G35CAQ7I.cjs → chunk-2DJIS7TH.cjs} +5 -5
  16. package/dist/{chunk-LHUDAJQT.cjs → chunk-2PVEXEOL.cjs} +5 -5
  17. package/dist/{chunk-WWNCM473.js → chunk-2UP2J3OK.js} +4 -4
  18. package/dist/{chunk-HVX7QQYK.js → chunk-3AUYBQ5I.js} +3 -3
  19. package/dist/{chunk-TSTFYGGX.js → chunk-3MQAOMKD.js} +3 -3
  20. package/dist/{chunk-FWKEY4LD.js → chunk-4AGNARX6.js} +3 -3
  21. package/dist/{chunk-WNYXT4TE.cjs → chunk-4CQ7ULXZ.cjs} +3 -3
  22. package/dist/{chunk-U3D4SYQ5.js → chunk-5LCJDX5A.js} +3 -3
  23. package/dist/{chunk-IK6Z2HNC.js → chunk-6OQHLNTT.js} +2 -2
  24. package/dist/{chunk-EI3J6LTW.cjs → chunk-6RDHWSZM.cjs} +217 -217
  25. package/dist/{chunk-77QI552M.js → chunk-7AY66PZP.js} +3 -3
  26. package/dist/{chunk-7IDJDMPU.cjs → chunk-7FYSSI3C.cjs} +27 -2
  27. package/dist/{chunk-BP4KTMLY.js → chunk-7HDRN5BW.js} +4 -4
  28. package/dist/{chunk-SQAAWO4V.cjs → chunk-7YKNV2BE.cjs} +5 -5
  29. package/dist/{chunk-WTH23ISI.js → chunk-AAUQTR7I.js} +4 -4
  30. package/dist/{chunk-OC6GV5QH.cjs → chunk-AN3ZH7M7.cjs} +38 -38
  31. package/dist/{chunk-YW3I2FQL.js → chunk-ANMME7XT.js} +4 -2
  32. package/dist/{chunk-A4OOLBZD.js → chunk-ATRAK4RC.js} +5 -5
  33. package/dist/{chunk-BQJ3YBF3.js → chunk-AUF7HFOO.js} +724 -647
  34. package/dist/{chunk-2X3IPCBK.cjs → chunk-AUMTQV64.cjs} +7 -7
  35. package/dist/chunk-AUU4ACJP.cjs +1605 -0
  36. package/dist/{chunk-QQFB4RT2.cjs → chunk-BTVHY3UB.cjs} +2 -2
  37. package/dist/{chunk-ZK7KX5CD.cjs → chunk-CMEINO5I.cjs} +190 -74
  38. package/dist/{chunk-BCP4E7MD.cjs → chunk-CRUIGXF7.cjs} +26 -10
  39. package/dist/{chunk-2E6PP5UE.cjs → chunk-E2SNPMBO.cjs} +11 -11
  40. package/dist/{chunk-2BYAUHBO.js → chunk-E4YS5SIZ.js} +90 -25
  41. package/dist/{chunk-KFVNCW4Q.js → chunk-EKNWUSGW.js} +3 -3
  42. package/dist/{chunk-JEJ7TT54.js → chunk-ETIJOUIO.js} +4 -4
  43. package/dist/{chunk-FRSKLX6I.js → chunk-F33KLYOS.js} +12 -9
  44. package/dist/{chunk-GGR7QUKK.cjs → chunk-F47FEV4X.cjs} +40 -40
  45. package/dist/{chunk-J3UHV5T4.cjs → chunk-FCGTI7FO.cjs} +4 -4
  46. package/dist/{chunk-RRQIAJLQ.cjs → chunk-FGTXAVKG.cjs} +5 -5
  47. package/dist/{chunk-2KKOYZYI.cjs → chunk-FPGYWNNA.cjs} +5 -5
  48. package/dist/{chunk-65S62L4D.cjs → chunk-FQ4MYZYU.cjs} +20 -20
  49. package/dist/{chunk-UGQ3QNV6.js → chunk-FT4FGTR6.js} +24 -8
  50. package/dist/{chunk-Q4K2GEMW.cjs → chunk-FVNV4WHQ.cjs} +20 -17
  51. package/dist/{chunk-SJIRCTIS.cjs → chunk-HSGJFCVJ.cjs} +2 -2
  52. package/dist/{chunk-B3CWTCK2.js → chunk-IA7FCSRY.js} +27 -2
  53. package/dist/{chunk-OIBRWLPY.cjs → chunk-ILO2KMER.cjs} +55 -4
  54. package/dist/{chunk-ZRPALBQB.cjs → chunk-IPBSNGAN.cjs} +92 -27
  55. package/dist/{chunk-FHVPN7BN.js → chunk-IX2U3RQT.js} +3 -3
  56. package/dist/{chunk-QEDMOGF3.cjs → chunk-IYK6LMQ7.cjs} +7 -7
  57. package/dist/{chunk-G6EKZHXY.js → chunk-J3VVM6GV.js} +4 -4
  58. package/dist/{chunk-LMB555QB.cjs → chunk-J74S4ZMF.cjs} +18 -18
  59. package/dist/{chunk-36NPLOI4.cjs → chunk-JERWCCEJ.cjs} +4 -2
  60. package/dist/{chunk-RVNXBF2M.js → chunk-JTDDLCSP.js} +4 -4
  61. package/dist/{chunk-VTEXJOSD.cjs → chunk-K53L47NH.cjs} +30 -30
  62. package/dist/{chunk-IJU6AS67.cjs → chunk-LJTM5ONX.cjs} +23 -23
  63. package/dist/{chunk-G6KACNMO.js → chunk-LJVVOVA6.js} +4 -4
  64. package/dist/{chunk-PDXX5UI4.cjs → chunk-LNJKBQ2B.cjs} +38 -38
  65. package/dist/{chunk-EM2OGPYE.js → chunk-M2GDE3NV.js} +3 -3
  66. package/dist/{chunk-CP7V3ATL.js → chunk-MSZNGI5P.js} +52 -5
  67. package/dist/{chunk-P7JEKJTZ.cjs → chunk-N2BOTBPG.cjs} +27 -16
  68. package/dist/{chunk-LB3ZZMKT.cjs → chunk-NFALJJCH.cjs} +12 -12
  69. package/dist/{chunk-XF63CZ7E.cjs → chunk-NRZRBK25.cjs} +6 -6
  70. package/dist/{chunk-GZPUA2TL.cjs → chunk-NTSLNIY7.cjs} +10 -10
  71. package/dist/{chunk-Y57AVOM2.cjs → chunk-NZJOAWJM.cjs} +4 -4
  72. package/dist/{chunk-RXQNRZ5F.js → chunk-OG7RKWWX.js} +3 -3
  73. package/dist/{chunk-VVAAZITA.cjs → chunk-OQVHCYY4.cjs} +5 -5
  74. package/dist/{chunk-PJFTTSKE.js → chunk-PFZ5WLIP.js} +4 -4
  75. package/dist/{chunk-PXVAPGTR.cjs → chunk-PHLNABJD.cjs} +3788 -1138
  76. package/dist/{chunk-SQXAZHDG.js → chunk-PLK3DLTF.js} +3 -3
  77. package/dist/{chunk-QBY7LRN2.js → chunk-PMACVMHL.js} +3 -3
  78. package/dist/{chunk-DJ5BNRIS.js → chunk-PV2OXNP5.js} +3684 -1041
  79. package/dist/{chunk-F3YT6GUF.cjs → chunk-Q6VW7MGX.cjs} +14 -14
  80. package/dist/{chunk-DUG3OQAS.js → chunk-QC3CAVFN.js} +187 -70
  81. package/dist/{chunk-NQN5LFN4.cjs → chunk-QKLEDRHN.cjs} +19 -19
  82. package/dist/{chunk-2EGGAZT3.js → chunk-QS27OYBU.js} +3 -3
  83. package/dist/{chunk-4376VHNJ.js → chunk-RUB7WL6C.js} +3 -3
  84. package/dist/{chunk-5LVFTGKH.js → chunk-TW2AH2ZS.js} +3 -3
  85. package/dist/{chunk-AATYYLYK.js → chunk-TZM6DKSJ.js} +18 -7
  86. package/dist/{chunk-ESSEF6U2.js → chunk-U227RWXB.js} +3 -3
  87. package/dist/{chunk-TC7JEO6R.cjs → chunk-U6CQOM5Q.cjs} +711 -52
  88. package/dist/{chunk-Z557DVYN.js → chunk-ULT2QAV5.js} +4 -4
  89. package/dist/{chunk-S4O7CFHQ.cjs → chunk-VSO6HPDZ.cjs} +7 -7
  90. package/dist/{chunk-ONPVM4IV.js → chunk-WQJMSSJT.js} +698 -45
  91. package/dist/{chunk-GILYQ5VH.cjs → chunk-WXSDBWGM.cjs} +4 -4
  92. package/dist/{chunk-UTUD6GJI.js → chunk-X5PMMK7H.js} +3 -3
  93. package/dist/{chunk-IFW5IW4L.cjs → chunk-X5ZLSPU2.cjs} +742 -657
  94. package/dist/{chunk-QM7FJB5W.js → chunk-X727CQ7X.js} +5 -5
  95. package/dist/{chunk-566ZB4LZ.cjs → chunk-XHZYS4QO.cjs} +5 -5
  96. package/dist/{chunk-RZ2EPXO3.cjs → chunk-XRQCTTDC.cjs} +8 -8
  97. package/dist/{chunk-5FYMCVBY.js → chunk-YBIHSN55.js} +4 -4
  98. package/dist/{chunk-FG6PYGIZ.js → chunk-Z574GVI3.js} +4 -4
  99. package/dist/{chunk-ZVQMKUGJ.js → chunk-Z5V3KA7L.js} +2 -2
  100. package/dist/chunk-ZGDEOXGU.js +1571 -0
  101. package/dist/{chunk-IS7NTKY5.cjs → chunk-ZHW6TDZ6.cjs} +14 -14
  102. package/dist/{chunk-CKV5NYAE.js → chunk-ZPHCTPR6.js} +4 -4
  103. package/dist/{chunk-3IUHTGDD.cjs → chunk-ZXXC2GXB.cjs} +38 -38
  104. package/dist/cli/holoscript-runner.cjs +169 -20
  105. package/dist/cli/holoscript-runner.js +163 -14
  106. package/dist/compiler/agent-inference.cjs +8 -8
  107. package/dist/compiler/agent-inference.js +4 -4
  108. package/dist/compiler/android-xr.cjs +7 -7
  109. package/dist/compiler/android-xr.js +5 -5
  110. package/dist/compiler/android.cjs +6 -6
  111. package/dist/compiler/android.js +4 -4
  112. package/dist/compiler/context.cjs +6 -6
  113. package/dist/compiler/context.js +3 -3
  114. package/dist/compiler/daimon-seed.cjs +9 -9
  115. package/dist/compiler/daimon-seed.js +4 -4
  116. package/dist/compiler/domain-block-utils.cjs +165 -165
  117. package/dist/compiler/domain-block-utils.js +4 -4
  118. package/dist/compiler/dtdl.cjs +7 -7
  119. package/dist/compiler/dtdl.js +4 -4
  120. package/dist/compiler/gltf-pipeline.cjs +8 -8
  121. package/dist/compiler/gltf-pipeline.js +1 -1
  122. package/dist/compiler/godot.cjs +6 -6
  123. package/dist/compiler/godot.js +5 -5
  124. package/dist/compiler/incremental.cjs +8 -8
  125. package/dist/compiler/incremental.js +3 -3
  126. package/dist/compiler/index.cjs +2275 -212
  127. package/dist/compiler/index.d.ts +29 -1
  128. package/dist/compiler/index.js +2078 -66
  129. package/dist/compiler/ios.cjs +6 -6
  130. package/dist/compiler/ios.js +4 -4
  131. package/dist/compiler/llm-provider-capabilities.cjs +6 -6
  132. package/dist/compiler/llm-provider-capabilities.js +3 -3
  133. package/dist/compiler/openxr.cjs +6 -6
  134. package/dist/compiler/openxr.js +5 -5
  135. package/dist/compiler/sdf.cjs +7 -7
  136. package/dist/compiler/sdf.js +5 -5
  137. package/dist/compiler/state.cjs +6 -6
  138. package/dist/compiler/state.js +4 -4
  139. package/dist/compiler/trait-composition.cjs +7 -7
  140. package/dist/compiler/trait-composition.js +3 -3
  141. package/dist/compiler/unity.cjs +6 -6
  142. package/dist/compiler/unity.js +5 -5
  143. package/dist/compiler/unreal.cjs +7 -7
  144. package/dist/compiler/unreal.js +5 -5
  145. package/dist/compiler/urdf.cjs +14 -14
  146. package/dist/compiler/urdf.js +5 -5
  147. package/dist/compiler/usd-physics.cjs +7 -7
  148. package/dist/compiler/usd-physics.js +4 -4
  149. package/dist/compiler/visionos.cjs +6 -6
  150. package/dist/compiler/visionos.js +5 -5
  151. package/dist/compiler/vrchat.cjs +7 -7
  152. package/dist/compiler/vrchat.js +5 -5
  153. package/dist/compiler/wasm.cjs +10 -10
  154. package/dist/compiler/wasm.js +5 -5
  155. package/dist/compiler/webgpu.cjs +6 -6
  156. package/dist/compiler/webgpu.js +5 -5
  157. package/dist/constants.cjs +99 -99
  158. package/dist/constants.js +3 -3
  159. package/dist/debugger.cjs +5 -5
  160. package/dist/debugger.js +3 -3
  161. package/dist/{dist-GRMOP2UL.cjs → dist-YGATNURH.cjs} +705 -9
  162. package/dist/{dist-ZBUKU2JG.js → dist-ZEZXRCBG.js} +701 -10
  163. package/dist/entries/scripting.cjs +8 -8
  164. package/dist/entries/scripting.js +4 -4
  165. package/dist/evolution/index.cjs +20 -20
  166. package/dist/evolution/index.js +8 -8
  167. package/dist/index.cjs +1099 -826
  168. package/dist/index.d.ts +78 -5
  169. package/dist/index.js +265 -120
  170. package/dist/parser/HoloCompositionTypes.d.ts +1 -1
  171. package/dist/parser.cjs +21 -21
  172. package/dist/parser.js +7 -7
  173. package/dist/reconstruction/index.cjs +127 -38
  174. package/dist/reconstruction/index.d.ts +159 -0
  175. package/dist/reconstruction/index.js +11 -2
  176. package/dist/runtime.cjs +9 -9
  177. package/dist/runtime.d.ts +1 -0
  178. package/dist/runtime.js +3 -3
  179. package/dist/traitDocs/traitDocs.cjs +8 -8
  180. package/dist/traitDocs/traitDocs.js +2 -2
  181. package/dist/traits/botanical-lotus.d.ts +61 -0
  182. package/dist/traits/index.cjs +761 -673
  183. package/dist/traits/index.d.ts +65 -0
  184. package/dist/traits/index.js +102 -27
  185. package/dist/types/HoloScriptPlus.d.ts +1 -1
  186. package/package.json +71 -65
  187. package/dist/HoloCompositionParser-6GW2BZID.cjs +0 -45
  188. package/dist/HoloScriptPlusParser-HQV6IJAH.js +0 -13
  189. package/dist/HoloScriptPlusParser-RFNHRMPE.cjs +0 -30
  190. package/dist/chunk-DVHZD5HV.cjs +0 -639
  191. package/dist/chunk-G72754QB.js +0 -625
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkTZCFKZ6Z_cjs = require('./chunk-TZCFKZ6Z.cjs');
4
- var chunkQEDMOGF3_cjs = require('./chunk-QEDMOGF3.cjs');
5
- var chunkZK7KX5CD_cjs = require('./chunk-ZK7KX5CD.cjs');
4
+ var chunkIYK6LMQ7_cjs = require('./chunk-IYK6LMQ7.cjs');
5
+ var chunkCMEINO5I_cjs = require('./chunk-CMEINO5I.cjs');
6
6
  var chunkZHPMP447_cjs = require('./chunk-ZHPMP447.cjs');
7
7
  var ans = require('@holoscript/core-types/ans');
8
8
 
@@ -14,10 +14,10 @@ chunkZHPMP447_cjs.__export(OpenXRCompiler_exports, {
14
14
  exports.OpenXRCompiler = void 0;
15
15
  var init_OpenXRCompiler = chunkZHPMP447_cjs.__esm({
16
16
  "src/compiler/OpenXRCompiler.ts"() {
17
- chunkZK7KX5CD_cjs.init_CompilerBase();
17
+ chunkCMEINO5I_cjs.init_CompilerBase();
18
18
  chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
19
- chunkQEDMOGF3_cjs.init_DomainBlockCompilerMixin();
20
- exports.OpenXRCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
19
+ chunkIYK6LMQ7_cjs.init_DomainBlockCompilerMixin();
20
+ exports.OpenXRCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
21
21
  constructor(options = {}) {
22
22
  super();
23
23
  this.compilerName = "OpenXRCompiler";
@@ -136,32 +136,32 @@ var init_OpenXRCompiler = chunkZHPMP447_cjs.__esm({
136
136
  if (domainBlocks.length > 0) {
137
137
  this.emit("");
138
138
  this.emit("// === v4.2 Domain Blocks ===");
139
- const compiled = chunkQEDMOGF3_cjs.compileDomainBlocks(
139
+ const compiled = chunkIYK6LMQ7_cjs.compileDomainBlocks(
140
140
  // @ts-expect-error During migration
141
141
  domainBlocks,
142
142
  {
143
143
  material: (block) => {
144
- const m = chunkQEDMOGF3_cjs.compileMaterialBlock(block);
144
+ const m = chunkIYK6LMQ7_cjs.compileMaterialBlock(block);
145
145
  return `// Material: "${this.escapeStringValue(m.name, "TypeScript")}" type=${m.type} baseColor=${m.baseColor || "none"} roughness=${m.roughness ?? "default"} metallic=${m.metallic ?? "default"}`;
146
146
  },
147
147
  physics: (block) => {
148
- const p = chunkQEDMOGF3_cjs.compilePhysicsBlock(block);
148
+ const p = chunkIYK6LMQ7_cjs.compilePhysicsBlock(block);
149
149
  return `// Physics: ${p.keyword} "${p.name || ""}" colliders=${p.colliders?.length || 0} rigidbody=${!!p.rigidbody}`;
150
150
  },
151
151
  vfx: (block) => {
152
- const ps = chunkQEDMOGF3_cjs.compileParticleBlock(block);
152
+ const ps = chunkIYK6LMQ7_cjs.compileParticleBlock(block);
153
153
  return `// Particles: "${this.escapeStringValue(ps.name, "TypeScript")}" rate=${ps.properties.rate || "default"} modules=${ps.modules.length}`;
154
154
  },
155
155
  postfx: (block) => {
156
- const pp = chunkQEDMOGF3_cjs.compilePostProcessingBlock(block);
156
+ const pp = chunkIYK6LMQ7_cjs.compilePostProcessingBlock(block);
157
157
  return `// PostFX: ${pp.keyword} effects=[${pp.effects.map((e) => e.type).join(", ")}]`;
158
158
  },
159
159
  audio: (block) => {
160
- const a = chunkQEDMOGF3_cjs.compileAudioSourceBlock(block);
160
+ const a = chunkIYK6LMQ7_cjs.compileAudioSourceBlock(block);
161
161
  return `// Audio: "${this.escapeStringValue(a.name, "TypeScript")}" (${a.keyword}) clip=${a.properties.clip || "none"}`;
162
162
  },
163
163
  weather: (block) => {
164
- const w = chunkQEDMOGF3_cjs.compileWeatherBlock(block);
164
+ const w = chunkIYK6LMQ7_cjs.compileWeatherBlock(block);
165
165
  return `// Weather: ${w.keyword} layers=[${w.layers.map((l) => l.type).join(", ")}]`;
166
166
  }
167
167
  },
@@ -1045,5 +1045,5 @@ var init_OpenXRCompiler = chunkZHPMP447_cjs.__esm({
1045
1045
 
1046
1046
  exports.OpenXRCompiler_exports = OpenXRCompiler_exports;
1047
1047
  exports.init_OpenXRCompiler = init_OpenXRCompiler;
1048
- //# sourceMappingURL=chunk-IS7NTKY5.cjs.map
1049
- //# sourceMappingURL=chunk-IS7NTKY5.cjs.map
1048
+ //# sourceMappingURL=chunk-ZHW6TDZ6.cjs.map
1049
+ //# sourceMappingURL=chunk-ZHW6TDZ6.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { init_PlatformConditionalCompilerMixin, createPlatformTarget, PlatformConditionalCompilerMixin } from './chunk-DJNH4HFW.js';
2
- import { init_DomainBlockCompilerMixin, compileDomainBlocks, inputToUnity, compileInputBlock, navigationToUnity, compileNavigationBlock, renderingToUnity, compileRenderingBlock, proceduralToUnity, compileProceduralBlock, web3ToUnity, compileWeb3Block, architectureToUnity, compileArchitectureBlock, musicToUnity, compileMusicBlock, educationToUnity, compileEducationBlock, datavizToUnity, compileDataVizBlock, iotToUnity, compileIoTBlock, compileRoboticsBlock, roboticsToUnity, compileHealthcareBlock, healthcareToUnity, compilePaymentBlock, paymentToUnity, compileNarrativeBlock, narrativeToUnity, compileWeatherBlock, weatherToUnity, compileAudioSourceBlock, audioSourceToUnity, compilePostProcessingBlock, postProcessingToUnity, compileParticleBlock, particlesToUnity, compilePhysicsBlock, physicsToUnity, compileMaterialBlock, materialToUnity } from './chunk-5LVFTGKH.js';
3
- import { init_CompilerBase, CompilerBase } from './chunk-DUG3OQAS.js';
2
+ import { init_DomainBlockCompilerMixin, compileDomainBlocks, inputToUnity, compileInputBlock, navigationToUnity, compileNavigationBlock, renderingToUnity, compileRenderingBlock, proceduralToUnity, compileProceduralBlock, web3ToUnity, compileWeb3Block, architectureToUnity, compileArchitectureBlock, musicToUnity, compileMusicBlock, educationToUnity, compileEducationBlock, datavizToUnity, compileDataVizBlock, iotToUnity, compileIoTBlock, compileRoboticsBlock, roboticsToUnity, compileHealthcareBlock, healthcareToUnity, compilePaymentBlock, paymentToUnity, compileNarrativeBlock, narrativeToUnity, compileWeatherBlock, weatherToUnity, compileAudioSourceBlock, audioSourceToUnity, compilePostProcessingBlock, postProcessingToUnity, compileParticleBlock, particlesToUnity, compilePhysicsBlock, physicsToUnity, compileMaterialBlock, materialToUnity } from './chunk-TW2AH2ZS.js';
3
+ import { init_CompilerBase, CompilerBase } from './chunk-QC3CAVFN.js';
4
4
  import { __export, __esm } from './chunk-W4GABFCR.js';
5
5
  import { ANSCapabilityPath } from '@holoscript/core-types/ans';
6
6
 
@@ -762,5 +762,5 @@ var init_UnityCompiler = __esm({
762
762
  });
763
763
 
764
764
  export { UnityCompiler, UnityCompiler_exports, init_UnityCompiler };
765
- //# sourceMappingURL=chunk-CKV5NYAE.js.map
766
- //# sourceMappingURL=chunk-CKV5NYAE.js.map
765
+ //# sourceMappingURL=chunk-ZPHCTPR6.js.map
766
+ //# sourceMappingURL=chunk-ZPHCTPR6.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkQEDMOGF3_cjs = require('./chunk-QEDMOGF3.cjs');
4
- var chunkZK7KX5CD_cjs = require('./chunk-ZK7KX5CD.cjs');
3
+ var chunkIYK6LMQ7_cjs = require('./chunk-IYK6LMQ7.cjs');
4
+ var chunkCMEINO5I_cjs = require('./chunk-CMEINO5I.cjs');
5
5
  var chunkZHPMP447_cjs = require('./chunk-ZHPMP447.cjs');
6
6
  var ans = require('@holoscript/core-types/ans');
7
7
 
@@ -50,11 +50,11 @@ function compileToVRChat(composition, options) {
50
50
  exports.VRChatCompiler = void 0;
51
51
  var init_VRChatCompiler = chunkZHPMP447_cjs.__esm({
52
52
  "src/compiler/VRChatCompiler.ts"() {
53
- chunkZK7KX5CD_cjs.init_CompilerBase();
53
+ chunkCMEINO5I_cjs.init_CompilerBase();
54
54
  init_udon_assembly();
55
55
  init_udon_extern_manifest();
56
- chunkQEDMOGF3_cjs.init_DomainBlockCompilerMixin();
57
- exports.VRChatCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
56
+ chunkIYK6LMQ7_cjs.init_DomainBlockCompilerMixin();
57
+ exports.VRChatCompiler = class extends chunkCMEINO5I_cjs.CompilerBase {
58
58
  constructor(options = {}) {
59
59
  super();
60
60
  this.compilerName = "VRChatCompiler";
@@ -297,59 +297,59 @@ var init_VRChatCompiler = chunkZHPMP447_cjs.__esm({
297
297
  this.emit("");
298
298
  this.emit("// === v4.2 Domain Blocks (VRChat/Unity) ===");
299
299
  let blockIdx = 0;
300
- const compiled = chunkQEDMOGF3_cjs.compileDomainBlocks(
300
+ const compiled = chunkIYK6LMQ7_cjs.compileDomainBlocks(
301
301
  domainBlocks,
302
302
  {
303
303
  material: (block) => {
304
- const mat = chunkQEDMOGF3_cjs.compileMaterialBlock(block);
305
- return chunkQEDMOGF3_cjs.materialToVRChat(mat, `db${blockIdx++}`);
304
+ const mat = chunkIYK6LMQ7_cjs.compileMaterialBlock(block);
305
+ return chunkIYK6LMQ7_cjs.materialToVRChat(mat, `db${blockIdx++}`);
306
306
  },
307
307
  physics: (block) => {
308
- const phys = chunkQEDMOGF3_cjs.compilePhysicsBlock(block);
309
- return chunkQEDMOGF3_cjs.physicsToUnity(phys, `db${blockIdx++}`);
308
+ const phys = chunkIYK6LMQ7_cjs.compilePhysicsBlock(block);
309
+ return chunkIYK6LMQ7_cjs.physicsToUnity(phys, `db${blockIdx++}`);
310
310
  },
311
311
  vfx: (block) => {
312
- const ps = chunkQEDMOGF3_cjs.compileParticleBlock(block);
313
- return chunkQEDMOGF3_cjs.particlesToUnity(ps, `db${blockIdx++}`);
312
+ const ps = chunkIYK6LMQ7_cjs.compileParticleBlock(block);
313
+ return chunkIYK6LMQ7_cjs.particlesToUnity(ps, `db${blockIdx++}`);
314
314
  },
315
315
  postfx: (block) => {
316
- const pp = chunkQEDMOGF3_cjs.compilePostProcessingBlock(block);
317
- return chunkQEDMOGF3_cjs.postProcessingToUnity(pp);
316
+ const pp = chunkIYK6LMQ7_cjs.compilePostProcessingBlock(block);
317
+ return chunkIYK6LMQ7_cjs.postProcessingToUnity(pp);
318
318
  },
319
319
  audio: (block) => {
320
- const audio = chunkQEDMOGF3_cjs.compileAudioSourceBlock(block);
321
- return chunkQEDMOGF3_cjs.audioSourceToUnity(audio, `db${blockIdx++}`);
320
+ const audio = chunkIYK6LMQ7_cjs.compileAudioSourceBlock(block);
321
+ return chunkIYK6LMQ7_cjs.audioSourceToUnity(audio, `db${blockIdx++}`);
322
322
  },
323
323
  weather: (block) => {
324
- const weather = chunkQEDMOGF3_cjs.compileWeatherBlock(block);
325
- return chunkQEDMOGF3_cjs.weatherToUnity(weather);
324
+ const weather = chunkIYK6LMQ7_cjs.compileWeatherBlock(block);
325
+ return chunkIYK6LMQ7_cjs.weatherToUnity(weather);
326
326
  },
327
327
  narrative: (block) => {
328
- const narr = chunkQEDMOGF3_cjs.compileNarrativeBlock(block);
329
- return chunkQEDMOGF3_cjs.narrativeToVRChat(narr);
328
+ const narr = chunkIYK6LMQ7_cjs.compileNarrativeBlock(block);
329
+ return chunkIYK6LMQ7_cjs.narrativeToVRChat(narr);
330
330
  },
331
331
  payment: (block) => {
332
- const pay = chunkQEDMOGF3_cjs.compilePaymentBlock(block);
333
- return chunkQEDMOGF3_cjs.paymentToVRChat(pay);
332
+ const pay = chunkIYK6LMQ7_cjs.compilePaymentBlock(block);
333
+ return chunkIYK6LMQ7_cjs.paymentToVRChat(pay);
334
334
  },
335
335
  healthcare: (block) => {
336
- const h = chunkQEDMOGF3_cjs.compileHealthcareBlock(block);
337
- return chunkQEDMOGF3_cjs.healthcareToVRChat(h);
336
+ const h = chunkIYK6LMQ7_cjs.compileHealthcareBlock(block);
337
+ return chunkIYK6LMQ7_cjs.healthcareToVRChat(h);
338
338
  },
339
339
  robotics: (block) => {
340
- const r = chunkQEDMOGF3_cjs.compileRoboticsBlock(block);
341
- return chunkQEDMOGF3_cjs.roboticsToVRChat(r);
340
+ const r = chunkIYK6LMQ7_cjs.compileRoboticsBlock(block);
341
+ return chunkIYK6LMQ7_cjs.roboticsToVRChat(r);
342
342
  },
343
- iot: (block) => chunkQEDMOGF3_cjs.iotToVRChat(chunkQEDMOGF3_cjs.compileIoTBlock(block)),
344
- dataviz: (block) => chunkQEDMOGF3_cjs.datavizToVRChat(chunkQEDMOGF3_cjs.compileDataVizBlock(block)),
345
- education: (block) => chunkQEDMOGF3_cjs.educationToVRChat(chunkQEDMOGF3_cjs.compileEducationBlock(block)),
346
- music: (block) => chunkQEDMOGF3_cjs.musicToVRChat(chunkQEDMOGF3_cjs.compileMusicBlock(block)),
347
- architecture: (block) => chunkQEDMOGF3_cjs.architectureToVRChat(chunkQEDMOGF3_cjs.compileArchitectureBlock(block)),
348
- web3: (block) => chunkQEDMOGF3_cjs.web3ToVRChat(chunkQEDMOGF3_cjs.compileWeb3Block(block)),
349
- procedural: (block) => chunkQEDMOGF3_cjs.proceduralToVRChat(chunkQEDMOGF3_cjs.compileProceduralBlock(block)),
350
- rendering: (block) => chunkQEDMOGF3_cjs.renderingToVRChat(chunkQEDMOGF3_cjs.compileRenderingBlock(block)),
351
- navigation: (block) => chunkQEDMOGF3_cjs.navigationToVRChat(chunkQEDMOGF3_cjs.compileNavigationBlock(block)),
352
- input: (block) => chunkQEDMOGF3_cjs.inputToVRChat(chunkQEDMOGF3_cjs.compileInputBlock(block))
343
+ iot: (block) => chunkIYK6LMQ7_cjs.iotToVRChat(chunkIYK6LMQ7_cjs.compileIoTBlock(block)),
344
+ dataviz: (block) => chunkIYK6LMQ7_cjs.datavizToVRChat(chunkIYK6LMQ7_cjs.compileDataVizBlock(block)),
345
+ education: (block) => chunkIYK6LMQ7_cjs.educationToVRChat(chunkIYK6LMQ7_cjs.compileEducationBlock(block)),
346
+ music: (block) => chunkIYK6LMQ7_cjs.musicToVRChat(chunkIYK6LMQ7_cjs.compileMusicBlock(block)),
347
+ architecture: (block) => chunkIYK6LMQ7_cjs.architectureToVRChat(chunkIYK6LMQ7_cjs.compileArchitectureBlock(block)),
348
+ web3: (block) => chunkIYK6LMQ7_cjs.web3ToVRChat(chunkIYK6LMQ7_cjs.compileWeb3Block(block)),
349
+ procedural: (block) => chunkIYK6LMQ7_cjs.proceduralToVRChat(chunkIYK6LMQ7_cjs.compileProceduralBlock(block)),
350
+ rendering: (block) => chunkIYK6LMQ7_cjs.renderingToVRChat(chunkIYK6LMQ7_cjs.compileRenderingBlock(block)),
351
+ navigation: (block) => chunkIYK6LMQ7_cjs.navigationToVRChat(chunkIYK6LMQ7_cjs.compileNavigationBlock(block)),
352
+ input: (block) => chunkIYK6LMQ7_cjs.inputToVRChat(chunkIYK6LMQ7_cjs.compileInputBlock(block))
353
353
  },
354
354
  (block) => `// Domain block: ${block.domain}/${block.keyword} "${this.escapeStringValue(block.name, "CSharp")}"`
355
355
  );
@@ -735,5 +735,5 @@ var init_VRChatCompiler = chunkZHPMP447_cjs.__esm({
735
735
  exports.VRChatCompiler_exports = VRChatCompiler_exports;
736
736
  exports.compileToVRChat = compileToVRChat;
737
737
  exports.init_VRChatCompiler = init_VRChatCompiler;
738
- //# sourceMappingURL=chunk-3IUHTGDD.cjs.map
739
- //# sourceMappingURL=chunk-3IUHTGDD.cjs.map
738
+ //# sourceMappingURL=chunk-ZXXC2GXB.cjs.map
739
+ //# sourceMappingURL=chunk-ZXXC2GXB.cjs.map
@@ -5,12 +5,12 @@ var chunkQVJMDVYZ_cjs = require('../chunk-QVJMDVYZ.cjs');
5
5
  var chunk37HHY7RH_cjs = require('../chunk-37HHY7RH.cjs');
6
6
  var chunkXHIV6326_cjs = require('../chunk-XHIV6326.cjs');
7
7
  var chunkR75BSDH7_cjs = require('../chunk-R75BSDH7.cjs');
8
- var chunkQ4K2GEMW_cjs = require('../chunk-Q4K2GEMW.cjs');
9
- require('../chunk-OIBRWLPY.cjs');
8
+ var chunkFVNV4WHQ_cjs = require('../chunk-FVNV4WHQ.cjs');
9
+ require('../chunk-ILO2KMER.cjs');
10
10
  require('../chunk-YP5CHEYU.cjs');
11
- require('../chunk-LHUDAJQT.cjs');
12
- require('../chunk-EI3J6LTW.cjs');
13
- require('../chunk-36NPLOI4.cjs');
11
+ require('../chunk-2PVEXEOL.cjs');
12
+ require('../chunk-6RDHWSZM.cjs');
13
+ require('../chunk-JERWCCEJ.cjs');
14
14
  require('../chunk-AWXFEAQL.cjs');
15
15
  require('../chunk-4FIBOJW6.cjs');
16
16
  require('../chunk-N74QRJGP.cjs');
@@ -704,6 +704,65 @@ async function runDaemon(runtime, opts) {
704
704
  rl.once("close", () => resolve2());
705
705
  });
706
706
  }
707
+ var RUN_RECEIPT_SCHEMA = "holoscript.cli.run-receipt.v1";
708
+ var RUN_SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([".holo", ".hs", ".hsplus"]);
709
+ function sha256(value) {
710
+ return `sha256:${crypto.createHash("sha256").update(value).digest("hex")}`;
711
+ }
712
+ function summarizeRunParseErrors(errors) {
713
+ if (!Array.isArray(errors)) return [];
714
+ return errors.slice(0, 8).map((error) => {
715
+ const item = error && typeof error === "object" ? error : {};
716
+ const summary = {
717
+ message: typeof item.message === "string" ? item.message : "HoloScript parse failed"
718
+ };
719
+ if (typeof item.code === "string") summary.code = item.code;
720
+ if (Number.isInteger(item.line)) summary.line = item.line;
721
+ if (Number.isInteger(item.column)) summary.column = item.column;
722
+ return summary;
723
+ });
724
+ }
725
+ function integerStat(stats, key) {
726
+ const value = stats[key];
727
+ return typeof value === "number" && Number.isInteger(value) && value >= 0 ? value : null;
728
+ }
729
+ function normalizeRuntimeCounters(stats) {
730
+ return {
731
+ tickCount: integerStat(stats, "tickCount") ?? integerStat(stats, "updateCount"),
732
+ nodesProcessed: integerStat(stats, "nodesProcessed"),
733
+ instanceCount: integerStat(stats, "instanceCount"),
734
+ peakInstanceCount: integerStat(stats, "peakInstanceCount"),
735
+ eventCount: integerStat(stats, "eventCount")
736
+ };
737
+ }
738
+ function resolvePortableRunOutput(output) {
739
+ if (!output) return void 0;
740
+ const portable = output.replace(/\\/gu, "/");
741
+ const segments = portable.split("/");
742
+ if (path__namespace.isAbsolute(output) || /^[a-z]:/iu.test(portable) || portable.startsWith("//") || segments.some((segment) => segment === "..") || path__namespace.extname(portable).toLowerCase() !== ".json") {
743
+ throw new Error("Run receipt output must be a portable, relative .json path");
744
+ }
745
+ const resolved = path__namespace.resolve(process.cwd(), output);
746
+ const relative2 = path__namespace.relative(process.cwd(), resolved);
747
+ if (relative2.startsWith("..") || path__namespace.isAbsolute(relative2)) {
748
+ throw new Error("Run receipt output must stay within the working directory");
749
+ }
750
+ return resolved;
751
+ }
752
+ function emitRunReceipt(opts, outputPath, stableReceipt) {
753
+ const receipt = {
754
+ ...stableReceipt,
755
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
756
+ receiptHash: sha256(JSON.stringify(stableReceipt))
757
+ };
758
+ if (outputPath) {
759
+ fs__namespace.mkdirSync(path__namespace.dirname(outputPath), { recursive: true });
760
+ fs__namespace.writeFileSync(outputPath, `${JSON.stringify(receipt, null, 2)}
761
+ `, "utf-8");
762
+ }
763
+ if (opts.json) console.log(JSON.stringify(receipt));
764
+ return receipt;
765
+ }
707
766
  async function runScript(opts) {
708
767
  if (!opts.file) {
709
768
  console.error("Error: No input file specified");
@@ -716,8 +775,57 @@ async function runScript(opts) {
716
775
  }
717
776
  const source = fs__namespace.readFileSync(filePath, "utf-8");
718
777
  const ext = path__namespace.extname(filePath);
719
- console.log(`[holoscript] Running ${path__namespace.basename(filePath)} (target: ${opts.target})`);
720
- const parseResult = chunkQ4K2GEMW_cjs.parse(source);
778
+ const outputPath = resolvePortableRunOutput(opts.output);
779
+ if (opts.watch && (opts.json || outputPath)) {
780
+ throw new Error("Run receipts cannot be combined with --watch");
781
+ }
782
+ if (!opts.json) {
783
+ console.log(`[holoscript] Running ${path__namespace.basename(filePath)} (target: ${opts.target})`);
784
+ }
785
+ if (!RUN_SOURCE_EXTENSIONS.has(ext.toLowerCase())) {
786
+ const errors = [
787
+ {
788
+ code: "CLI001",
789
+ message: "HoloScript run accepts only .holo, .hs, or .hsplus source"
790
+ }
791
+ ];
792
+ emitRunReceipt(opts, outputPath, {
793
+ schema: RUN_RECEIPT_SCHEMA,
794
+ ok: false,
795
+ source: {
796
+ file: path__namespace.basename(filePath),
797
+ extension: ext.toLowerCase(),
798
+ digest: sha256(source),
799
+ parsePassed: false,
800
+ errors
801
+ },
802
+ execution: null
803
+ });
804
+ if (!opts.json) console.error(`[holoscript] Admission failed \u2014 ${errors[0].message}`);
805
+ process.exitCode = 2;
806
+ return;
807
+ }
808
+ const parseResult = chunkFVNV4WHQ_cjs.parse(source);
809
+ if (!parseResult.success || !parseResult.ast) {
810
+ const errors = summarizeRunParseErrors(parseResult.errors);
811
+ emitRunReceipt(opts, outputPath, {
812
+ schema: RUN_RECEIPT_SCHEMA,
813
+ ok: false,
814
+ source: {
815
+ file: path__namespace.basename(filePath),
816
+ extension: ext.toLowerCase(),
817
+ digest: sha256(source),
818
+ parsePassed: false,
819
+ errors
820
+ },
821
+ execution: null
822
+ });
823
+ if (!opts.json) {
824
+ console.error(`[holoscript] Parse failed \u2014 ${errors[0]?.message ?? "invalid HoloScript"}`);
825
+ }
826
+ process.exitCode = 2;
827
+ return;
828
+ }
721
829
  const ast = parseResult.ast;
722
830
  if (opts.debug) {
723
831
  console.log(`[holoscript] Parsed ${ast.body?.length || 0} top-level nodes`);
@@ -764,9 +872,44 @@ async function runScript(opts) {
764
872
  runTicks(runtime, opts.ticks);
765
873
  runtime.stop();
766
874
  const stats = runtime.getStats();
767
- console.log(
768
- `[holoscript] Complete \u2014 ${stats.tickCount} ticks, ${stats.nodesProcessed} nodes processed`
769
- );
875
+ const counters = normalizeRuntimeCounters(stats);
876
+ const sceneRuntime = runtime;
877
+ const scene = sceneRuntime.getSceneReceipt?.() ?? {
878
+ schema: "holoscript-headless-scene-receipt-unavailable-v1",
879
+ rootId: null,
880
+ objectCount: 0,
881
+ objects: []
882
+ };
883
+ const stableReceipt = {
884
+ schema: RUN_RECEIPT_SCHEMA,
885
+ ok: true,
886
+ source: {
887
+ file: path__namespace.basename(filePath),
888
+ extension: ext.toLowerCase(),
889
+ digest: sha256(source),
890
+ parsePassed: true,
891
+ topLevelNodes: ast.body?.length ?? 0
892
+ },
893
+ execution: {
894
+ target: opts.target,
895
+ profile: profile.name,
896
+ requestedTicks: opts.ticks,
897
+ counters,
898
+ scene,
899
+ policy: {
900
+ shellAllowed: opts.allowShell,
901
+ networkAllowed: opts.allowedHosts.length > 0,
902
+ allowedPathCount: opts.allowedPaths.length
903
+ }
904
+ }
905
+ };
906
+ emitRunReceipt(opts, outputPath, stableReceipt);
907
+ if (!opts.json) {
908
+ const objectCount = integerStat(scene, "objectCount") ?? 0;
909
+ console.log(
910
+ `[holoscript] Complete \u2014 ${counters.tickCount ?? "unknown"} ticks, ${objectCount} scene objects`
911
+ );
912
+ }
770
913
  if (opts.watch) {
771
914
  console.log(`[holoscript] Watching for changes... (Ctrl+C to stop)`);
772
915
  const watcher = new chunkXHIV6326_cjs.HotReloadWatcher({
@@ -781,7 +924,11 @@ async function runScript(opts) {
781
924
  console.log(`[holoscript] Re-running ${path__namespace.basename(filePath)}...`);
782
925
  try {
783
926
  const newSource = fs__namespace.readFileSync(filePath, "utf-8");
784
- const newParseResult = chunkQ4K2GEMW_cjs.parse(newSource);
927
+ const newParseResult = chunkFVNV4WHQ_cjs.parse(newSource);
928
+ if (!newParseResult.success || !newParseResult.ast) {
929
+ const parseError = summarizeRunParseErrors(newParseResult.errors)[0];
930
+ throw new Error(parseError?.message ?? "invalid HoloScript");
931
+ }
785
932
  const newAst = newParseResult.ast;
786
933
  const newRuntime = createHeadlessRuntime(newAst, {
787
934
  profile: opts.profile === "headless" ? HEADLESS_PROFILE : getProfile(opts.profile),
@@ -792,9 +939,11 @@ async function runScript(opts) {
792
939
  newRuntime.start();
793
940
  runTicks(newRuntime, opts.ticks);
794
941
  newRuntime.stop();
795
- const newStats = newRuntime.getStats();
942
+ const newStats = normalizeRuntimeCounters(
943
+ newRuntime.getStats()
944
+ );
796
945
  console.log(
797
- `[holoscript] Complete \u2014 ${newStats.tickCount} ticks, ${newStats.nodesProcessed} nodes`
946
+ `[holoscript] Complete \u2014 ${newStats.tickCount ?? "unknown"} ticks, ${newStats.nodesProcessed ?? "unknown"} nodes`
798
947
  );
799
948
  } catch (err) {
800
949
  console.error(`[holoscript] Error:`, err.message);
@@ -817,7 +966,7 @@ async function testScript(opts) {
817
966
  }
818
967
  const source = fs__namespace.readFileSync(filePath, "utf-8");
819
968
  console.log(`[holoscript test] Running tests in ${path__namespace.basename(filePath)}`);
820
- const parseResult = chunkQ4K2GEMW_cjs.parse(source);
969
+ const parseResult = chunkFVNV4WHQ_cjs.parse(source);
821
970
  const ast = parseResult.ast;
822
971
  const { createHeadlessRuntime, HEADLESS_PROFILE } = await loadEngineRuntime();
823
972
  const profile = HEADLESS_PROFILE;
@@ -900,7 +1049,7 @@ function compileScript(opts) {
900
1049
  }
901
1050
  console.log(`[holoscript compile] @gotcha check passed (no critical violations)`);
902
1051
  }
903
- const compileResult = chunkQ4K2GEMW_cjs.parse(source);
1052
+ const compileResult = chunkFVNV4WHQ_cjs.parse(source);
904
1053
  if (!compileResult.success) {
905
1054
  console.error(`[holoscript compile] Failed to parse: ${compileResult.errors?.[0]?.message}`);
906
1055
  process.exit(1);
@@ -979,7 +1128,7 @@ async function deployScript(opts) {
979
1128
  const fileName = path__namespace.basename(filePath);
980
1129
  const title = path__namespace.basename(filePath, path__namespace.extname(filePath));
981
1130
  console.log(`Parsing ${fileName}...`);
982
- const ast = chunkQ4K2GEMW_cjs.parse(source);
1131
+ const ast = chunkFVNV4WHQ_cjs.parse(source);
983
1132
  if (ast.errors && ast.errors.length > 0) {
984
1133
  console.error("Parse errors:");
985
1134
  for (const err of ast.errors) {
@@ -1344,7 +1493,7 @@ async function daemonScript(opts) {
1344
1493
  const { createDaemonActions, getDaemonFileState } = await import('@holoscript/absorb-service/daemon');
1345
1494
  const repoRoot = findGitRoot(path__namespace.dirname(filePath));
1346
1495
  const source = fs__namespace.readFileSync(filePath, "utf-8");
1347
- const parseResult = chunkQ4K2GEMW_cjs.parse(source);
1496
+ const parseResult = chunkFVNV4WHQ_cjs.parse(source);
1348
1497
  if (!parseResult.success || !parseResult.ast) {
1349
1498
  const errors = parseResult.errors?.map((e) => e.message).join(", ") || "unknown";
1350
1499
  console.error(`[daemon] Parse failed: ${errors}`);
@@ -1911,7 +2060,7 @@ async function holoMeshDaemonScript(opts) {
1911
2060
  }
1912
2061
  const rawSource = fs__namespace.readFileSync(filePath, "utf-8");
1913
2062
  const source = rawSource.replace(/^#(version|target|mode)\s+.*/gm, "");
1914
- const parseResult = chunkQ4K2GEMW_cjs.parse(source);
2063
+ const parseResult = chunkFVNV4WHQ_cjs.parse(source);
1915
2064
  if (!parseResult.success || !parseResult.ast) {
1916
2065
  const errors = parseResult.errors?.map((e) => e.message).join(", ") || "unknown";
1917
2066
  console.error(`[holomesh-daemon] Parse failed: ${errors}`);
@@ -1979,7 +2128,7 @@ async function holoMeshDaemonScript(opts) {
1979
2128
  const meshConfig = {
1980
2129
  orchestratorUrl: process.env.MCP_ORCHESTRATOR_URL || "https://mcp-orchestrator-production-45f9.up.railway.app",
1981
2130
  apiKey: process.env.HOLOSCRIPT_API_KEY,
1982
- workspace: process.env.HOLOMESH_WORKSPACE || "ai-ecosystem",
2131
+ workspace: process.env.HOLOMESH_WORKSPACE || "default",
1983
2132
  agentName: process.env.HOLOMESH_AGENT_NAME || "holomesh-agent",
1984
2133
  discoveryIntervalMs: 5 * 60 * 1e3,
1985
2134
  inboxIntervalMs: 60 * 1e3,
@@ -2234,7 +2383,7 @@ function showHelp() {
2234
2383
  HoloScript CLI \u2014 Headless Runner v5.0
2235
2384
 
2236
2385
  Usage:
2237
- holoscript run <file> [--target node|python|ros2] [--profile headless|minimal|full] [--ticks <n>] [--daemon] [--debug]
2386
+ holoscript run <file> [--target node|python|ros2] [--profile headless|minimal|full] [--ticks <n>] [--output <receipt.json>] [--json] [--daemon] [--debug]
2238
2387
  holoscript test <file> [--debug]
2239
2388
  holoscript compile <file> [--target node|python] [--output <path>] [--enforce-gotchas]
2240
2389
  holoscript deploy <file> [--share] [--publish] [--price <eth>] [--mint-nft] [--wallet-key <key>] [--author <name>] [--license <type>] [--server <url>]