@holoscript/core 7.0.0 → 8.0.1

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 (350) hide show
  1. package/README.md +4 -4
  2. package/bin/holoscript.cjs +3 -0
  3. package/dist/GLTFPipeline-N6B6PJ6G.cjs +38 -0
  4. package/dist/GLTFPipeline-P3WMNYCN.js +17 -0
  5. package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
  6. package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
  7. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  8. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  9. package/dist/HoloScriptRuntime-CBYJX3LZ.js +10 -0
  10. package/dist/HoloScriptRuntime-VJ374RER.cjs +19 -0
  11. package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
  12. package/dist/USDZExporter-D2HQLQYK.js +1035 -0
  13. package/dist/agents/index.cjs +19 -0
  14. package/dist/agents/index.d.ts +100 -0
  15. package/dist/agents/index.js +17 -0
  16. package/dist/chunk-2BSMSUCE.js +1941 -0
  17. package/dist/chunk-2IWC4FP7.cjs +1189 -0
  18. package/dist/chunk-2M2DPHKB.js +762 -0
  19. package/dist/chunk-2X7NGX3M.js +2426 -0
  20. package/dist/chunk-2YSNA2F2.cjs +1274 -0
  21. package/dist/chunk-3FOKASKO.cjs +348 -0
  22. package/dist/chunk-3WZEJHUQ.cjs +116 -0
  23. package/dist/chunk-4C57PR42.js +468 -0
  24. package/dist/chunk-4GU5GCIY.js +1384 -0
  25. package/dist/chunk-4N4SXXWF.js +769 -0
  26. package/dist/chunk-4PDEPEQW.cjs +41 -0
  27. package/dist/chunk-4R6SBXDB.js +45 -0
  28. package/dist/chunk-4SDKXQ4C.js +811 -0
  29. package/dist/chunk-4V2E7U7Q.cjs +2015 -0
  30. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  31. package/dist/chunk-5GLCTO44.js +161 -0
  32. package/dist/chunk-5H2G27PK.cjs +627 -0
  33. package/dist/chunk-5JEU52DW.js +382 -0
  34. package/dist/chunk-5NWINHR5.cjs +689 -0
  35. package/dist/chunk-5S7RKFGR.cjs +446 -0
  36. package/dist/chunk-5WUNN6ZN.cjs +428 -0
  37. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  38. package/dist/chunk-6EX3I5P4.cjs +130 -0
  39. package/dist/chunk-6Q7RC2MK.cjs +1418 -0
  40. package/dist/chunk-7H33U5SM.cjs +413 -0
  41. package/dist/chunk-7M3PNU2M.cjs +672 -0
  42. package/dist/chunk-7T25IEZ2.js +449 -0
  43. package/dist/chunk-7V4JI5TB.cjs +6947 -0
  44. package/dist/chunk-A6KINLZJ.js +236 -0
  45. package/dist/chunk-ADADVMXY.js +404 -0
  46. package/dist/chunk-AIA52I7T.cjs +543 -0
  47. package/dist/chunk-ALC6K7GL.cjs +4402 -0
  48. package/dist/chunk-ANXZFVY2.js +113 -0
  49. package/dist/chunk-AOVGZ25K.cjs +56583 -0
  50. package/dist/chunk-AVJHHUC5.cjs +718 -0
  51. package/dist/chunk-BGY3SDG3.js +4396 -0
  52. package/dist/chunk-BOVPWH4H.js +3857 -0
  53. package/dist/chunk-BRQJKJGT.cjs +20 -0
  54. package/dist/chunk-C37BHB7N.cjs +636 -0
  55. package/dist/chunk-CBJY23VL.js +126 -0
  56. package/dist/chunk-CCATWPXM.js +778 -0
  57. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  58. package/dist/chunk-CMT5NMMS.js +669 -0
  59. package/dist/chunk-CR4FMIWL.cjs +1049 -0
  60. package/dist/chunk-CR7XRXRN.cjs +639 -0
  61. package/dist/chunk-CSD27UNQ.js +2176 -0
  62. package/dist/chunk-D3STJ56J.js +714 -0
  63. package/dist/chunk-DAJXW4KX.js +725 -0
  64. package/dist/chunk-DHO2YRIM.js +756 -0
  65. package/dist/chunk-DTGBOSEM.cjs +319 -0
  66. package/dist/chunk-E6XXE66V.js +2252 -0
  67. package/dist/chunk-E7JP3BS3.cjs +61 -0
  68. package/dist/chunk-EKBKLK7P.js +1169 -0
  69. package/dist/chunk-EKYL4PE3.cjs +404 -0
  70. package/dist/chunk-EXKSFGSX.cjs +274 -0
  71. package/dist/chunk-EXUP2BUM.cjs +1173 -0
  72. package/dist/chunk-FDSGHPAK.js +130 -0
  73. package/dist/chunk-FEWUHQNM.cjs +144 -0
  74. package/dist/chunk-FFAOS5HQ.js +70 -0
  75. package/dist/chunk-FGGJQRLZ.js +270 -0
  76. package/dist/chunk-FHP6LXJS.js +415 -0
  77. package/dist/chunk-FJPADH77.cjs +666 -0
  78. package/dist/chunk-FL33V6U7.js +421 -0
  79. package/dist/chunk-FYSPZT4V.cjs +169 -0
  80. package/dist/chunk-GIOYPNTH.js +5575 -0
  81. package/dist/chunk-GJNCFRJU.cjs +125 -0
  82. package/dist/chunk-GMP623FG.cjs +1508 -0
  83. package/dist/chunk-GQHQOPXZ.cjs +5580 -0
  84. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  85. package/dist/chunk-GYZE55MO.js +2007 -0
  86. package/dist/chunk-GZG4KA4E.js +529 -0
  87. package/dist/chunk-H652NHX5.js +600 -0
  88. package/dist/chunk-HCCQLAA4.cjs +74 -0
  89. package/dist/chunk-HKEXJUWS.cjs +4007 -0
  90. package/dist/chunk-HNDK4IQU.cjs +5737 -0
  91. package/dist/chunk-HR2OSYVQ.js +56165 -0
  92. package/dist/chunk-HYNTS5CP.js +422 -0
  93. package/dist/chunk-I6XZ5DZF.cjs +488 -0
  94. package/dist/chunk-ILRBGFVD.cjs +72 -0
  95. package/dist/chunk-IUDGEUDO.cjs +1409 -0
  96. package/dist/chunk-IUTY5WQ2.cjs +424 -0
  97. package/dist/chunk-IVY74O6C.js +247 -0
  98. package/dist/chunk-IWC5DM2M.cjs +611 -0
  99. package/dist/chunk-J32ZJZJH.js +554 -0
  100. package/dist/chunk-J52VSAQ7.js +6884 -0
  101. package/dist/chunk-J6M4FPK5.js +421 -0
  102. package/dist/chunk-J7XZV333.js +844 -0
  103. package/dist/chunk-JBNDTXXV.cjs +2433 -0
  104. package/dist/chunk-JC5YBPSF.cjs +984 -0
  105. package/dist/chunk-JD7CIZ33.js +1949 -0
  106. package/dist/chunk-JIBL5LRK.js +4287 -0
  107. package/dist/chunk-JIYN45TV.cjs +2525 -0
  108. package/dist/chunk-K574J76X.cjs +457 -0
  109. package/dist/chunk-KHDZJE5D.cjs +2196 -0
  110. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  111. package/dist/chunk-KKP7JKN4.cjs +6002 -0
  112. package/dist/chunk-KPJL34Y7.cjs +186 -0
  113. package/dist/chunk-KQCN6AKJ.cjs +3042 -0
  114. package/dist/chunk-L5LKKENW.cjs +424 -0
  115. package/dist/chunk-LHAXPADA.js +882 -0
  116. package/dist/chunk-LM2VU56C.cjs +37 -0
  117. package/dist/chunk-M56JSP4A.js +400 -0
  118. package/dist/chunk-MBOOR7X4.js +18 -0
  119. package/dist/chunk-MQWAT42R.cjs +4310 -0
  120. package/dist/chunk-MXFUTKCO.js +56 -0
  121. package/dist/chunk-MYY4PMWX.cjs +264 -0
  122. package/dist/chunk-N75IH2HY.js +258 -0
  123. package/dist/chunk-NCWCUZNS.cjs +72 -0
  124. package/dist/chunk-NG77ATEW.cjs +778 -0
  125. package/dist/chunk-NW5G5FBQ.js +215 -0
  126. package/dist/chunk-OBIYPYYS.cjs +1993 -0
  127. package/dist/chunk-OH2FAIVU.js +608 -0
  128. package/dist/chunk-OIQYIIO3.cjs +473 -0
  129. package/dist/chunk-OL46QLBJ.js +61 -0
  130. package/dist/chunk-OMXII44L.js +5386 -0
  131. package/dist/chunk-OSYNRVOV.cjs +243 -0
  132. package/dist/chunk-PGANYCAG.cjs +220 -0
  133. package/dist/chunk-PHENW4MQ.js +65 -0
  134. package/dist/chunk-PY37LNDP.js +686 -0
  135. package/dist/chunk-Q56TT7IL.js +483 -0
  136. package/dist/chunk-QD32ADK6.js +1046 -0
  137. package/dist/chunk-QPOQ7VPI.js +1491 -0
  138. package/dist/chunk-QPSKHBJP.js +5963 -0
  139. package/dist/chunk-QXH7QDSZ.js +1989 -0
  140. package/dist/chunk-R24NNAEG.js +1399 -0
  141. package/dist/chunk-R75BSDH7.cjs +50 -0
  142. package/dist/chunk-RARB3MBR.js +207 -0
  143. package/dist/chunk-ROHLEP2W.cjs +847 -0
  144. package/dist/chunk-S3MDHNKB.cjs +490 -0
  145. package/dist/chunk-S6YWHCKV.cjs +410 -0
  146. package/dist/chunk-SIEXCILW.js +229 -0
  147. package/dist/chunk-SLU6UPJI.cjs +410 -0
  148. package/dist/chunk-SMIWS6DE.cjs +212 -0
  149. package/dist/chunk-T5J7ZKP3.cjs +4885 -0
  150. package/dist/chunk-TDCNJHWO.js +341 -0
  151. package/dist/chunk-TG7O4WBC.js +406 -0
  152. package/dist/chunk-THCK6ECW.js +2085 -0
  153. package/dist/chunk-TJHVSBP2.js +439 -0
  154. package/dist/chunk-TVHSPJ4N.cjs +606 -0
  155. package/dist/chunk-TWUXUCEW.cjs +781 -0
  156. package/dist/chunk-U44IKGG7.cjs +5390 -0
  157. package/dist/chunk-UFZZ7TSN.cjs +886 -0
  158. package/dist/chunk-UJXISJBN.js +487 -0
  159. package/dist/chunk-UOIGFQXC.cjs +9750 -0
  160. package/dist/chunk-URG2SJLK.js +2521 -0
  161. package/dist/chunk-UWJHCOH2.js +623 -0
  162. package/dist/chunk-V6MKC2FZ.js +979 -0
  163. package/dist/chunk-VJ3L7CHT.cjs +169 -0
  164. package/dist/chunk-VMLKSV26.js +1216 -0
  165. package/dist/chunk-VVKVQZI6.js +55 -0
  166. package/dist/chunk-W6RW64BB.cjs +1219 -0
  167. package/dist/chunk-WKX5AMOY.js +309 -0
  168. package/dist/chunk-WNNE3PO3.js +34 -0
  169. package/dist/chunk-WRKUDAZJ.js +3038 -0
  170. package/dist/chunk-WRLUBRKS.cjs +1943 -0
  171. package/dist/chunk-WRNEH5MO.js +3169 -0
  172. package/dist/chunk-WRWEX5ZF.js +658 -0
  173. package/dist/chunk-X3GJPRVK.cjs +3246 -0
  174. package/dist/chunk-X3UVCWNL.cjs +2257 -0
  175. package/dist/chunk-XB274MW5.cjs +814 -0
  176. package/dist/chunk-XHIV6326.cjs +793 -0
  177. package/dist/chunk-XIVIE43A.cjs +729 -0
  178. package/dist/chunk-XJAN7CZG.cjs +432 -0
  179. package/dist/chunk-XKTPFXGA.js +164 -0
  180. package/dist/chunk-XL6INWKT.js +121 -0
  181. package/dist/chunk-XSFNHP2E.js +632 -0
  182. package/dist/chunk-XT6JY5W5.js +9684 -0
  183. package/dist/chunk-XUILI4KB.cjs +430 -0
  184. package/dist/chunk-YF2I3MV3.js +46 -0
  185. package/dist/chunk-YIMN575O.js +4847 -0
  186. package/dist/chunk-YIVFJNYV.js +176 -0
  187. package/dist/chunk-YKGPCZEE.cjs +237 -0
  188. package/dist/chunk-YN2YWTXW.js +5731 -0
  189. package/dist/chunk-YN6V7R3L.cjs +327 -0
  190. package/dist/chunk-YQELFNJV.js +39 -0
  191. package/dist/chunk-YVD3CSO3.js +1183 -0
  192. package/dist/chunk-YVOAF4ML.js +623 -0
  193. package/dist/chunk-YWOBW2PV.cjs +759 -0
  194. package/dist/chunk-YYXH45E2.js +426 -0
  195. package/dist/chunk-ZDSYWBIE.cjs +69 -0
  196. package/dist/chunk-ZU7NIRT6.js +325 -0
  197. package/dist/chunk-ZZ7RO2UQ.js +1243 -0
  198. package/dist/cli/holoscript-runner.cjs +2255 -0
  199. package/dist/cli/holoscript-runner.js +2230 -0
  200. package/dist/codebase/index.cjs +336 -0
  201. package/dist/codebase/index.js +331 -0
  202. package/dist/compiler/agent-inference.cjs +31 -0
  203. package/dist/compiler/agent-inference.js +8 -0
  204. package/dist/compiler/android-xr.cjs +24 -0
  205. package/dist/compiler/android-xr.js +14 -0
  206. package/dist/compiler/android.cjs +24 -0
  207. package/dist/compiler/android.js +14 -0
  208. package/dist/compiler/ar.cjs +23 -0
  209. package/dist/compiler/ar.js +11 -0
  210. package/dist/compiler/babylon.cjs +21 -0
  211. package/dist/compiler/babylon.js +15 -0
  212. package/dist/compiler/business-quest.cjs +43 -0
  213. package/dist/compiler/business-quest.js +4 -0
  214. package/dist/compiler/coco.cjs +27 -0
  215. package/dist/compiler/coco.js +4 -0
  216. package/dist/compiler/context.cjs +25 -0
  217. package/dist/compiler/context.d.ts +28 -0
  218. package/dist/compiler/context.js +8 -0
  219. package/dist/compiler/domain-block-utils.cjs +609 -0
  220. package/dist/compiler/domain-block-utils.js +11 -0
  221. package/dist/compiler/dtdl.cjs +27 -0
  222. package/dist/compiler/dtdl.js +11 -0
  223. package/dist/compiler/gltf-pipeline.cjs +39 -0
  224. package/dist/compiler/gltf-pipeline.js +4 -0
  225. package/dist/compiler/godot.cjs +18 -0
  226. package/dist/compiler/godot.js +12 -0
  227. package/dist/compiler/incremental.cjs +34 -0
  228. package/dist/compiler/incremental.js +9 -0
  229. package/dist/compiler/index.cjs +5408 -0
  230. package/dist/compiler/index.d.ts +334 -21
  231. package/dist/compiler/index.js +5069 -0
  232. package/dist/compiler/ios.cjs +23 -0
  233. package/dist/compiler/ios.js +13 -0
  234. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  235. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  236. package/dist/compiler/llm-provider-capabilities.js +8 -0
  237. package/dist/compiler/multi-layer.cjs +24 -0
  238. package/dist/compiler/multi-layer.js +15 -0
  239. package/dist/compiler/nodetoy.cjs +23 -0
  240. package/dist/compiler/nodetoy.d.ts +69 -0
  241. package/dist/compiler/nodetoy.js +4 -0
  242. package/dist/compiler/openxr.cjs +19 -0
  243. package/dist/compiler/openxr.js +13 -0
  244. package/dist/compiler/playcanvas.cjs +19 -0
  245. package/dist/compiler/playcanvas.js +13 -0
  246. package/dist/compiler/r3f.cjs +39 -0
  247. package/dist/compiler/r3f.d.ts +22 -0
  248. package/dist/compiler/r3f.js +17 -0
  249. package/dist/compiler/remotion.cjs +23 -0
  250. package/dist/compiler/remotion.js +4 -0
  251. package/dist/compiler/reproducibility.cjs +39 -0
  252. package/dist/compiler/reproducibility.js +4 -0
  253. package/dist/compiler/sdf.cjs +24 -0
  254. package/dist/compiler/sdf.js +12 -0
  255. package/dist/compiler/semantic-scene.cjs +31 -0
  256. package/dist/compiler/semantic-scene.js +4 -0
  257. package/dist/compiler/state.cjs +21 -0
  258. package/dist/compiler/state.js +11 -0
  259. package/dist/compiler/trait-composition.cjs +30 -0
  260. package/dist/compiler/trait-composition.js +9 -0
  261. package/dist/compiler/unity.cjs +19 -0
  262. package/dist/compiler/unity.js +13 -0
  263. package/dist/compiler/unreal.cjs +23 -0
  264. package/dist/compiler/unreal.js +13 -0
  265. package/dist/compiler/urdf.cjs +52 -0
  266. package/dist/compiler/urdf.js +12 -0
  267. package/dist/compiler/usd-physics.cjs +26 -0
  268. package/dist/compiler/usd-physics.js +9 -0
  269. package/dist/compiler/visionos.cjs +19 -0
  270. package/dist/compiler/visionos.js +13 -0
  271. package/dist/compiler/vrchat.cjs +22 -0
  272. package/dist/compiler/vrchat.js +12 -0
  273. package/dist/compiler/vrr.cjs +24 -0
  274. package/dist/compiler/vrr.js +12 -0
  275. package/dist/compiler/wasm.cjs +36 -0
  276. package/dist/compiler/wasm.js +12 -0
  277. package/dist/compiler/webgpu.cjs +18 -0
  278. package/dist/compiler/webgpu.js +12 -0
  279. package/dist/coordinators/index.cjs +1266 -0
  280. package/dist/coordinators/index.d.ts +72 -1
  281. package/dist/coordinators/index.js +1259 -0
  282. package/dist/debugger.cjs +24 -0
  283. package/dist/debugger.js +11 -0
  284. package/dist/dist-ACXG6IH5.cjs +3113 -0
  285. package/dist/dist-VD4L6V7Q.js +3076 -0
  286. package/dist/entries/interop.cjs +64 -0
  287. package/dist/entries/interop.js +7 -0
  288. package/dist/entries/scripting.cjs +55 -0
  289. package/dist/entries/scripting.js +10 -0
  290. package/dist/hololand/index.cjs +146 -0
  291. package/dist/hololand/index.d.ts +70 -0
  292. package/dist/hololand/index.js +5 -0
  293. package/dist/index.cjs +44660 -0
  294. package/dist/index.d.ts +978 -21
  295. package/dist/index.js +41422 -0
  296. package/dist/math/tropical-spmv.cjs +45 -0
  297. package/dist/math/tropical-spmv.js +4 -0
  298. package/dist/math/vec3.cjs +57 -0
  299. package/dist/math/vec3.js +4 -0
  300. package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
  301. package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
  302. package/dist/paper-0c-spike/index.cjs +150 -0
  303. package/dist/paper-0c-spike/index.js +141 -0
  304. package/dist/parser.cjs +61 -0
  305. package/dist/parser.d.ts +11 -0
  306. package/dist/parser.js +12 -0
  307. package/dist/playwright-3AT3AKTV.cjs +98673 -0
  308. package/dist/playwright-VZPDVUEQ.js +98660 -0
  309. package/dist/reconstruction/index.cjs +153 -0
  310. package/dist/reconstruction/index.d.ts +29 -2
  311. package/dist/reconstruction/index.js +8 -0
  312. package/dist/runtime.cjs +316 -0
  313. package/dist/runtime.d.ts +61 -0
  314. package/dist/runtime.js +31 -0
  315. package/dist/self-improvement/index.cjs +563 -0
  316. package/dist/self-improvement/index.js +545 -0
  317. package/dist/src-4ROC227P.cjs +2094 -0
  318. package/dist/src-HCCCSYP7.js +2073 -0
  319. package/dist/storage/index.cjs +38 -0
  320. package/dist/storage/index.js +5 -0
  321. package/dist/testing.cjs +25 -0
  322. package/dist/testing.d.ts +70 -0
  323. package/dist/testing.js +4 -0
  324. package/dist/traitDocs/traitDocs.cjs +33 -0
  325. package/dist/traitDocs/traitDocs.js +7 -0
  326. package/dist/traits/botanical-lotus.cjs +177 -0
  327. package/dist/traits/botanical-lotus.d.ts +502 -0
  328. package/dist/traits/botanical-lotus.js +7 -0
  329. package/dist/traits/engines/index.cjs +520 -0
  330. package/dist/traits/engines/index.js +380 -0
  331. package/dist/traits/index.cjs +24548 -0
  332. package/dist/traits/index.d.ts +171 -35
  333. package/dist/traits/index.js +21638 -0
  334. package/dist/traits/simulation-solver-factory.cjs +13 -0
  335. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  336. package/dist/traits/simulation-solver-factory.js +4 -0
  337. package/dist/traits/webcam-gaze.cjs +35 -0
  338. package/dist/traits/webcam-gaze.d.ts +17 -0
  339. package/dist/traits/webcam-gaze.js +4 -0
  340. package/dist/type-checker.cjs +19 -0
  341. package/dist/type-checker.js +6 -0
  342. package/dist/world/index.cjs +947 -0
  343. package/dist/world/index.d.ts +147 -0
  344. package/dist/world/index.js +939 -0
  345. package/dist/world-model/index.cjs +1446 -0
  346. package/dist/world-model/index.d.ts +119 -0
  347. package/dist/world-model/index.js +1414 -0
  348. package/dist/wot/index.cjs +29 -0
  349. package/dist/wot/index.js +4 -0
  350. package/package.json +93 -49
@@ -0,0 +1,130 @@
1
+ import { __esm } from './chunk-OL46QLBJ.js';
2
+
3
+ // src/compiler/AndroidKotlinHelpers.ts
4
+ function toKotlinType(value) {
5
+ if (value === null) return "Any?";
6
+ if (typeof value === "boolean") return "Boolean";
7
+ if (typeof value === "number") return Number.isInteger(value) ? "Int" : "Float";
8
+ if (typeof value === "string") return "String";
9
+ if (Array.isArray(value)) {
10
+ if (value.length === 3 && value.every((v) => typeof v === "number")) return "Vector3";
11
+ return "List<Any>";
12
+ }
13
+ return "Any";
14
+ }
15
+ function toKotlinValue(value, escapeFn) {
16
+ if (value === null) return "null";
17
+ if (typeof value === "boolean") return value ? "true" : "false";
18
+ if (typeof value === "number") {
19
+ return Number.isInteger(value) ? `${value}` : `${value}f`;
20
+ }
21
+ if (typeof value === "string") return `"${escapeFn(value, "Kotlin")}"`;
22
+ if (Array.isArray(value)) {
23
+ if (value.length === 3 && value.every((v) => typeof v === "number")) {
24
+ return `Vector3(${value[0]}f, ${value[1]}f, ${value[2]}f)`;
25
+ }
26
+ return `listOf(${value.map((v) => toKotlinValue(v, escapeFn)).join(", ")})`;
27
+ }
28
+ return "null";
29
+ }
30
+ function sanitizeNameCapitalized(name) {
31
+ const result = name.replace(/[^a-zA-Z0-9_]/g, "_").replace(/^[0-9]/, "_$&");
32
+ return result.charAt(0).toUpperCase() + result.slice(1);
33
+ }
34
+ function sanitizeName(name) {
35
+ return name.replace(/[^a-zA-Z0-9_]/g, "_");
36
+ }
37
+ function toAndroidColor(value) {
38
+ if (!value) return "android.graphics.Color.BLUE";
39
+ if (typeof value === "string") {
40
+ if (value.startsWith("#")) {
41
+ return `android.graphics.Color.parseColor("${value}")`;
42
+ }
43
+ return NAMED_COLORS[value.toLowerCase()] || "android.graphics.Color.BLUE";
44
+ }
45
+ if (Array.isArray(value) && value.length >= 3) {
46
+ const [r, g, b, a = 1] = value;
47
+ return `android.graphics.Color.argb(${Math.round(a * 255)}, ${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(b * 255)})`;
48
+ }
49
+ return "android.graphics.Color.BLUE";
50
+ }
51
+ function toKotlinColor(hex) {
52
+ if (typeof hex === "string" && hex.startsWith("#")) {
53
+ const raw = hex.slice(1);
54
+ if (raw.length === 6) return `Color(0xFF${raw.toUpperCase()})`;
55
+ if (raw.length === 8) {
56
+ const [rr, gg, bb, aa] = [
57
+ raw.substring(0, 2),
58
+ raw.substring(2, 4),
59
+ raw.substring(4, 6),
60
+ raw.substring(6, 8)
61
+ ];
62
+ return `Color(0x${aa.toUpperCase()}${rr.toUpperCase()}${gg.toUpperCase()}${bb.toUpperCase()})`;
63
+ }
64
+ }
65
+ return "Color.White";
66
+ }
67
+ function getSceneformGeometry(meshType) {
68
+ return SCENEFORM_GEOMETRIES[meshType] || DEFAULT_GEOMETRY;
69
+ }
70
+ function mapShapeToFilament(type) {
71
+ return FILAMENT_SHAPES[type] ?? `Unknown("${type}")`;
72
+ }
73
+ function findObjProp(obj, key) {
74
+ return obj.properties?.find((p) => p.key === key)?.value;
75
+ }
76
+ function compositionHasTrait(composition, traitName) {
77
+ for (const obj of composition.objects || []) {
78
+ for (const trait of obj.traits || []) {
79
+ const name = typeof trait === "string" ? trait : trait.name;
80
+ if (name === traitName) return true;
81
+ }
82
+ }
83
+ return false;
84
+ }
85
+ function compositionUsesArCoreDepthTraits(composition) {
86
+ const depthTraits = /* @__PURE__ */ new Set(["occlusion_mesh", "environment_probe", "spatial_awareness"]);
87
+ return composition.objects?.some((o) => o.traits?.some((t) => depthTraits.has(t.name))) ?? false;
88
+ }
89
+ function toKotlinFloat3(arr) {
90
+ if (Array.isArray(arr) && arr.length >= 3) return `Float3(${arr[0]}f, ${arr[1]}f, ${arr[2]}f)`;
91
+ if (Array.isArray(arr) && arr.length >= 1) return `Float3(${arr[0]}f, ${arr[0]}f, ${arr[0]}f)`;
92
+ const v = typeof arr === "number" ? arr : 0;
93
+ return `Float3(${v}f, ${v}f, ${v}f)`;
94
+ }
95
+ var NAMED_COLORS, SCENEFORM_GEOMETRIES, DEFAULT_GEOMETRY, FILAMENT_SHAPES;
96
+ var init_AndroidKotlinHelpers = __esm({
97
+ "src/compiler/AndroidKotlinHelpers.ts"() {
98
+ NAMED_COLORS = {
99
+ red: "android.graphics.Color.RED",
100
+ green: "android.graphics.Color.GREEN",
101
+ blue: "android.graphics.Color.BLUE",
102
+ white: "android.graphics.Color.WHITE",
103
+ black: "android.graphics.Color.BLACK",
104
+ yellow: "android.graphics.Color.YELLOW",
105
+ cyan: "android.graphics.Color.CYAN",
106
+ magenta: "android.graphics.Color.MAGENTA"
107
+ };
108
+ SCENEFORM_GEOMETRIES = {
109
+ cube: "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)",
110
+ box: "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)",
111
+ sphere: "ShapeFactory.makeSphere(0.05f, Vector3.zero(), material)",
112
+ cylinder: "ShapeFactory.makeCylinder(0.05f, 0.1f, Vector3.zero(), material)"
113
+ };
114
+ DEFAULT_GEOMETRY = "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)";
115
+ FILAMENT_SHAPES = {
116
+ cube: "BoxShape",
117
+ box: "BoxShape",
118
+ sphere: "IcoSphereShape",
119
+ cylinder: "CylinderShape",
120
+ cone: "ConeShape",
121
+ plane: "QuadShape",
122
+ torus: "CustomRingGeometry",
123
+ capsule: "CapsuleShape"
124
+ };
125
+ }
126
+ });
127
+
128
+ export { compositionHasTrait, compositionUsesArCoreDepthTraits, findObjProp, getSceneformGeometry, init_AndroidKotlinHelpers, mapShapeToFilament, sanitizeName, sanitizeNameCapitalized, toAndroidColor, toKotlinColor, toKotlinFloat3, toKotlinType, toKotlinValue };
129
+ //# sourceMappingURL=chunk-FDSGHPAK.js.map
130
+ //# sourceMappingURL=chunk-FDSGHPAK.js.map
@@ -0,0 +1,144 @@
1
+ 'use strict';
2
+
3
+ var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
4
+
5
+ // src/compiler/AndroidKotlinHelpers.ts
6
+ function toKotlinType(value) {
7
+ if (value === null) return "Any?";
8
+ if (typeof value === "boolean") return "Boolean";
9
+ if (typeof value === "number") return Number.isInteger(value) ? "Int" : "Float";
10
+ if (typeof value === "string") return "String";
11
+ if (Array.isArray(value)) {
12
+ if (value.length === 3 && value.every((v) => typeof v === "number")) return "Vector3";
13
+ return "List<Any>";
14
+ }
15
+ return "Any";
16
+ }
17
+ function toKotlinValue(value, escapeFn) {
18
+ if (value === null) return "null";
19
+ if (typeof value === "boolean") return value ? "true" : "false";
20
+ if (typeof value === "number") {
21
+ return Number.isInteger(value) ? `${value}` : `${value}f`;
22
+ }
23
+ if (typeof value === "string") return `"${escapeFn(value, "Kotlin")}"`;
24
+ if (Array.isArray(value)) {
25
+ if (value.length === 3 && value.every((v) => typeof v === "number")) {
26
+ return `Vector3(${value[0]}f, ${value[1]}f, ${value[2]}f)`;
27
+ }
28
+ return `listOf(${value.map((v) => toKotlinValue(v, escapeFn)).join(", ")})`;
29
+ }
30
+ return "null";
31
+ }
32
+ function sanitizeNameCapitalized(name) {
33
+ const result = name.replace(/[^a-zA-Z0-9_]/g, "_").replace(/^[0-9]/, "_$&");
34
+ return result.charAt(0).toUpperCase() + result.slice(1);
35
+ }
36
+ function sanitizeName(name) {
37
+ return name.replace(/[^a-zA-Z0-9_]/g, "_");
38
+ }
39
+ function toAndroidColor(value) {
40
+ if (!value) return "android.graphics.Color.BLUE";
41
+ if (typeof value === "string") {
42
+ if (value.startsWith("#")) {
43
+ return `android.graphics.Color.parseColor("${value}")`;
44
+ }
45
+ return NAMED_COLORS[value.toLowerCase()] || "android.graphics.Color.BLUE";
46
+ }
47
+ if (Array.isArray(value) && value.length >= 3) {
48
+ const [r, g, b, a = 1] = value;
49
+ return `android.graphics.Color.argb(${Math.round(a * 255)}, ${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(b * 255)})`;
50
+ }
51
+ return "android.graphics.Color.BLUE";
52
+ }
53
+ function toKotlinColor(hex) {
54
+ if (typeof hex === "string" && hex.startsWith("#")) {
55
+ const raw = hex.slice(1);
56
+ if (raw.length === 6) return `Color(0xFF${raw.toUpperCase()})`;
57
+ if (raw.length === 8) {
58
+ const [rr, gg, bb, aa] = [
59
+ raw.substring(0, 2),
60
+ raw.substring(2, 4),
61
+ raw.substring(4, 6),
62
+ raw.substring(6, 8)
63
+ ];
64
+ return `Color(0x${aa.toUpperCase()}${rr.toUpperCase()}${gg.toUpperCase()}${bb.toUpperCase()})`;
65
+ }
66
+ }
67
+ return "Color.White";
68
+ }
69
+ function getSceneformGeometry(meshType) {
70
+ return SCENEFORM_GEOMETRIES[meshType] || DEFAULT_GEOMETRY;
71
+ }
72
+ function mapShapeToFilament(type) {
73
+ return FILAMENT_SHAPES[type] ?? `Unknown("${type}")`;
74
+ }
75
+ function findObjProp(obj, key) {
76
+ return obj.properties?.find((p) => p.key === key)?.value;
77
+ }
78
+ function compositionHasTrait(composition, traitName) {
79
+ for (const obj of composition.objects || []) {
80
+ for (const trait of obj.traits || []) {
81
+ const name = typeof trait === "string" ? trait : trait.name;
82
+ if (name === traitName) return true;
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ function compositionUsesArCoreDepthTraits(composition) {
88
+ const depthTraits = /* @__PURE__ */ new Set(["occlusion_mesh", "environment_probe", "spatial_awareness"]);
89
+ return composition.objects?.some((o) => o.traits?.some((t) => depthTraits.has(t.name))) ?? false;
90
+ }
91
+ function toKotlinFloat3(arr) {
92
+ if (Array.isArray(arr) && arr.length >= 3) return `Float3(${arr[0]}f, ${arr[1]}f, ${arr[2]}f)`;
93
+ if (Array.isArray(arr) && arr.length >= 1) return `Float3(${arr[0]}f, ${arr[0]}f, ${arr[0]}f)`;
94
+ const v = typeof arr === "number" ? arr : 0;
95
+ return `Float3(${v}f, ${v}f, ${v}f)`;
96
+ }
97
+ var NAMED_COLORS, SCENEFORM_GEOMETRIES, DEFAULT_GEOMETRY, FILAMENT_SHAPES;
98
+ var init_AndroidKotlinHelpers = chunkHCCQLAA4_cjs.__esm({
99
+ "src/compiler/AndroidKotlinHelpers.ts"() {
100
+ NAMED_COLORS = {
101
+ red: "android.graphics.Color.RED",
102
+ green: "android.graphics.Color.GREEN",
103
+ blue: "android.graphics.Color.BLUE",
104
+ white: "android.graphics.Color.WHITE",
105
+ black: "android.graphics.Color.BLACK",
106
+ yellow: "android.graphics.Color.YELLOW",
107
+ cyan: "android.graphics.Color.CYAN",
108
+ magenta: "android.graphics.Color.MAGENTA"
109
+ };
110
+ SCENEFORM_GEOMETRIES = {
111
+ cube: "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)",
112
+ box: "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)",
113
+ sphere: "ShapeFactory.makeSphere(0.05f, Vector3.zero(), material)",
114
+ cylinder: "ShapeFactory.makeCylinder(0.05f, 0.1f, Vector3.zero(), material)"
115
+ };
116
+ DEFAULT_GEOMETRY = "ShapeFactory.makeCube(Vector3(0.1f, 0.1f, 0.1f), Vector3.zero(), material)";
117
+ FILAMENT_SHAPES = {
118
+ cube: "BoxShape",
119
+ box: "BoxShape",
120
+ sphere: "IcoSphereShape",
121
+ cylinder: "CylinderShape",
122
+ cone: "ConeShape",
123
+ plane: "QuadShape",
124
+ torus: "CustomRingGeometry",
125
+ capsule: "CapsuleShape"
126
+ };
127
+ }
128
+ });
129
+
130
+ exports.compositionHasTrait = compositionHasTrait;
131
+ exports.compositionUsesArCoreDepthTraits = compositionUsesArCoreDepthTraits;
132
+ exports.findObjProp = findObjProp;
133
+ exports.getSceneformGeometry = getSceneformGeometry;
134
+ exports.init_AndroidKotlinHelpers = init_AndroidKotlinHelpers;
135
+ exports.mapShapeToFilament = mapShapeToFilament;
136
+ exports.sanitizeName = sanitizeName;
137
+ exports.sanitizeNameCapitalized = sanitizeNameCapitalized;
138
+ exports.toAndroidColor = toAndroidColor;
139
+ exports.toKotlinColor = toKotlinColor;
140
+ exports.toKotlinFloat3 = toKotlinFloat3;
141
+ exports.toKotlinType = toKotlinType;
142
+ exports.toKotlinValue = toKotlinValue;
143
+ //# sourceMappingURL=chunk-FEWUHQNM.cjs.map
144
+ //# sourceMappingURL=chunk-FEWUHQNM.cjs.map
@@ -0,0 +1,70 @@
1
+ import { init_VRRCompiler, VRRCompiler } from './chunk-4SDKXQ4C.js';
2
+ import { init_ARCompiler, ARCompiler } from './chunk-UJXISJBN.js';
3
+ import { init_BabylonCompiler, BabylonCompiler } from './chunk-J7XZV333.js';
4
+ import { init_CompilerBase, CompilerBase } from './chunk-QPSKHBJP.js';
5
+ import { ANSCapabilityPath } from '@holoscript/core-types/ans';
6
+
7
+ // src/compiler/MultiLayerCompiler.ts
8
+ init_VRRCompiler();
9
+ init_ARCompiler();
10
+ init_BabylonCompiler();
11
+ init_CompilerBase();
12
+ var MultiLayerCompiler = class extends CompilerBase {
13
+ constructor(options) {
14
+ super();
15
+ this.compilerName = "MultiLayerCompiler";
16
+ this.options = options;
17
+ }
18
+ getRequiredCapability() {
19
+ return ANSCapabilityPath.MULTI_LAYER;
20
+ }
21
+ compile(composition, agentToken, outputPath) {
22
+ this.validateCompilerAccess(agentToken, outputPath);
23
+ const result = {
24
+ success: true,
25
+ warnings: [],
26
+ errors: []
27
+ };
28
+ if (this.options.targets.includes("ar")) {
29
+ const arCompiler = new ARCompiler({
30
+ target: "webxr",
31
+ minify: this.options.minify,
32
+ source_maps: this.options.source_maps,
33
+ features: { hit_test: true, image_tracking: true }
34
+ });
35
+ const arResult = arCompiler.compile(composition, agentToken);
36
+ result.ar = arResult;
37
+ if (!arResult.success) result.success = false;
38
+ }
39
+ if (this.options.targets.includes("vrr")) {
40
+ const vrrCompiler = new VRRCompiler({
41
+ target: "threejs",
42
+ minify: this.options.minify,
43
+ source_maps: this.options.source_maps,
44
+ performance: { target_fps: 60, max_players: 1e3, lazy_loading: true },
45
+ api_integrations: {}
46
+ // Configured upstream based on @reality_mirror traits
47
+ });
48
+ const vrrResult = vrrCompiler.compile(composition, agentToken);
49
+ result.vrr = vrrResult;
50
+ if (!vrrResult.success) result.success = false;
51
+ }
52
+ if (this.options.targets.includes("vr")) {
53
+ const vrCompiler = new BabylonCompiler({});
54
+ try {
55
+ const vrResult = vrCompiler.compile(composition, agentToken);
56
+ result.vr = vrResult;
57
+ } catch (err) {
58
+ result.success = false;
59
+ result.errors.push(
60
+ `VR Compilation Error: ${err instanceof Error ? err.message : String(err)}`
61
+ );
62
+ }
63
+ }
64
+ return result;
65
+ }
66
+ };
67
+
68
+ export { MultiLayerCompiler };
69
+ //# sourceMappingURL=chunk-FFAOS5HQ.js.map
70
+ //# sourceMappingURL=chunk-FFAOS5HQ.js.map
@@ -0,0 +1,270 @@
1
+ import { CircuitBreaker, retryWithBackoff, withTimeout } from './chunk-A6KINLZJ.js';
2
+
3
+ // src/interop/InteropBindingGenerator.ts
4
+ var InteropBindingGenerator = class {
5
+ /**
6
+ * Extract exports from a HoloScript AST
7
+ */
8
+ extractExports(ast) {
9
+ const exports$1 = [];
10
+ if (!ast.body) return exports$1;
11
+ for (const node of ast.body) {
12
+ const nodeRecord = node;
13
+ const nodeType = nodeRecord.type;
14
+ const nodeName = nodeRecord.name;
15
+ if (nodeType === "FunctionDeclaration" || nodeType === "function") {
16
+ const params = nodeRecord.params || [];
17
+ exports$1.push({
18
+ name: nodeName || "anonymous",
19
+ type: "function",
20
+ parameters: params.map((p) => {
21
+ if (typeof p === "string") {
22
+ return { name: p, type: "any", optional: false };
23
+ }
24
+ return {
25
+ name: p.name || "",
26
+ type: p.type || "any",
27
+ optional: p.optional || false
28
+ };
29
+ }),
30
+ returnType: nodeRecord.returnType || "void"
31
+ });
32
+ }
33
+ if (nodeType === "template" || nodeType === "ClassDeclaration") {
34
+ exports$1.push({
35
+ name: nodeName || "UnnamedTemplate",
36
+ type: "class"
37
+ });
38
+ }
39
+ if (nodeType === "composition") {
40
+ exports$1.push({
41
+ name: nodeName || "default",
42
+ type: "module"
43
+ });
44
+ }
45
+ if (nodeType === "VariableDeclaration" || nodeType === "state") {
46
+ exports$1.push({
47
+ name: nodeName || "unnamed",
48
+ type: "constant",
49
+ value: nodeRecord.value
50
+ });
51
+ }
52
+ }
53
+ return exports$1;
54
+ }
55
+ /**
56
+ * Generate Python bindings from HoloScript AST
57
+ */
58
+ generatePythonBindings(ast, sourceFile) {
59
+ const exports$1 = this.extractExports(ast);
60
+ const lines = [
61
+ '"""',
62
+ `Auto-generated Python bindings for ${sourceFile}`,
63
+ `Generated by HoloScript InteropBindingGenerator`,
64
+ `Do not edit manually \u2014 regenerate with: holoscript compile ${sourceFile} --target python`,
65
+ '"""',
66
+ "",
67
+ "from typing import Any, Optional, Dict, List",
68
+ "import json",
69
+ ""
70
+ ];
71
+ for (const exp of exports$1) {
72
+ switch (exp.type) {
73
+ case "function": {
74
+ const params = (exp.parameters || []).map((p) => {
75
+ const pyType = this.tsPyType(p.type);
76
+ return p.optional ? `${p.name}: ${pyType} = None` : `${p.name}: ${pyType}`;
77
+ }).join(", ");
78
+ const retType = this.tsPyType(exp.returnType || "void");
79
+ lines.push(`def ${exp.name}(${params}) -> ${retType}:`);
80
+ lines.push(` """HoloScript function: ${exp.name}"""`);
81
+ lines.push(` raise NotImplementedError("Bridge to HoloScript runtime required")`);
82
+ lines.push("");
83
+ break;
84
+ }
85
+ case "class": {
86
+ lines.push(`class ${exp.name}:`);
87
+ lines.push(` """HoloScript template: ${exp.name}"""`);
88
+ lines.push(` def __init__(self, **kwargs: Any) -> None:`);
89
+ lines.push(` self._props = kwargs`);
90
+ lines.push("");
91
+ break;
92
+ }
93
+ case "constant": {
94
+ lines.push(`${exp.name} = ${JSON.stringify(exp.value ?? "None")}`);
95
+ lines.push("");
96
+ break;
97
+ }
98
+ case "module": {
99
+ lines.push(`class ${exp.name}Module:`);
100
+ lines.push(` """HoloScript composition: ${exp.name}"""`);
101
+ lines.push(` pass`);
102
+ lines.push("");
103
+ break;
104
+ }
105
+ }
106
+ }
107
+ lines.push(`__all__ = [${exports$1.map((e) => `"${e.name}"`).join(", ")}]`);
108
+ return {
109
+ language: "python",
110
+ code: lines.join("\n"),
111
+ exports: exports$1.map((e) => e.name),
112
+ metadata: {
113
+ sourceFile,
114
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
115
+ holoScriptVersion: "5.0.0"
116
+ }
117
+ };
118
+ }
119
+ /**
120
+ * Generate JavaScript (ESM) bindings from HoloScript AST
121
+ */
122
+ generateJSBindings(ast, sourceFile) {
123
+ const exports$1 = this.extractExports(ast);
124
+ const lines = [
125
+ `// Auto-generated JS bindings for ${sourceFile}`,
126
+ `// Generated by HoloScript InteropBindingGenerator`,
127
+ `// Do not edit manually`,
128
+ ""
129
+ ];
130
+ for (const exp of exports$1) {
131
+ switch (exp.type) {
132
+ case "function": {
133
+ const params = (exp.parameters || []).map((p) => p.name).join(", ");
134
+ lines.push(`export function ${exp.name}(${params}) {`);
135
+ lines.push(` throw new Error("Bridge to HoloScript runtime required");`);
136
+ lines.push(`}`);
137
+ lines.push("");
138
+ break;
139
+ }
140
+ case "class": {
141
+ lines.push(`export class ${exp.name} {`);
142
+ lines.push(` constructor(props = {}) { this._props = props; }`);
143
+ lines.push(`}`);
144
+ lines.push("");
145
+ break;
146
+ }
147
+ case "constant": {
148
+ lines.push(`export const ${exp.name} = ${JSON.stringify(exp.value ?? null)};`);
149
+ lines.push("");
150
+ break;
151
+ }
152
+ case "module": {
153
+ lines.push(`export const ${exp.name} = { /* HoloScript composition */ };`);
154
+ lines.push("");
155
+ break;
156
+ }
157
+ }
158
+ }
159
+ return {
160
+ language: "javascript",
161
+ code: lines.join("\n"),
162
+ exports: exports$1.map((e) => e.name),
163
+ metadata: {
164
+ sourceFile,
165
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
166
+ holoScriptVersion: "5.0.0"
167
+ }
168
+ };
169
+ }
170
+ /**
171
+ * Map TypeScript types to Python types
172
+ */
173
+ tsPyType(tsType) {
174
+ const mapping = {
175
+ string: "str",
176
+ number: "float",
177
+ int: "int",
178
+ boolean: "bool",
179
+ void: "None",
180
+ any: "Any",
181
+ unknown: "Any",
182
+ "string[]": "List[str]",
183
+ "number[]": "List[float]"
184
+ };
185
+ return mapping[tsType] || "Any";
186
+ }
187
+ };
188
+
189
+ // src/mcp/MCPCircuitBreaker.ts
190
+ var MCPCircuitBreaker = class {
191
+ constructor(config = {}) {
192
+ this.breaker = new CircuitBreaker({
193
+ failureThreshold: config.failureThreshold ?? 5,
194
+ successThreshold: config.successThreshold ?? 2,
195
+ resetTimeoutMs: config.resetTimeoutMs ?? 3e4,
196
+ windowMs: config.windowMs ?? 6e4
197
+ });
198
+ this.baseUrl = config.baseUrl ?? "http://localhost:3000";
199
+ }
200
+ /**
201
+ * Call an MCP tool with circuit breaker protection + retry + timeout
202
+ */
203
+ async callTool(tool, args, timeoutMs = 15e3) {
204
+ try {
205
+ const result = await this.breaker.execute(async () => {
206
+ return retryWithBackoff(
207
+ async () => {
208
+ const response = await withTimeout(
209
+ fetch(`${this.baseUrl}/api/mcp/tools/${tool}`, {
210
+ method: "POST",
211
+ headers: { "Content-Type": "application/json" },
212
+ body: JSON.stringify({ arguments: args })
213
+ }),
214
+ timeoutMs
215
+ );
216
+ if (!response.ok) {
217
+ throw new Error(`MCP tool ${tool} failed: ${response.status} ${response.statusText}`);
218
+ }
219
+ return response.json();
220
+ },
221
+ {
222
+ maxAttempts: 2,
223
+ initialBackoffMs: 500,
224
+ maxBackoffMs: 3e3
225
+ }
226
+ );
227
+ });
228
+ return {
229
+ success: true,
230
+ content: result,
231
+ circuitState: this.breaker.getState()
232
+ };
233
+ } catch (error) {
234
+ return {
235
+ success: false,
236
+ error: error instanceof Error ? error.message : String(error),
237
+ circuitState: this.breaker.getState()
238
+ };
239
+ }
240
+ }
241
+ /**
242
+ * Get current circuit breaker state
243
+ */
244
+ getState() {
245
+ return this.breaker.getState();
246
+ }
247
+ /**
248
+ * Get circuit breaker metrics
249
+ */
250
+ getMetrics() {
251
+ return this.breaker.getMetrics();
252
+ }
253
+ /**
254
+ * Check if MCP server is available (circuit not open)
255
+ */
256
+ isAvailable() {
257
+ return this.breaker.getState() !== "OPEN" /* OPEN */;
258
+ }
259
+ };
260
+ var defaultInstance = null;
261
+ function getMCPCircuitBreaker(config) {
262
+ if (!defaultInstance) {
263
+ defaultInstance = new MCPCircuitBreaker(config);
264
+ }
265
+ return defaultInstance;
266
+ }
267
+
268
+ export { InteropBindingGenerator, MCPCircuitBreaker, getMCPCircuitBreaker };
269
+ //# sourceMappingURL=chunk-FGGJQRLZ.js.map
270
+ //# sourceMappingURL=chunk-FGGJQRLZ.js.map