@holoscript/core 7.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/holoscript.cjs +3 -0
- package/dist/GLTFPipeline-276GE64O.js +16 -0
- package/dist/GLTFPipeline-M7WSSJED.cjs +37 -0
- package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
- package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
- package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
- package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
- package/dist/HoloScriptRuntime-3URVTKPJ.js +10 -0
- package/dist/HoloScriptRuntime-SXEAEU2N.cjs +19 -0
- package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
- package/dist/USDZExporter-D2HQLQYK.js +1035 -0
- package/dist/agents/index.cjs +19 -0
- package/dist/agents/index.d.ts +100 -0
- package/dist/agents/index.js +17 -0
- package/dist/chunk-23J755AR.js +1046 -0
- package/dist/chunk-253GBQZY.cjs +627 -0
- package/dist/chunk-25IQCHTO.cjs +781 -0
- package/dist/chunk-2BSMSUCE.js +1941 -0
- package/dist/chunk-2M2DPHKB.js +762 -0
- package/dist/chunk-2YSNA2F2.cjs +1274 -0
- package/dist/chunk-3AO425MZ.cjs +886 -0
- package/dist/chunk-3FOKASKO.cjs +348 -0
- package/dist/chunk-3HYYMEXI.cjs +56578 -0
- package/dist/chunk-3NFFOWGG.js +4287 -0
- package/dist/chunk-3WZEJHUQ.cjs +116 -0
- package/dist/chunk-4C57PR42.js +468 -0
- package/dist/chunk-4N4SXXWF.js +769 -0
- package/dist/chunk-4PDEPEQW.cjs +41 -0
- package/dist/chunk-4R6SBXDB.js +45 -0
- package/dist/chunk-4V2E7U7Q.cjs +2015 -0
- package/dist/chunk-5FSKKMR7.cjs +2092 -0
- package/dist/chunk-5GLCTO44.js +161 -0
- package/dist/chunk-5JEU52DW.js +382 -0
- package/dist/chunk-5S7RKFGR.cjs +446 -0
- package/dist/chunk-5WUNN6ZN.cjs +428 -0
- package/dist/chunk-62FBK3B7.js +70 -0
- package/dist/chunk-6CTRH7HT.cjs +1985 -0
- package/dist/chunk-6DPSFNJB.cjs +847 -0
- package/dist/chunk-6EX3I5P4.cjs +130 -0
- package/dist/chunk-73FELZVJ.cjs +611 -0
- package/dist/chunk-7CUEMLDZ.cjs +6445 -0
- package/dist/chunk-7HIASF7S.cjs +814 -0
- package/dist/chunk-A6KINLZJ.js +236 -0
- package/dist/chunk-AIA52I7T.cjs +543 -0
- package/dist/chunk-ANXZFVY2.js +113 -0
- package/dist/chunk-AYBXB26F.js +2176 -0
- package/dist/chunk-B4TFTDG4.js +449 -0
- package/dist/chunk-BE4UJCQT.js +623 -0
- package/dist/chunk-BRQJKJGT.cjs +20 -0
- package/dist/chunk-C2A5DUMF.cjs +689 -0
- package/dist/chunk-C37BHB7N.cjs +636 -0
- package/dist/chunk-CBJY23VL.js +126 -0
- package/dist/chunk-CIWWXYHZ.cjs +50 -0
- package/dist/chunk-CXFDRBQU.cjs +672 -0
- package/dist/chunk-D54CNIAJ.cjs +413 -0
- package/dist/chunk-DAJXW4KX.js +725 -0
- package/dist/chunk-DTGBOSEM.cjs +319 -0
- package/dist/chunk-E7JP3BS3.cjs +61 -0
- package/dist/chunk-EKBKLK7P.js +1169 -0
- package/dist/chunk-EKYL4PE3.cjs +404 -0
- package/dist/chunk-EUDQTK7N.cjs +4310 -0
- package/dist/chunk-EXKSFGSX.cjs +274 -0
- package/dist/chunk-EXUP2BUM.cjs +1173 -0
- package/dist/chunk-F43YAA34.js +623 -0
- package/dist/chunk-FDSGHPAK.js +130 -0
- package/dist/chunk-FEWUHQNM.cjs +144 -0
- package/dist/chunk-FGGJQRLZ.js +270 -0
- package/dist/chunk-FHP6LXJS.js +415 -0
- package/dist/chunk-FJPADH77.cjs +666 -0
- package/dist/chunk-FYSPZT4V.cjs +169 -0
- package/dist/chunk-GIOYPNTH.js +5575 -0
- package/dist/chunk-GJNCFRJU.cjs +125 -0
- package/dist/chunk-GMP623FG.cjs +1508 -0
- package/dist/chunk-GQHQOPXZ.cjs +5580 -0
- package/dist/chunk-GQT4TYKY.cjs +4381 -0
- package/dist/chunk-GTU2Z2WW.cjs +262 -0
- package/dist/chunk-GYZE55MO.js +2007 -0
- package/dist/chunk-GZG4KA4E.js +529 -0
- package/dist/chunk-H652NHX5.js +600 -0
- package/dist/chunk-HCCQLAA4.cjs +74 -0
- package/dist/chunk-HINXWAOD.cjs +1049 -0
- package/dist/chunk-HYNTS5CP.js +422 -0
- package/dist/chunk-HZSPDCXV.cjs +457 -0
- package/dist/chunk-HZTDET3N.js +1399 -0
- package/dist/chunk-I6XZ5DZF.cjs +488 -0
- package/dist/chunk-ILRBGFVD.cjs +72 -0
- package/dist/chunk-IPWSXCCN.js +1183 -0
- package/dist/chunk-IUTY5WQ2.cjs +424 -0
- package/dist/chunk-IVSZDECV.js +882 -0
- package/dist/chunk-IVY74O6C.js +247 -0
- package/dist/chunk-IZM5VQZD.js +714 -0
- package/dist/chunk-J32ZJZJH.js +554 -0
- package/dist/chunk-J6M4FPK5.js +421 -0
- package/dist/chunk-JC5YBPSF.cjs +984 -0
- package/dist/chunk-JCLBKPMX.js +3813 -0
- package/dist/chunk-JD7CIZ33.js +1949 -0
- package/dist/chunk-JIYN45TV.cjs +2525 -0
- package/dist/chunk-JJBE3TIH.cjs +1189 -0
- package/dist/chunk-JX7YL6ZE.js +2252 -0
- package/dist/chunk-K4VVR7CN.cjs +2433 -0
- package/dist/chunk-KEFNV2WM.cjs +2257 -0
- package/dist/chunk-KH4CNH66.cjs +424 -0
- package/dist/chunk-KJLB4OPV.js +5731 -0
- package/dist/chunk-KKFZ3B6J.cjs +557 -0
- package/dist/chunk-KKP7JKN4.cjs +6002 -0
- package/dist/chunk-KPJL34Y7.cjs +186 -0
- package/dist/chunk-KQCN6AKJ.cjs +3042 -0
- package/dist/chunk-KVRSTFNH.cjs +72 -0
- package/dist/chunk-LICPB5HZ.cjs +1409 -0
- package/dist/chunk-LM2VU56C.cjs +37 -0
- package/dist/chunk-M56JSP4A.js +400 -0
- package/dist/chunk-MBOOR7X4.js +18 -0
- package/dist/chunk-MGE5Z4GS.js +608 -0
- package/dist/chunk-MXFUTKCO.js +56 -0
- package/dist/chunk-MYY4PMWX.cjs +264 -0
- package/dist/chunk-N75IH2HY.js +258 -0
- package/dist/chunk-NBMHU6SW.js +669 -0
- package/dist/chunk-NG77ATEW.cjs +778 -0
- package/dist/chunk-NGKREZ36.js +6384 -0
- package/dist/chunk-NHWSN2SD.cjs +718 -0
- package/dist/chunk-NV4VMVXU.js +421 -0
- package/dist/chunk-NW5G5FBQ.js +215 -0
- package/dist/chunk-NXZFOPVD.cjs +5737 -0
- package/dist/chunk-OBIYPYYS.cjs +1993 -0
- package/dist/chunk-OIQYIIO3.cjs +473 -0
- package/dist/chunk-OL46QLBJ.js +61 -0
- package/dist/chunk-OMXII44L.js +5386 -0
- package/dist/chunk-OR4Q2BGL.cjs +759 -0
- package/dist/chunk-OSYNRVOV.cjs +243 -0
- package/dist/chunk-PGANYCAG.cjs +220 -0
- package/dist/chunk-PHENW4MQ.js +65 -0
- package/dist/chunk-PHVRG4I2.js +844 -0
- package/dist/chunk-Q56TT7IL.js +483 -0
- package/dist/chunk-QPOQ7VPI.js +1491 -0
- package/dist/chunk-QPSKHBJP.js +5963 -0
- package/dist/chunk-QXH7QDSZ.js +1989 -0
- package/dist/chunk-R75BSDH7.cjs +50 -0
- package/dist/chunk-RARB3MBR.js +207 -0
- package/dist/chunk-RVBHAXFG.js +56160 -0
- package/dist/chunk-S3MDHNKB.cjs +490 -0
- package/dist/chunk-S4W6Z2MN.js +2426 -0
- package/dist/chunk-S6YWHCKV.cjs +410 -0
- package/dist/chunk-SIEXCILW.js +229 -0
- package/dist/chunk-SJBGLS25.cjs +2196 -0
- package/dist/chunk-SLU6UPJI.cjs +410 -0
- package/dist/chunk-SMIWS6DE.cjs +212 -0
- package/dist/chunk-T2QCTZMO.js +811 -0
- package/dist/chunk-T5J7ZKP3.cjs +4885 -0
- package/dist/chunk-TDCNJHWO.js +341 -0
- package/dist/chunk-TG7O4WBC.js +406 -0
- package/dist/chunk-THCK6ECW.js +2085 -0
- package/dist/chunk-TJHVSBP2.js +439 -0
- package/dist/chunk-TVHSPJ4N.cjs +606 -0
- package/dist/chunk-U44IKGG7.cjs +5390 -0
- package/dist/chunk-UJXISJBN.js +487 -0
- package/dist/chunk-UM6C3CGK.js +4375 -0
- package/dist/chunk-UMABK6SI.js +686 -0
- package/dist/chunk-UOIGFQXC.cjs +9750 -0
- package/dist/chunk-URG2SJLK.js +2521 -0
- package/dist/chunk-V6MKC2FZ.js +979 -0
- package/dist/chunk-VECQYRXL.js +474 -0
- package/dist/chunk-VJ3L7CHT.cjs +169 -0
- package/dist/chunk-VMLKSV26.js +1216 -0
- package/dist/chunk-VVKVQZI6.js +55 -0
- package/dist/chunk-W6RW64BB.cjs +1219 -0
- package/dist/chunk-W7VDOASB.cjs +639 -0
- package/dist/chunk-WDT3JTGM.cjs +483 -0
- package/dist/chunk-WJIHFLMJ.js +404 -0
- package/dist/chunk-WKX5AMOY.js +309 -0
- package/dist/chunk-WNNE3PO3.js +34 -0
- package/dist/chunk-WRKUDAZJ.js +3038 -0
- package/dist/chunk-WRLUBRKS.cjs +1943 -0
- package/dist/chunk-WRNEH5MO.js +3169 -0
- package/dist/chunk-WRWEX5ZF.js +658 -0
- package/dist/chunk-X3GJPRVK.cjs +3246 -0
- package/dist/chunk-XHIV6326.cjs +793 -0
- package/dist/chunk-XIVIE43A.cjs +729 -0
- package/dist/chunk-XJAN7CZG.cjs +432 -0
- package/dist/chunk-XKTPFXGA.js +164 -0
- package/dist/chunk-XL6INWKT.js +121 -0
- package/dist/chunk-XSFNHP2E.js +632 -0
- package/dist/chunk-XT6JY5W5.js +9684 -0
- package/dist/chunk-XUILI4KB.cjs +430 -0
- package/dist/chunk-XUUVDHIF.cjs +3962 -0
- package/dist/chunk-YF2I3MV3.js +46 -0
- package/dist/chunk-YIMN575O.js +4847 -0
- package/dist/chunk-YIVFJNYV.js +176 -0
- package/dist/chunk-YKGPCZEE.cjs +237 -0
- package/dist/chunk-YN6V7R3L.cjs +327 -0
- package/dist/chunk-YQELFNJV.js +39 -0
- package/dist/chunk-YYXH45E2.js +426 -0
- package/dist/chunk-ZBQXLH2L.js +756 -0
- package/dist/chunk-ZDSYWBIE.cjs +69 -0
- package/dist/chunk-ZU7NIRT6.js +325 -0
- package/dist/chunk-ZZ7RO2UQ.js +1243 -0
- package/dist/chunk-ZZEI7MV4.js +778 -0
- package/dist/cli/holoscript-runner.cjs +2255 -0
- package/dist/cli/holoscript-runner.js +2230 -0
- package/dist/codebase/index.cjs +336 -0
- package/dist/codebase/index.js +331 -0
- package/dist/compiler/agent-inference.cjs +31 -0
- package/dist/compiler/agent-inference.js +8 -0
- package/dist/compiler/android-xr.cjs +24 -0
- package/dist/compiler/android-xr.js +14 -0
- package/dist/compiler/android.cjs +24 -0
- package/dist/compiler/android.js +14 -0
- package/dist/compiler/ar.cjs +23 -0
- package/dist/compiler/ar.js +11 -0
- package/dist/compiler/babylon.cjs +21 -0
- package/dist/compiler/babylon.js +15 -0
- package/dist/compiler/business-quest.cjs +43 -0
- package/dist/compiler/business-quest.js +4 -0
- package/dist/compiler/coco.cjs +27 -0
- package/dist/compiler/coco.js +4 -0
- package/dist/compiler/context.cjs +25 -0
- package/dist/compiler/context.d.ts +28 -0
- package/dist/compiler/context.js +8 -0
- package/dist/compiler/domain-block-utils.cjs +605 -0
- package/dist/compiler/domain-block-utils.js +11 -0
- package/dist/compiler/dtdl.cjs +27 -0
- package/dist/compiler/dtdl.js +11 -0
- package/dist/compiler/gltf-pipeline.cjs +39 -0
- package/dist/compiler/gltf-pipeline.js +4 -0
- package/dist/compiler/godot.cjs +18 -0
- package/dist/compiler/godot.js +12 -0
- package/dist/compiler/incremental.cjs +34 -0
- package/dist/compiler/incremental.js +9 -0
- package/dist/compiler/index.cjs +5860 -0
- package/dist/compiler/index.d.ts +322 -21
- package/dist/compiler/index.js +5525 -0
- package/dist/compiler/ios.cjs +23 -0
- package/dist/compiler/ios.js +13 -0
- package/dist/compiler/llm-provider-capabilities.cjs +25 -0
- package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
- package/dist/compiler/llm-provider-capabilities.js +8 -0
- package/dist/compiler/multi-layer.cjs +24 -0
- package/dist/compiler/multi-layer.js +15 -0
- package/dist/compiler/nodetoy.cjs +23 -0
- package/dist/compiler/nodetoy.js +4 -0
- package/dist/compiler/openxr.cjs +19 -0
- package/dist/compiler/openxr.js +13 -0
- package/dist/compiler/playcanvas.cjs +19 -0
- package/dist/compiler/playcanvas.js +13 -0
- package/dist/compiler/r3f.cjs +38 -0
- package/dist/compiler/r3f.d.ts +22 -0
- package/dist/compiler/r3f.js +16 -0
- package/dist/compiler/remotion.cjs +23 -0
- package/dist/compiler/remotion.js +4 -0
- package/dist/compiler/reproducibility.cjs +39 -0
- package/dist/compiler/reproducibility.js +4 -0
- package/dist/compiler/sdf.cjs +24 -0
- package/dist/compiler/sdf.js +12 -0
- package/dist/compiler/semantic-scene.cjs +31 -0
- package/dist/compiler/semantic-scene.js +4 -0
- package/dist/compiler/state.cjs +21 -0
- package/dist/compiler/state.js +11 -0
- package/dist/compiler/trait-composition.cjs +30 -0
- package/dist/compiler/trait-composition.js +9 -0
- package/dist/compiler/unity.cjs +19 -0
- package/dist/compiler/unity.js +13 -0
- package/dist/compiler/unreal.cjs +23 -0
- package/dist/compiler/unreal.js +13 -0
- package/dist/compiler/urdf.cjs +52 -0
- package/dist/compiler/urdf.js +12 -0
- package/dist/compiler/usd-physics.cjs +26 -0
- package/dist/compiler/usd-physics.js +9 -0
- package/dist/compiler/visionos.cjs +19 -0
- package/dist/compiler/visionos.js +13 -0
- package/dist/compiler/vrchat.cjs +22 -0
- package/dist/compiler/vrchat.js +12 -0
- package/dist/compiler/vrr.cjs +24 -0
- package/dist/compiler/vrr.js +12 -0
- package/dist/compiler/wasm.cjs +36 -0
- package/dist/compiler/wasm.js +12 -0
- package/dist/compiler/webgpu.cjs +18 -0
- package/dist/compiler/webgpu.js +12 -0
- package/dist/coordinators/index.cjs +1266 -0
- package/dist/coordinators/index.d.ts +72 -1
- package/dist/coordinators/index.js +1259 -0
- package/dist/debugger.cjs +24 -0
- package/dist/debugger.js +11 -0
- package/dist/entries/interop.cjs +64 -0
- package/dist/entries/interop.js +7 -0
- package/dist/entries/scripting.cjs +55 -0
- package/dist/entries/scripting.js +10 -0
- package/dist/hololand/index.cjs +146 -0
- package/dist/hololand/index.d.ts +70 -0
- package/dist/hololand/index.js +5 -0
- package/dist/index.cjs +43233 -0
- package/dist/index.d.ts +976 -21
- package/dist/index.js +39995 -0
- package/dist/math/tropical-spmv.cjs +45 -0
- package/dist/math/tropical-spmv.js +4 -0
- package/dist/math/vec3.cjs +57 -0
- package/dist/math/vec3.js +4 -0
- package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
- package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
- package/dist/paper-0c-spike/index.cjs +150 -0
- package/dist/paper-0c-spike/index.js +141 -0
- package/dist/parser.cjs +61 -0
- package/dist/parser.d.ts +11 -0
- package/dist/parser.js +12 -0
- package/dist/playwright-3AT3AKTV.cjs +98673 -0
- package/dist/playwright-VZPDVUEQ.js +98660 -0
- package/dist/reconstruction/index.cjs +153 -0
- package/dist/reconstruction/index.d.ts +29 -2
- package/dist/reconstruction/index.js +8 -0
- package/dist/runtime.cjs +316 -0
- package/dist/runtime.d.ts +61 -0
- package/dist/runtime.js +31 -0
- package/dist/self-improvement/index.cjs +563 -0
- package/dist/self-improvement/index.js +545 -0
- package/dist/storage/index.cjs +38 -0
- package/dist/storage/index.js +5 -0
- package/dist/testing.cjs +25 -0
- package/dist/testing.d.ts +70 -0
- package/dist/testing.js +4 -0
- package/dist/traitDocs/traitDocs.cjs +33 -0
- package/dist/traitDocs/traitDocs.js +7 -0
- package/dist/traits/botanical-lotus.cjs +41 -0
- package/dist/traits/botanical-lotus.d.ts +172 -0
- package/dist/traits/botanical-lotus.js +4 -0
- package/dist/traits/engines/index.cjs +520 -0
- package/dist/traits/engines/index.js +380 -0
- package/dist/traits/index.cjs +24409 -0
- package/dist/traits/index.d.ts +171 -35
- package/dist/traits/index.js +21634 -0
- package/dist/traits/simulation-solver-factory.cjs +13 -0
- package/dist/traits/simulation-solver-factory.d.ts +23 -0
- package/dist/traits/simulation-solver-factory.js +4 -0
- package/dist/traits/webcam-gaze.cjs +35 -0
- package/dist/traits/webcam-gaze.d.ts +17 -0
- package/dist/traits/webcam-gaze.js +4 -0
- package/dist/type-checker.cjs +19 -0
- package/dist/type-checker.js +6 -0
- package/dist/world/index.cjs +947 -0
- package/dist/world/index.d.ts +147 -0
- package/dist/world/index.js +939 -0
- package/dist/world-model/index.cjs +1446 -0
- package/dist/world-model/index.d.ts +119 -0
- package/dist/world-model/index.js +1414 -0
- package/dist/wot/index.cjs +29 -0
- package/dist/wot/index.js +4 -0
- package/package.json +93 -49
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/compiler/BusinessQuestTools.ts
|
|
4
|
+
var vrrQuestEntrySchema = z.object({
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
title: z.string().min(1),
|
|
7
|
+
steps: z.array(z.string()).min(1)
|
|
8
|
+
});
|
|
9
|
+
var businessVRRDraftSchema = z.object({
|
|
10
|
+
compositionName: z.string().min(1).regex(/^[A-Za-z_][A-Za-z0-9_]*$/, "compositionName must be a valid HoloScript identifier"),
|
|
11
|
+
twin: z.object({
|
|
12
|
+
mirrorId: z.string().min(1),
|
|
13
|
+
realitySync: z.array(z.string()).min(1),
|
|
14
|
+
geoSync: z.object({
|
|
15
|
+
center: z.string().min(1),
|
|
16
|
+
radius: z.number().nonnegative().optional()
|
|
17
|
+
}).optional()
|
|
18
|
+
}),
|
|
19
|
+
weather: z.object({
|
|
20
|
+
provider: z.enum(["weather.gov", "openweathermap"]),
|
|
21
|
+
refresh: z.string().optional()
|
|
22
|
+
}).optional(),
|
|
23
|
+
events: z.object({
|
|
24
|
+
provider: z.enum(["eventbrite", "ticketmaster"]),
|
|
25
|
+
refresh: z.string().optional()
|
|
26
|
+
}).optional(),
|
|
27
|
+
businesses: z.array(
|
|
28
|
+
z.object({
|
|
29
|
+
id: z.string().min(1),
|
|
30
|
+
displayName: z.string().optional(),
|
|
31
|
+
geo: z.object({
|
|
32
|
+
lat: z.number().gte(-90).lte(90),
|
|
33
|
+
lng: z.number().gte(-180).lte(180)
|
|
34
|
+
}),
|
|
35
|
+
inventory: z.object({
|
|
36
|
+
provider: z.enum(["square_pos", "shopify", "woocommerce"]),
|
|
37
|
+
refresh: z.string().optional(),
|
|
38
|
+
websocket: z.boolean().optional()
|
|
39
|
+
}).optional(),
|
|
40
|
+
quests: z.array(vrrQuestEntrySchema).min(1)
|
|
41
|
+
})
|
|
42
|
+
).min(1),
|
|
43
|
+
layerShift: z.object({
|
|
44
|
+
from: z.enum(["ar", "vrr", "vr"]),
|
|
45
|
+
to: z.enum(["ar", "vrr", "vr"]),
|
|
46
|
+
price: z.number().nonnegative().optional(),
|
|
47
|
+
persistState: z.boolean().optional()
|
|
48
|
+
}).optional()
|
|
49
|
+
});
|
|
50
|
+
function vrrTrait(name, params) {
|
|
51
|
+
return {
|
|
52
|
+
type: "ObjectTrait",
|
|
53
|
+
name,
|
|
54
|
+
config: params,
|
|
55
|
+
params
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function emptyCompositionShell(name) {
|
|
59
|
+
return {
|
|
60
|
+
type: "Composition",
|
|
61
|
+
name,
|
|
62
|
+
templates: [],
|
|
63
|
+
objects: [],
|
|
64
|
+
spatialGroups: [],
|
|
65
|
+
lights: [],
|
|
66
|
+
imports: [],
|
|
67
|
+
timelines: [],
|
|
68
|
+
audio: [],
|
|
69
|
+
zones: [],
|
|
70
|
+
transitions: [],
|
|
71
|
+
conditionals: [],
|
|
72
|
+
iterators: [],
|
|
73
|
+
npcs: [],
|
|
74
|
+
quests: [],
|
|
75
|
+
abilities: [],
|
|
76
|
+
dialogues: [],
|
|
77
|
+
stateMachines: [],
|
|
78
|
+
achievements: [],
|
|
79
|
+
talentTrees: [],
|
|
80
|
+
shapes: [],
|
|
81
|
+
metadata: {
|
|
82
|
+
source: "business-quest-tools",
|
|
83
|
+
draftKind: "hololand-vrr"
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function buildVRRCompositionFromDraft(draft) {
|
|
88
|
+
const composition = emptyCompositionShell(draft.compositionName);
|
|
89
|
+
const twinTraits = [
|
|
90
|
+
vrrTrait("vrr_twin", { mirror: draft.twin.mirrorId }),
|
|
91
|
+
vrrTrait("reality_mirror", { sync: draft.twin.realitySync })
|
|
92
|
+
];
|
|
93
|
+
if (draft.twin.geoSync) {
|
|
94
|
+
twinTraits.push(
|
|
95
|
+
vrrTrait("geo_sync", {
|
|
96
|
+
center: draft.twin.geoSync.center,
|
|
97
|
+
radius: draft.twin.geoSync.radius ?? 0
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
const twinObject = {
|
|
102
|
+
type: "Object",
|
|
103
|
+
name: `${draft.compositionName}_twin_root`,
|
|
104
|
+
properties: [],
|
|
105
|
+
traits: twinTraits
|
|
106
|
+
};
|
|
107
|
+
const objects = [twinObject];
|
|
108
|
+
if (draft.weather) {
|
|
109
|
+
objects.push({
|
|
110
|
+
type: "Object",
|
|
111
|
+
name: `${draft.compositionName}_weather`,
|
|
112
|
+
properties: [],
|
|
113
|
+
traits: [
|
|
114
|
+
vrrTrait("weather_sync", {
|
|
115
|
+
provider: draft.weather.provider,
|
|
116
|
+
refresh: draft.weather.refresh ?? "5_minutes"
|
|
117
|
+
})
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (draft.events) {
|
|
122
|
+
objects.push({
|
|
123
|
+
type: "Object",
|
|
124
|
+
name: `${draft.compositionName}_events`,
|
|
125
|
+
properties: [],
|
|
126
|
+
traits: [
|
|
127
|
+
vrrTrait("event_sync", {
|
|
128
|
+
provider: draft.events.provider,
|
|
129
|
+
refresh: draft.events.refresh ?? "5_minutes"
|
|
130
|
+
})
|
|
131
|
+
]
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
for (const biz of draft.businesses) {
|
|
135
|
+
const questPayload = biz.quests.map((q) => ({
|
|
136
|
+
id: q.id,
|
|
137
|
+
title: q.title,
|
|
138
|
+
steps: q.steps
|
|
139
|
+
}));
|
|
140
|
+
const bizTraits = [
|
|
141
|
+
vrrTrait("geo_anchor", { lat: biz.geo.lat, lng: biz.geo.lng }),
|
|
142
|
+
vrrTrait("quest_hub", { quests: questPayload })
|
|
143
|
+
];
|
|
144
|
+
if (biz.inventory) {
|
|
145
|
+
bizTraits.push(
|
|
146
|
+
vrrTrait("inventory_sync", {
|
|
147
|
+
provider: biz.inventory.provider,
|
|
148
|
+
refresh: biz.inventory.refresh ?? "1_minute",
|
|
149
|
+
websocket: biz.inventory.websocket ?? false
|
|
150
|
+
})
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
objects.push({
|
|
154
|
+
type: "Object",
|
|
155
|
+
name: biz.displayName ?? biz.id,
|
|
156
|
+
properties: [],
|
|
157
|
+
traits: bizTraits
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (draft.layerShift) {
|
|
161
|
+
objects.push({
|
|
162
|
+
type: "Object",
|
|
163
|
+
name: `${draft.compositionName}_layer_shift`,
|
|
164
|
+
properties: [],
|
|
165
|
+
traits: [
|
|
166
|
+
vrrTrait("layer_shift", {
|
|
167
|
+
from: draft.layerShift.from,
|
|
168
|
+
to: draft.layerShift.to,
|
|
169
|
+
price: draft.layerShift.price ?? 0,
|
|
170
|
+
persist_state: draft.layerShift.persistState !== false
|
|
171
|
+
})
|
|
172
|
+
]
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
composition.objects = objects;
|
|
176
|
+
return composition;
|
|
177
|
+
}
|
|
178
|
+
function validateBusinessVRRDraft(draft, options) {
|
|
179
|
+
const issues = [];
|
|
180
|
+
const parsed = businessVRRDraftSchema.safeParse(draft);
|
|
181
|
+
if (!parsed.success) {
|
|
182
|
+
for (const err of parsed.error.issues) {
|
|
183
|
+
issues.push({
|
|
184
|
+
path: err.path.join("."),
|
|
185
|
+
message: err.message,
|
|
186
|
+
severity: "error"
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return Promise.resolve({ ok: false, issues });
|
|
190
|
+
}
|
|
191
|
+
if (options?.parseWithVrrCompiler) {
|
|
192
|
+
return import('./compiler/vrr.js').then(({ VRRCompiler }) => {
|
|
193
|
+
const composition = buildVRRCompositionFromDraft(parsed.data);
|
|
194
|
+
const compiler = new VRRCompiler({
|
|
195
|
+
target: "threejs",
|
|
196
|
+
minify: false,
|
|
197
|
+
source_maps: false,
|
|
198
|
+
api_integrations: {},
|
|
199
|
+
performance: { target_fps: 60, max_players: 1e3, lazy_loading: true }
|
|
200
|
+
});
|
|
201
|
+
const data = compiler.parseVRRComposition(composition);
|
|
202
|
+
if (data.questNodes.length === 0) {
|
|
203
|
+
issues.push({
|
|
204
|
+
path: "businesses",
|
|
205
|
+
message: "VRR parse found no @quest_hub nodes \u2014 check draft.quests",
|
|
206
|
+
severity: "warning"
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
if (data.twinNodes.length === 0) {
|
|
210
|
+
issues.push({
|
|
211
|
+
path: "twin",
|
|
212
|
+
message: "VRR parse found no @vrr_twin nodes",
|
|
213
|
+
severity: "warning"
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return { ok: issues.every((i) => i.severity !== "error"), issues };
|
|
217
|
+
}).catch((err) => {
|
|
218
|
+
issues.push({
|
|
219
|
+
path: "",
|
|
220
|
+
message: err instanceof Error ? err.message : String(err),
|
|
221
|
+
severity: "error"
|
|
222
|
+
});
|
|
223
|
+
return { ok: false, issues };
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
return Promise.resolve({ ok: true, issues });
|
|
227
|
+
}
|
|
228
|
+
function draftToHoloPreview(draft) {
|
|
229
|
+
const lines = [];
|
|
230
|
+
lines.push(`// Preview \u2014 generated by BusinessQuestTools (no-code VRR draft)`);
|
|
231
|
+
lines.push(`composition "${draft.compositionName}" {`);
|
|
232
|
+
lines.push(
|
|
233
|
+
` // twin: mirror=${draft.twin.mirrorId} sync=[${draft.twin.realitySync.join(", ")}]`
|
|
234
|
+
);
|
|
235
|
+
if (draft.weather) {
|
|
236
|
+
lines.push(` // weather: ${draft.weather.provider}`);
|
|
237
|
+
}
|
|
238
|
+
if (draft.events) {
|
|
239
|
+
lines.push(` // events: ${draft.events.provider}`);
|
|
240
|
+
}
|
|
241
|
+
for (const biz of draft.businesses) {
|
|
242
|
+
lines.push(` // business "${biz.id}" @ geo ${biz.geo.lat},${biz.geo.lng}`);
|
|
243
|
+
for (const q of biz.quests) {
|
|
244
|
+
lines.push(` // quest "${q.title}" (${q.steps.length} steps)`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
lines.push(`}`);
|
|
248
|
+
return lines.join("\n");
|
|
249
|
+
}
|
|
250
|
+
var BUSINESS_QUEST_TOOLS = [
|
|
251
|
+
{
|
|
252
|
+
name: "holoscript_business_quest_scaffold_vrr",
|
|
253
|
+
description: "Build a HoloComposition JSON for Hololand VRR from a structured draft (no .holo source). Includes @vrr_twin, @reality_mirror, optional @geo_sync, @weather_sync, @event_sync, per-business @geo_anchor + @quest_hub + optional @inventory_sync, and optional @layer_shift.",
|
|
254
|
+
inputSchema: {
|
|
255
|
+
type: "object",
|
|
256
|
+
properties: {
|
|
257
|
+
draft: {
|
|
258
|
+
type: "object",
|
|
259
|
+
description: "BusinessVRRDraft \u2014 see businessVRRDraftSchema in @holoscript/core"
|
|
260
|
+
},
|
|
261
|
+
runVrrParse: {
|
|
262
|
+
type: "boolean",
|
|
263
|
+
description: "If true, run VRRCompiler.parseVRRComposition and return trait counts",
|
|
264
|
+
default: false
|
|
265
|
+
},
|
|
266
|
+
agentToken: {
|
|
267
|
+
type: "string",
|
|
268
|
+
description: "Optional agent token for future RBAC (reserved)"
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
required: ["draft"]
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: "holoscript_business_quest_validate_vrr_draft",
|
|
276
|
+
description: "Validate a BusinessVRRDraft (Zod). Optionally run VRRCompiler parse smoke check.",
|
|
277
|
+
inputSchema: {
|
|
278
|
+
type: "object",
|
|
279
|
+
properties: {
|
|
280
|
+
draft: { type: "object", description: "Candidate BusinessVRRDraft JSON" },
|
|
281
|
+
parseWithVrrCompiler: {
|
|
282
|
+
type: "boolean",
|
|
283
|
+
description: "When true, dynamically loads VRRCompiler for wiring verification",
|
|
284
|
+
default: false
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
required: ["draft"]
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: "holoscript_business_quest_preview_holo",
|
|
292
|
+
description: "Return a commented HoloScript-style preview string for founder review (not a full parser round-trip).",
|
|
293
|
+
inputSchema: {
|
|
294
|
+
type: "object",
|
|
295
|
+
properties: {
|
|
296
|
+
draft: { type: "object" }
|
|
297
|
+
},
|
|
298
|
+
required: ["draft"]
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
];
|
|
302
|
+
async function handleBusinessQuestToolCall(request) {
|
|
303
|
+
try {
|
|
304
|
+
switch (request.name) {
|
|
305
|
+
case "holoscript_business_quest_scaffold_vrr":
|
|
306
|
+
return await handleScaffold(request.arguments);
|
|
307
|
+
case "holoscript_business_quest_validate_vrr_draft":
|
|
308
|
+
return await handleValidate(request.arguments);
|
|
309
|
+
case "holoscript_business_quest_preview_holo":
|
|
310
|
+
return await handlePreview(request.arguments);
|
|
311
|
+
default:
|
|
312
|
+
return {
|
|
313
|
+
isError: true,
|
|
314
|
+
content: [{ type: "text", text: `Unknown tool: ${request.name}` }]
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
} catch (error) {
|
|
318
|
+
return {
|
|
319
|
+
isError: true,
|
|
320
|
+
content: [
|
|
321
|
+
{
|
|
322
|
+
type: "text",
|
|
323
|
+
text: `Error: ${error instanceof Error ? error.message : String(error)}`
|
|
324
|
+
}
|
|
325
|
+
]
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
async function handleScaffold(args) {
|
|
330
|
+
const parsed = businessVRRDraftSchema.safeParse(args.draft);
|
|
331
|
+
if (!parsed.success) {
|
|
332
|
+
return {
|
|
333
|
+
isError: true,
|
|
334
|
+
content: [{ type: "text", text: JSON.stringify(parsed.error.flatten(), null, 2) }]
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
const composition = buildVRRCompositionFromDraft(parsed.data);
|
|
338
|
+
const runParse = Boolean(args.runVrrParse);
|
|
339
|
+
let vrrSummary;
|
|
340
|
+
if (runParse) {
|
|
341
|
+
const { VRRCompiler } = await import('./compiler/vrr.js');
|
|
342
|
+
const compiler = new VRRCompiler({
|
|
343
|
+
target: "threejs",
|
|
344
|
+
minify: false,
|
|
345
|
+
source_maps: false,
|
|
346
|
+
api_integrations: {},
|
|
347
|
+
performance: { target_fps: 60, max_players: 1e3, lazy_loading: true }
|
|
348
|
+
});
|
|
349
|
+
const data = compiler.parseVRRComposition(composition);
|
|
350
|
+
vrrSummary = {
|
|
351
|
+
twinNodes: data.twinNodes.length,
|
|
352
|
+
weatherNodes: data.weatherNodes.length,
|
|
353
|
+
eventNodes: data.eventNodes.length,
|
|
354
|
+
inventoryNodes: data.inventoryNodes.length,
|
|
355
|
+
questNodes: data.questNodes.length,
|
|
356
|
+
layerShiftNodes: data.layerShiftNodes.length,
|
|
357
|
+
paywallNodes: data.paywallNodes.length,
|
|
358
|
+
geoAnchorNodes: data.geoAnchorNodes.length
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
const payload = {
|
|
362
|
+
success: true,
|
|
363
|
+
compositionName: composition.name,
|
|
364
|
+
objectCount: composition.objects.length,
|
|
365
|
+
composition,
|
|
366
|
+
vrrTraitCounts: vrrSummary
|
|
367
|
+
};
|
|
368
|
+
return {
|
|
369
|
+
isError: false,
|
|
370
|
+
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }]
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
async function handleValidate(args) {
|
|
374
|
+
const parseWithVrrCompiler = Boolean(args.parseWithVrrCompiler);
|
|
375
|
+
const result = await validateBusinessVRRDraft(args.draft, { parseWithVrrCompiler });
|
|
376
|
+
return {
|
|
377
|
+
isError: !result.ok,
|
|
378
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
async function handlePreview(args) {
|
|
382
|
+
const parsed = businessVRRDraftSchema.safeParse(args.draft);
|
|
383
|
+
if (!parsed.success) {
|
|
384
|
+
return {
|
|
385
|
+
isError: true,
|
|
386
|
+
content: [{ type: "text", text: JSON.stringify(parsed.error.flatten(), null, 2) }]
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
const text = draftToHoloPreview(parsed.data);
|
|
390
|
+
return {
|
|
391
|
+
isError: false,
|
|
392
|
+
content: [{ type: "text", text }]
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
function registerBusinessQuestTools(server) {
|
|
396
|
+
for (const tool of BUSINESS_QUEST_TOOLS) {
|
|
397
|
+
server.registerTool(tool, handleBusinessQuestToolCall);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
var BusinessQuestTools_default = handleBusinessQuestToolCall;
|
|
401
|
+
|
|
402
|
+
export { BUSINESS_QUEST_TOOLS, BusinessQuestTools_default, buildVRRCompositionFromDraft, businessVRRDraftSchema, draftToHoloPreview, handleBusinessQuestToolCall, registerBusinessQuestTools, validateBusinessVRRDraft };
|
|
403
|
+
//# sourceMappingURL=chunk-WJIHFLMJ.js.map
|
|
404
|
+
//# sourceMappingURL=chunk-WJIHFLMJ.js.map
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { __esm } from './chunk-OL46QLBJ.js';
|
|
2
|
+
|
|
3
|
+
// src/traits/constants/mobile/geospatial.ts
|
|
4
|
+
var GEOSPATIAL_ARCORE_TRAITS, GEOSPATIAL_DEFAULTS;
|
|
5
|
+
var init_geospatial = __esm({
|
|
6
|
+
"src/traits/constants/mobile/geospatial.ts"() {
|
|
7
|
+
GEOSPATIAL_ARCORE_TRAITS = [
|
|
8
|
+
// --- VPS Core ---
|
|
9
|
+
"geospatial_vps",
|
|
10
|
+
// enables ARCore GeospatialMode.ENABLED on session
|
|
11
|
+
"geospatial_heading",
|
|
12
|
+
// heading/orientation alignment from VPS compass data
|
|
13
|
+
// --- Anchoring ---
|
|
14
|
+
"geospatial_anchor",
|
|
15
|
+
// lat/lng/alt/heading anchor via Earth.createAnchor
|
|
16
|
+
"geospatial_terrain_anchor",
|
|
17
|
+
// resolveAnchorOnTerrain — snaps to terrain surface
|
|
18
|
+
"geospatial_rooftop_anchor",
|
|
19
|
+
// resolveAnchorOnRooftop — snaps to building rooftops
|
|
20
|
+
// --- Streetscape ---
|
|
21
|
+
"geospatial_streetscape"
|
|
22
|
+
// Streetscape Geometry mesh access for buildings/terrain
|
|
23
|
+
];
|
|
24
|
+
GEOSPATIAL_DEFAULTS = {
|
|
25
|
+
vps: {
|
|
26
|
+
accuracyThreshold: 25,
|
|
27
|
+
headingAccuracyThreshold: 25,
|
|
28
|
+
localizationTimeout: 3e4
|
|
29
|
+
},
|
|
30
|
+
anchor: {
|
|
31
|
+
latitude: 0,
|
|
32
|
+
longitude: 0,
|
|
33
|
+
altitude: 0,
|
|
34
|
+
heading: 0,
|
|
35
|
+
resolveTimeout: 1e4
|
|
36
|
+
},
|
|
37
|
+
terrainAnchor: {
|
|
38
|
+
latitude: 0,
|
|
39
|
+
longitude: 0,
|
|
40
|
+
altitudeOffset: 0,
|
|
41
|
+
heading: 0,
|
|
42
|
+
resolveTimeout: 1e4
|
|
43
|
+
},
|
|
44
|
+
rooftopAnchor: {
|
|
45
|
+
latitude: 0,
|
|
46
|
+
longitude: 0,
|
|
47
|
+
altitudeOffset: 0,
|
|
48
|
+
heading: 0,
|
|
49
|
+
resolveTimeout: 1e4
|
|
50
|
+
},
|
|
51
|
+
streetscape: {
|
|
52
|
+
enableTerrain: true,
|
|
53
|
+
enableBuildings: true
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// src/traits/constants/mobile/spatial-authoring.ts
|
|
60
|
+
var SPATIAL_AUTHORING_TRAITS, SPATIAL_AUTHORING_DEFAULTS;
|
|
61
|
+
var init_spatial_authoring = __esm({
|
|
62
|
+
"src/traits/constants/mobile/spatial-authoring.ts"() {
|
|
63
|
+
SPATIAL_AUTHORING_TRAITS = [
|
|
64
|
+
// --- Gyro Placement ---
|
|
65
|
+
"author_gyro_place",
|
|
66
|
+
// gyroscope-stabilised AR object placement
|
|
67
|
+
// --- Pinch Scale ---
|
|
68
|
+
"author_pinch_scale",
|
|
69
|
+
// pinch-to-scale selected entity
|
|
70
|
+
// --- Swipe Browse ---
|
|
71
|
+
"author_swipe_browse",
|
|
72
|
+
// horizontal swipe to browse trait palette
|
|
73
|
+
// --- Voice Commands ---
|
|
74
|
+
"author_voice_cmd",
|
|
75
|
+
// speech recognition → parse and execute commands
|
|
76
|
+
// --- Shake Undo ---
|
|
77
|
+
"author_shake_undo"
|
|
78
|
+
// shake device to undo last action
|
|
79
|
+
];
|
|
80
|
+
SPATIAL_AUTHORING_DEFAULTS = {
|
|
81
|
+
/** Gyro low-pass filter alpha (0-1, lower = smoother) */
|
|
82
|
+
gyroFilterAlpha: 0.15,
|
|
83
|
+
/** Minimum pinch scale factor */
|
|
84
|
+
pinchScaleMin: 0.1,
|
|
85
|
+
/** Maximum pinch scale factor */
|
|
86
|
+
pinchScaleMax: 10,
|
|
87
|
+
/** Shake acceleration threshold (m/s^2) to trigger undo */
|
|
88
|
+
shakeThreshold: 12,
|
|
89
|
+
/** Speech recognition locale */
|
|
90
|
+
speechLocale: "en-US",
|
|
91
|
+
/** Maximum undo stack depth */
|
|
92
|
+
undoStackDepth: 50
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// src/traits/constants/mobile/haptic-feedback.ts
|
|
98
|
+
var HAPTIC_FEEDBACK_TRAITS;
|
|
99
|
+
var init_haptic_feedback = __esm({
|
|
100
|
+
"src/traits/constants/mobile/haptic-feedback.ts"() {
|
|
101
|
+
HAPTIC_FEEDBACK_TRAITS = [
|
|
102
|
+
// --- Interaction ---
|
|
103
|
+
"haptic_touch",
|
|
104
|
+
// vibration on hologram touch
|
|
105
|
+
"haptic_grab",
|
|
106
|
+
// resistance pulse when grabbing
|
|
107
|
+
"haptic_throw",
|
|
108
|
+
// release burst when throwing
|
|
109
|
+
"haptic_impact",
|
|
110
|
+
// impact feedback on collision
|
|
111
|
+
"haptic_select",
|
|
112
|
+
// click feedback on selection
|
|
113
|
+
// --- Ambient ---
|
|
114
|
+
"haptic_proximity",
|
|
115
|
+
// increasing vibration as hand nears hologram
|
|
116
|
+
"haptic_texture",
|
|
117
|
+
// surface texture simulation (rough, smooth, bumpy)
|
|
118
|
+
"haptic_resistance",
|
|
119
|
+
// force feedback simulation via vibration patterns
|
|
120
|
+
// --- System ---
|
|
121
|
+
"haptic_enable",
|
|
122
|
+
// enable haptic feedback engine
|
|
123
|
+
"haptic_intensity",
|
|
124
|
+
// global intensity multiplier (0.0-1.0)
|
|
125
|
+
"haptic_pattern_library"
|
|
126
|
+
// load custom haptic patterns (AHAP on iOS, VibrationEffect on Android)
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// src/traits/constants/mobile/nearby-connections.ts
|
|
132
|
+
var NEARBY_CONNECTIONS_TRAITS;
|
|
133
|
+
var init_nearby_connections = __esm({
|
|
134
|
+
"src/traits/constants/mobile/nearby-connections.ts"() {
|
|
135
|
+
NEARBY_CONNECTIONS_TRAITS = [
|
|
136
|
+
// --- Discovery ---
|
|
137
|
+
"nearby_discover",
|
|
138
|
+
// discover nearby devices running same .holo scene
|
|
139
|
+
"nearby_advertise",
|
|
140
|
+
// advertise this device as joinable
|
|
141
|
+
"nearby_auto_connect",
|
|
142
|
+
// automatically connect when same scene detected
|
|
143
|
+
// --- Mesh ---
|
|
144
|
+
"nearby_mesh",
|
|
145
|
+
// form local mesh network (star or mesh topology)
|
|
146
|
+
"nearby_max_peers",
|
|
147
|
+
// maximum number of connected peers
|
|
148
|
+
"nearby_bandwidth",
|
|
149
|
+
// connection strategy: HIGH_BANDWIDTH or LOW_POWER
|
|
150
|
+
// --- Sync ---
|
|
151
|
+
"nearby_p2p_sync",
|
|
152
|
+
// sync .holo scene state P2P via Loro CRDT
|
|
153
|
+
"nearby_broadcast",
|
|
154
|
+
// broadcast events to all connected peers
|
|
155
|
+
"nearby_spatial_anchor_share"
|
|
156
|
+
// share spatial anchors between nearby devices
|
|
157
|
+
];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// src/traits/constants/mobile/foldable-display.ts
|
|
162
|
+
var FOLDABLE_DISPLAY_TRAITS;
|
|
163
|
+
var init_foldable_display = __esm({
|
|
164
|
+
"src/traits/constants/mobile/foldable-display.ts"() {
|
|
165
|
+
FOLDABLE_DISPLAY_TRAITS = [
|
|
166
|
+
"foldable_detect",
|
|
167
|
+
// detect foldable device and fold state
|
|
168
|
+
"foldable_split_view",
|
|
169
|
+
// AR viewfinder on one panel, controls on other
|
|
170
|
+
"foldable_flex_mode",
|
|
171
|
+
// Flip flex mode: top AR, bottom controls
|
|
172
|
+
"foldable_tabletop",
|
|
173
|
+
// tabletop mode: phone stands up, AR projects forward
|
|
174
|
+
"foldable_hinge_angle",
|
|
175
|
+
// expose hinge angle as input parameter
|
|
176
|
+
"foldable_continuity"
|
|
177
|
+
// seamless transition between fold states
|
|
178
|
+
];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// src/traits/constants/mobile/samsung-dex.ts
|
|
183
|
+
var SAMSUNG_DEX_TRAITS;
|
|
184
|
+
var init_samsung_dex = __esm({
|
|
185
|
+
"src/traits/constants/mobile/samsung-dex.ts"() {
|
|
186
|
+
SAMSUNG_DEX_TRAITS = [
|
|
187
|
+
"dex_detect",
|
|
188
|
+
// detect Samsung DeX connection
|
|
189
|
+
"dex_handoff",
|
|
190
|
+
// hand off .holo scene from mobile AR to desktop view
|
|
191
|
+
"dex_desktop_controls",
|
|
192
|
+
// enable mouse/keyboard controls in DeX mode
|
|
193
|
+
"dex_multi_window",
|
|
194
|
+
// support multi-window layout in DeX
|
|
195
|
+
"dex_resolution_adapt"
|
|
196
|
+
// adapt rendering resolution to external display
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// src/traits/constants/mobile/webxr.ts
|
|
202
|
+
var WEBXR_TRAITS;
|
|
203
|
+
var init_webxr = __esm({
|
|
204
|
+
"src/traits/constants/mobile/webxr.ts"() {
|
|
205
|
+
WEBXR_TRAITS = [
|
|
206
|
+
// --- Session ---
|
|
207
|
+
"webxr_session",
|
|
208
|
+
// request immersive-ar or immersive-vr session
|
|
209
|
+
"webxr_inline",
|
|
210
|
+
// inline XR (non-immersive, preview mode)
|
|
211
|
+
// --- Features ---
|
|
212
|
+
"webxr_hit_test",
|
|
213
|
+
// ray-surface hit testing for placement
|
|
214
|
+
"webxr_anchors",
|
|
215
|
+
// persistent anchors across frames
|
|
216
|
+
"webxr_light_estimation",
|
|
217
|
+
// real-world lighting probe for hologram shading
|
|
218
|
+
"webxr_dom_overlay",
|
|
219
|
+
// HTML DOM overlay on top of XR scene
|
|
220
|
+
"webxr_depth_sensing",
|
|
221
|
+
// depth buffer access for occlusion
|
|
222
|
+
"webxr_hand_tracking",
|
|
223
|
+
// WebXR hand tracking API (where supported)
|
|
224
|
+
// --- Rendering ---
|
|
225
|
+
"webxr_layers",
|
|
226
|
+
// XR composition layers (projection, quad, cylinder)
|
|
227
|
+
"webxr_framebuffer",
|
|
228
|
+
// direct framebuffer access for custom rendering
|
|
229
|
+
"webxr_reference_space"
|
|
230
|
+
// reference space type (local, local-floor, bounded-floor)
|
|
231
|
+
];
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
// src/traits/constants/mobile/google-lens.ts
|
|
236
|
+
var GOOGLE_LENS_TRAITS;
|
|
237
|
+
var init_google_lens = __esm({
|
|
238
|
+
"src/traits/constants/mobile/google-lens.ts"() {
|
|
239
|
+
GOOGLE_LENS_TRAITS = [
|
|
240
|
+
"lens_recognize",
|
|
241
|
+
// enable object/scene recognition
|
|
242
|
+
"lens_text_overlay",
|
|
243
|
+
// OCR text as holographic overlay
|
|
244
|
+
"lens_product_id",
|
|
245
|
+
// product identification and info overlay
|
|
246
|
+
"lens_translate",
|
|
247
|
+
// real-time text translation overlay
|
|
248
|
+
"lens_entity_pipe",
|
|
249
|
+
// pipe recognized entities into .holo scene graph
|
|
250
|
+
"lens_plant_animal_id",
|
|
251
|
+
// plant/animal species identification
|
|
252
|
+
"lens_landmark_info"
|
|
253
|
+
// landmark/building information overlay
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// src/traits/constants/mobile/depth-scanner.ts
|
|
259
|
+
var DEPTH_SCANNER_TRAITS, DEPTH_SCANNER_DEFAULTS;
|
|
260
|
+
var init_depth_scanner = __esm({
|
|
261
|
+
"src/traits/constants/mobile/depth-scanner.ts"() {
|
|
262
|
+
DEPTH_SCANNER_TRAITS = [
|
|
263
|
+
// --- Core ---
|
|
264
|
+
"depth_scan",
|
|
265
|
+
// enables depth scanning pipeline
|
|
266
|
+
"depth_auto_select",
|
|
267
|
+
// runtime picks best source: ToF > ARCore ML > stereo
|
|
268
|
+
// --- Backends ---
|
|
269
|
+
"depth_ml_arcore",
|
|
270
|
+
// ARCore Depth API — ML-based monocular depth (200+ devices)
|
|
271
|
+
"depth_tof",
|
|
272
|
+
// Time-of-Flight sensor path (hardware ToF required)
|
|
273
|
+
"depth_stereo",
|
|
274
|
+
// dual-camera stereo depth estimation
|
|
275
|
+
// --- Processing ---
|
|
276
|
+
"depth_confidence_map",
|
|
277
|
+
// per-pixel confidence image (0-255)
|
|
278
|
+
"depth_mesh_generate",
|
|
279
|
+
// convert depth map to triangle mesh
|
|
280
|
+
"depth_mesh_to_holo",
|
|
281
|
+
// convert reconstructed mesh to .holo scene graph
|
|
282
|
+
// --- Output ---
|
|
283
|
+
"depth_realtime",
|
|
284
|
+
// live depth updates every frame
|
|
285
|
+
"depth_export"
|
|
286
|
+
// export mesh as OBJ/GLB
|
|
287
|
+
];
|
|
288
|
+
DEPTH_SCANNER_DEFAULTS = {
|
|
289
|
+
scan: {
|
|
290
|
+
confidenceThreshold: 128,
|
|
291
|
+
maxDepthMeters: 5,
|
|
292
|
+
meshDecimation: 0.5
|
|
293
|
+
},
|
|
294
|
+
export: {
|
|
295
|
+
format: "glb",
|
|
296
|
+
includeColor: true,
|
|
297
|
+
includeNormals: true
|
|
298
|
+
},
|
|
299
|
+
realtime: {
|
|
300
|
+
targetFps: 30,
|
|
301
|
+
temporalSmoothing: true
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
export { DEPTH_SCANNER_DEFAULTS, DEPTH_SCANNER_TRAITS, FOLDABLE_DISPLAY_TRAITS, GEOSPATIAL_ARCORE_TRAITS, GEOSPATIAL_DEFAULTS, GOOGLE_LENS_TRAITS, HAPTIC_FEEDBACK_TRAITS, NEARBY_CONNECTIONS_TRAITS, SAMSUNG_DEX_TRAITS, SPATIAL_AUTHORING_DEFAULTS, SPATIAL_AUTHORING_TRAITS, WEBXR_TRAITS, init_depth_scanner, init_foldable_display, init_geospatial, init_google_lens, init_haptic_feedback, init_nearby_connections, init_samsung_dex, init_spatial_authoring, init_webxr };
|
|
308
|
+
//# sourceMappingURL=chunk-WKX5AMOY.js.map
|
|
309
|
+
//# sourceMappingURL=chunk-WKX5AMOY.js.map
|