@adaas/a-frame 0.0.23 → 0.1.2
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/.conf/tsconfig.browser.json +7 -1
- package/.conf/tsconfig.node.json +7 -1
- package/dist/browser/A-FrameBrowserStorageBlobs.context-CZTTvpn2.d.mts +53 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-CaGTyatz.d.mts +40 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-DjeEH8cn.d.mts +53 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-vCsuTea9.d.mts +40 -0
- package/dist/browser/A-FrameBundle.types-LzfgdMiQ.d.mts +71 -0
- package/dist/browser/A-FrameChannel.component-4mTNctXL.d.mts +704 -0
- package/dist/browser/A-FrameChannel.types-BXEKJK9t.d.mts +205 -0
- package/dist/browser/A-FrameChannel.types-Ba3wgUZj.d.mts +199 -0
- package/dist/browser/A-FrameChannel.types-BfINhQZe.d.mts +145 -0
- package/dist/browser/A-FrameChannel.types-DfacgYL1.d.mts +199 -0
- package/dist/browser/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
- package/dist/browser/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
- package/dist/browser/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
- package/dist/browser/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
- package/dist/browser/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
- package/dist/browser/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
- package/dist/browser/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
- package/dist/browser/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
- package/dist/browser/A-FrameEnv.types-DnK-CYVk.d.mts +21 -0
- package/dist/browser/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
- package/dist/browser/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
- package/dist/browser/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
- package/dist/browser/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
- package/dist/browser/bundle.d.mts +6 -2
- package/dist/browser/bundle.mjs +1 -1
- package/dist/browser/bundle.mjs.map +1 -1
- package/dist/browser/channel.d.mts +51 -74
- package/dist/browser/channel.mjs +1 -2
- package/dist/browser/channel.mjs.map +1 -1
- package/dist/browser/chunk-2RNFZSBL.mjs +2 -0
- package/dist/browser/chunk-2RNFZSBL.mjs.map +1 -0
- package/dist/browser/chunk-46LRNZRG.mjs +2 -0
- package/dist/browser/chunk-46LRNZRG.mjs.map +1 -0
- package/dist/browser/chunk-52HFO3OY.mjs +2 -0
- package/dist/browser/chunk-52HFO3OY.mjs.map +1 -0
- package/dist/browser/chunk-643KGQKR.mjs +3 -0
- package/dist/browser/chunk-643KGQKR.mjs.map +1 -0
- package/dist/browser/chunk-66BBIZAM.mjs +3 -0
- package/dist/browser/chunk-66BBIZAM.mjs.map +1 -0
- package/dist/browser/chunk-6NPQURSO.mjs +2 -0
- package/dist/browser/chunk-6NPQURSO.mjs.map +1 -0
- package/dist/browser/chunk-6WAOMX7M.mjs +2 -0
- package/dist/browser/chunk-6WAOMX7M.mjs.map +1 -0
- package/dist/browser/chunk-77HU5SRQ.mjs +2 -0
- package/dist/browser/chunk-77HU5SRQ.mjs.map +1 -0
- package/dist/browser/chunk-AET6XULU.mjs +2 -0
- package/dist/browser/chunk-AET6XULU.mjs.map +1 -0
- package/dist/browser/chunk-BIBPE2GT.mjs +3 -0
- package/dist/browser/chunk-BIBPE2GT.mjs.map +1 -0
- package/dist/browser/chunk-CDJKU4DK.mjs +2 -0
- package/dist/browser/chunk-CDJKU4DK.mjs.map +1 -0
- package/dist/browser/chunk-CT67Y46H.mjs +3 -0
- package/dist/browser/chunk-CT67Y46H.mjs.map +1 -0
- package/dist/browser/chunk-EFC7OUNO.mjs +2 -0
- package/dist/browser/chunk-EFC7OUNO.mjs.map +1 -0
- package/dist/browser/chunk-EJIX7H7A.mjs +2 -0
- package/dist/browser/chunk-EJIX7H7A.mjs.map +1 -0
- package/dist/browser/chunk-FHJ5ATND.mjs +3 -0
- package/dist/browser/chunk-FHJ5ATND.mjs.map +1 -0
- package/dist/browser/chunk-FVH2EEVP.mjs +3 -0
- package/dist/browser/chunk-FVH2EEVP.mjs.map +1 -0
- package/dist/browser/chunk-G6ULYKSU.mjs +2 -0
- package/dist/browser/chunk-G6ULYKSU.mjs.map +1 -0
- package/dist/browser/chunk-G7MKGKG5.mjs +2 -0
- package/dist/browser/chunk-G7MKGKG5.mjs.map +1 -0
- package/dist/browser/chunk-GOADBDTE.mjs +2 -0
- package/dist/browser/chunk-GOADBDTE.mjs.map +1 -0
- package/dist/browser/chunk-GOMJPGVB.mjs +3 -0
- package/dist/browser/chunk-GOMJPGVB.mjs.map +1 -0
- package/dist/browser/chunk-INQV5UZA.mjs +2 -0
- package/dist/browser/chunk-INQV5UZA.mjs.map +1 -0
- package/dist/browser/chunk-INXPVBTZ.mjs +2 -0
- package/dist/browser/chunk-INXPVBTZ.mjs.map +1 -0
- package/dist/browser/chunk-KFMVTZ7T.mjs +2 -0
- package/dist/browser/chunk-KFMVTZ7T.mjs.map +1 -0
- package/dist/browser/chunk-LK6C7C3S.mjs +2 -0
- package/dist/browser/chunk-LK6C7C3S.mjs.map +1 -0
- package/dist/browser/chunk-LOGRQOWP.mjs +3 -0
- package/dist/browser/chunk-LOGRQOWP.mjs.map +1 -0
- package/dist/browser/chunk-LZACYSUC.mjs +3 -0
- package/dist/browser/chunk-LZACYSUC.mjs.map +1 -0
- package/dist/browser/chunk-NTOIVRX3.mjs +2 -0
- package/dist/browser/chunk-NTOIVRX3.mjs.map +1 -0
- package/dist/browser/chunk-OES2N3X7.mjs +3 -0
- package/dist/browser/chunk-OES2N3X7.mjs.map +1 -0
- package/dist/browser/chunk-OFKV5GNB.mjs +1 -1
- package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -1
- package/dist/browser/chunk-OVLM5A32.mjs +3 -0
- package/dist/browser/chunk-OVLM5A32.mjs.map +1 -0
- package/dist/browser/chunk-QATIN7CO.mjs +1 -1
- package/dist/browser/chunk-QATIN7CO.mjs.map +1 -1
- package/dist/browser/chunk-QOL7CAUZ.mjs +2 -0
- package/dist/browser/chunk-QOL7CAUZ.mjs.map +1 -0
- package/dist/browser/chunk-RCB3PX4V.mjs +2 -0
- package/dist/browser/chunk-RCB3PX4V.mjs.map +1 -0
- package/dist/browser/chunk-RWQSCROK.mjs +3 -0
- package/dist/browser/chunk-RWQSCROK.mjs.map +1 -0
- package/dist/browser/chunk-TIAUMK2X.mjs +2 -0
- package/dist/browser/chunk-TIAUMK2X.mjs.map +1 -0
- package/dist/browser/chunk-TQPC5MYM.mjs +3 -0
- package/dist/browser/chunk-TQPC5MYM.mjs.map +1 -0
- package/dist/browser/chunk-UNIKTCXL.mjs +3 -0
- package/dist/browser/chunk-UNIKTCXL.mjs.map +1 -0
- package/dist/browser/chunk-UULJJ5C5.mjs +3 -0
- package/dist/browser/chunk-UULJJ5C5.mjs.map +1 -0
- package/dist/browser/chunk-VSSANMPF.mjs +2 -0
- package/dist/browser/chunk-VSSANMPF.mjs.map +1 -0
- package/dist/browser/chunk-VW2BZYNY.mjs +2 -0
- package/dist/browser/chunk-VW2BZYNY.mjs.map +1 -0
- package/dist/browser/chunk-WAXBOWM6.mjs +3 -0
- package/dist/browser/chunk-WAXBOWM6.mjs.map +1 -0
- package/dist/browser/chunk-WXCQCHAX.mjs +2 -0
- package/dist/browser/chunk-WXCQCHAX.mjs.map +1 -0
- package/dist/browser/chunk-XKKBIIZG.mjs +3 -0
- package/dist/browser/chunk-XKKBIIZG.mjs.map +1 -0
- package/dist/browser/chunk-XR7FVA5M.mjs +3 -0
- package/dist/browser/chunk-XR7FVA5M.mjs.map +1 -0
- package/dist/browser/chunk-YQJFTBGV.mjs +3 -0
- package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -0
- package/dist/browser/chunk-YTAMZDWC.mjs +3 -0
- package/dist/browser/chunk-YTAMZDWC.mjs.map +1 -0
- package/dist/browser/chunk-ZEONOTRL.mjs +2 -0
- package/dist/browser/chunk-ZEONOTRL.mjs.map +1 -0
- package/dist/browser/completion.d.mts +10 -0
- package/dist/browser/completion.mjs +2 -0
- package/dist/browser/completion.mjs.map +1 -0
- package/dist/browser/core.d.mts +8 -7
- package/dist/browser/core.mjs +1 -1
- package/dist/browser/core.mjs.map +1 -1
- package/dist/browser/credentials.d.mts +74 -0
- package/dist/browser/credentials.mjs +2 -0
- package/dist/browser/credentials.mjs.map +1 -0
- package/dist/browser/definition.d.mts +3 -2
- package/dist/browser/definition.mjs +1 -1
- package/dist/browser/dynamic-content.d.mts +13 -0
- package/dist/browser/dynamic-content.mjs +2 -0
- package/dist/browser/dynamic-content.mjs.map +1 -0
- package/dist/browser/dynamic-feature.d.mts +66 -6
- package/dist/browser/dynamic-feature.mjs +3 -1
- package/dist/browser/dynamic-feature.mjs.map +1 -1
- package/dist/browser/dynamic-structure.d.mts +77 -3
- package/dist/browser/dynamic-structure.mjs +1 -1
- package/dist/browser/dynamic-structure.mjs.map +1 -1
- package/dist/browser/env.d.mts +16 -2
- package/dist/browser/env.mjs +1 -1
- package/dist/browser/frame-index.d.mts +70 -9
- package/dist/browser/frame-index.mjs +1 -1
- package/dist/browser/models.d.mts +64 -0
- package/dist/browser/models.mjs +2 -0
- package/dist/browser/models.mjs.map +1 -0
- package/dist/browser/namespace.d.mts +1 -1
- package/dist/browser/namespace.mjs +1 -1
- package/dist/browser/schema.d.mts +10 -0
- package/dist/browser/schema.mjs +2 -0
- package/dist/browser/schema.mjs.map +1 -0
- package/dist/browser/segment.d.mts +13 -0
- package/dist/browser/segment.mjs +2 -0
- package/dist/browser/segment.mjs.map +1 -0
- package/dist/browser/storage.d.mts +13 -7
- package/dist/browser/storage.mjs +1 -1
- package/dist/browser/vector.d.mts +7 -0
- package/dist/browser/vector.mjs +1 -1
- package/dist/cli.cjs +5593 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/node/A-FrameChannel.component--YErPxf4.d.mts +97 -0
- package/dist/node/A-FrameChannel.component-BjgqMh1B.d.ts +97 -0
- package/dist/node/A-FrameChannel.component-C0O3TaRD.d.ts +679 -0
- package/dist/node/A-FrameChannel.component-CgBZYBz0.d.mts +379 -0
- package/dist/node/A-FrameChannel.component-CkZserv3.d.ts +97 -0
- package/dist/node/A-FrameChannel.component-DMA-3sUB.d.mts +679 -0
- package/dist/node/A-FrameChannel.component-DYV8omYR.d.ts +379 -0
- package/dist/node/A-FrameChannel.component-DwgYNfFn.d.mts +97 -0
- package/dist/node/A-FrameChannel.types-B3_xWKEO.d.mts +151 -0
- package/dist/node/A-FrameChannel.types-BGcVXTqa.d.ts +205 -0
- package/dist/node/A-FrameChannel.types-Boi8QqDK.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-BsE6bNky.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-C-gxXl8m.d.ts +151 -0
- package/dist/node/A-FrameChannel.types-DD2B11rf.d.ts +205 -0
- package/dist/node/A-FrameChannel.types-DYMgRiCF.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-DwyZRsOy.d.ts +205 -0
- package/dist/node/A-FrameCompletion.entity-Brx11JMp.d.ts +72 -0
- package/dist/node/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
- package/dist/node/A-FrameDefinition.entity-BIF0sclD.d.ts +370 -0
- package/dist/node/A-FrameDefinition.entity-Bt9ua6cn.d.ts +358 -0
- package/dist/node/A-FrameDefinition.entity-C0kzaGJ0.d.ts +143 -0
- package/dist/node/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
- package/dist/node/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
- package/dist/node/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
- package/dist/node/A-FrameDefinition.types-BA_pLGpo.d.ts +232 -0
- package/dist/node/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
- package/dist/node/A-FrameDynamicContentOperation.context-C_aH1gEn.d.ts +297 -0
- package/dist/node/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
- package/dist/node/A-FrameDynamicContentOperation.context-DRqH2c3o.d.ts +266 -0
- package/dist/node/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
- package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
- package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.ts +29 -0
- package/dist/node/A-FrameDynamicStructure.entity-BVCbolMd.d.ts +210 -0
- package/dist/node/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
- package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
- package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.ts +235 -0
- package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.mts +114 -0
- package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.ts +114 -0
- package/dist/node/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
- package/dist/node/A-FrameNamespace.entity-HDXcLGcS.d.ts +136 -0
- package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
- package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.ts +141 -0
- package/dist/node/A-FrameSegment.entity-C0izuOmC.d.ts +161 -0
- package/dist/node/A-FrameSegment.entity-CMCgFCWU.d.ts +146 -0
- package/dist/node/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
- package/dist/node/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
- package/dist/node/A-FrameStorage.component-BnNKzvpY.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CDztogHV.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CW0YgKDI.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-D4UEkIBx.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-DV_jwK6r.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-Di4EvbtC.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-emIH1a1M.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-y-JPiIQ4.d.ts +107 -0
- package/dist/node/bundle.cjs +66 -21
- package/dist/node/bundle.cjs.map +1 -1
- package/dist/node/bundle.d.mts +88 -24
- package/dist/node/bundle.d.ts +88 -24
- package/dist/node/bundle.mjs +65 -20
- package/dist/node/bundle.mjs.map +1 -1
- package/dist/node/channel.cjs +33 -26
- package/dist/node/channel.d.mts +10 -6
- package/dist/node/channel.d.ts +10 -6
- package/dist/node/channel.mjs +13 -6
- package/dist/node/chunk-2HUSP34L.mjs +55 -0
- package/dist/node/chunk-2HUSP34L.mjs.map +1 -0
- package/dist/node/chunk-2KXGI2E5.cjs +474 -0
- package/dist/node/chunk-2KXGI2E5.cjs.map +1 -0
- package/dist/node/chunk-2OQMOIR5.mjs +170 -0
- package/dist/node/chunk-2OQMOIR5.mjs.map +1 -0
- package/dist/node/chunk-2UI7RJ4Q.mjs +207 -0
- package/dist/node/chunk-2UI7RJ4Q.mjs.map +1 -0
- package/dist/node/chunk-3SLICJ3L.cjs +265 -0
- package/dist/node/chunk-3SLICJ3L.cjs.map +1 -0
- package/dist/node/chunk-3ZDHQOIU.cjs +92 -0
- package/dist/node/chunk-3ZDHQOIU.cjs.map +1 -0
- package/dist/node/chunk-5BKCX2RO.mjs +33 -0
- package/dist/node/chunk-5BKCX2RO.mjs.map +1 -0
- package/dist/node/chunk-5NCGXLP2.mjs +6 -0
- package/dist/node/chunk-5NCGXLP2.mjs.map +1 -0
- package/dist/node/chunk-5OTXZ7BB.mjs +53 -0
- package/dist/node/chunk-5OTXZ7BB.mjs.map +1 -0
- package/dist/node/chunk-5PYIATGT.mjs +469 -0
- package/dist/node/chunk-5PYIATGT.mjs.map +1 -0
- package/dist/node/chunk-64QCZG53.cjs +57 -0
- package/dist/node/chunk-64QCZG53.cjs.map +1 -0
- package/dist/node/chunk-652OEICJ.cjs +4 -0
- package/dist/node/chunk-652OEICJ.cjs.map +1 -0
- package/dist/node/chunk-674ZX6XJ.mjs +187 -0
- package/dist/node/chunk-674ZX6XJ.mjs.map +1 -0
- package/dist/node/chunk-6ID2IXYX.mjs +6 -0
- package/dist/node/chunk-6ID2IXYX.mjs.map +1 -0
- package/dist/node/chunk-6KAGWGTE.mjs +529 -0
- package/dist/node/chunk-6KAGWGTE.mjs.map +1 -0
- package/dist/node/chunk-7EM3Q7HA.mjs +655 -0
- package/dist/node/chunk-7EM3Q7HA.mjs.map +1 -0
- package/dist/node/chunk-7MVVMISA.cjs +293 -0
- package/dist/node/chunk-7MVVMISA.cjs.map +1 -0
- package/dist/node/chunk-7NSLGCAZ.mjs +1395 -0
- package/dist/node/chunk-7NSLGCAZ.mjs.map +1 -0
- package/dist/node/chunk-7OLLATCC.mjs +1289 -0
- package/dist/node/chunk-7OLLATCC.mjs.map +1 -0
- package/dist/node/chunk-7SEZMRLI.cjs +183 -0
- package/dist/node/chunk-7SEZMRLI.cjs.map +1 -0
- package/dist/node/chunk-A4CVDMSV.mjs +608 -0
- package/dist/node/chunk-A4CVDMSV.mjs.map +1 -0
- package/dist/node/chunk-A7CJIUYY.cjs +4 -0
- package/dist/node/chunk-A7CJIUYY.cjs.map +1 -0
- package/dist/node/chunk-ALFFUJ2J.mjs +163 -0
- package/dist/node/chunk-ALFFUJ2J.mjs.map +1 -0
- package/dist/node/chunk-AMMQ76RJ.mjs +179 -0
- package/dist/node/chunk-AMMQ76RJ.mjs.map +1 -0
- package/dist/node/chunk-AUKWKGVA.cjs +688 -0
- package/dist/node/chunk-AUKWKGVA.cjs.map +1 -0
- package/dist/node/chunk-AY6UMDWD.cjs +270 -0
- package/dist/node/chunk-AY6UMDWD.cjs.map +1 -0
- package/dist/node/chunk-B7ZDJXD3.cjs +1 -1
- package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -1
- package/dist/node/chunk-BBYOL3LM.cjs +1308 -0
- package/dist/node/chunk-BBYOL3LM.cjs.map +1 -0
- package/dist/node/chunk-BINGAHFW.cjs +1308 -0
- package/dist/node/chunk-BINGAHFW.cjs.map +1 -0
- package/dist/node/chunk-BSBY37MG.cjs +55 -0
- package/dist/node/chunk-BSBY37MG.cjs.map +1 -0
- package/dist/node/chunk-BWX7HFTH.cjs +209 -0
- package/dist/node/chunk-BWX7HFTH.cjs.map +1 -0
- package/dist/node/chunk-C37B34MH.cjs +188 -0
- package/dist/node/chunk-C37B34MH.cjs.map +1 -0
- package/dist/node/chunk-C6BBKHQG.cjs +250 -0
- package/dist/node/chunk-C6BBKHQG.cjs.map +1 -0
- package/dist/node/chunk-CLCAS67N.cjs +8 -0
- package/dist/node/chunk-CLCAS67N.cjs.map +1 -0
- package/dist/node/chunk-CNU3CRTR.mjs +43 -0
- package/dist/node/chunk-CNU3CRTR.mjs.map +1 -0
- package/dist/node/chunk-CV5FPKU6.mjs +6 -0
- package/dist/node/chunk-CV5FPKU6.mjs.map +1 -0
- package/dist/node/chunk-CZYOAFIR.mjs +129 -0
- package/dist/node/chunk-CZYOAFIR.mjs.map +1 -0
- package/dist/node/chunk-D2HTYEJZ.cjs +209 -0
- package/dist/node/chunk-D2HTYEJZ.cjs.map +1 -0
- package/dist/node/chunk-EMLZZPOT.cjs +1446 -0
- package/dist/node/chunk-EMLZZPOT.cjs.map +1 -0
- package/dist/node/chunk-EOIXXXBV.cjs +55 -0
- package/dist/node/chunk-EOIXXXBV.cjs.map +1 -0
- package/dist/node/chunk-F46TSY2K.cjs +541 -0
- package/dist/node/chunk-F46TSY2K.cjs.map +1 -0
- package/dist/node/chunk-F4UCOZW5.mjs +1 -1
- package/dist/node/chunk-F4UCOZW5.mjs.map +1 -1
- package/dist/node/chunk-F64CK4NI.mjs +53 -0
- package/dist/node/chunk-F64CK4NI.mjs.map +1 -0
- package/dist/node/chunk-FAV62EUG.cjs +35 -0
- package/dist/node/chunk-FAV62EUG.cjs.map +1 -0
- package/dist/node/chunk-GHSPKZUN.mjs +529 -0
- package/dist/node/chunk-GHSPKZUN.mjs.map +1 -0
- package/dist/node/chunk-GRNVK7DW.mjs +97 -0
- package/dist/node/chunk-GRNVK7DW.mjs.map +1 -0
- package/dist/node/chunk-GRR6NNWY.cjs +688 -0
- package/dist/node/chunk-GRR6NNWY.cjs.map +1 -0
- package/dist/node/chunk-H5VGRPD5.cjs +8 -0
- package/dist/node/chunk-H5VGRPD5.cjs.map +1 -0
- package/dist/node/chunk-HAMDDCPS.cjs +8 -0
- package/dist/node/chunk-HAMDDCPS.cjs.map +1 -0
- package/dist/node/chunk-HAORARSB.cjs +75 -0
- package/dist/node/chunk-HAORARSB.cjs.map +1 -0
- package/dist/node/chunk-HELNAM5Y.cjs +8 -0
- package/dist/node/chunk-HELNAM5Y.cjs.map +1 -0
- package/dist/node/chunk-HET6L5PD.mjs +530 -0
- package/dist/node/chunk-HET6L5PD.mjs.map +1 -0
- package/dist/node/chunk-HI5SEX53.mjs +264 -0
- package/dist/node/chunk-HI5SEX53.mjs.map +1 -0
- package/dist/node/chunk-HZGFXE4Q.mjs +6 -0
- package/dist/node/chunk-HZGFXE4Q.mjs.map +1 -0
- package/dist/node/chunk-IAL2NK2V.mjs +73 -0
- package/dist/node/chunk-IAL2NK2V.mjs.map +1 -0
- package/dist/node/chunk-IHELFDCW.mjs +327 -0
- package/dist/node/chunk-IHELFDCW.mjs.map +1 -0
- package/dist/node/chunk-ILD6OSYW.mjs +966 -0
- package/dist/node/chunk-ILD6OSYW.mjs.map +1 -0
- package/dist/node/chunk-IP6DFAO7.mjs +264 -0
- package/dist/node/chunk-IP6DFAO7.mjs.map +1 -0
- package/dist/node/chunk-IYEDO7OQ.cjs +276 -0
- package/dist/node/chunk-IYEDO7OQ.cjs.map +1 -0
- package/dist/node/chunk-JFPGFPQD.mjs +1413 -0
- package/dist/node/chunk-JFPGFPQD.mjs.map +1 -0
- package/dist/node/chunk-JHZGTVYF.cjs +999 -0
- package/dist/node/chunk-JHZGTVYF.cjs.map +1 -0
- package/dist/node/chunk-JN3UJBUH.mjs +608 -0
- package/dist/node/chunk-JN3UJBUH.mjs.map +1 -0
- package/dist/node/chunk-JNPDXCCN.mjs +530 -0
- package/dist/node/chunk-JNPDXCCN.mjs.map +1 -0
- package/dist/node/chunk-JQBYDEMW.mjs +1 -1
- package/dist/node/chunk-JQBYDEMW.mjs.map +1 -1
- package/dist/node/chunk-JQJ7N4NL.cjs +267 -0
- package/dist/node/chunk-JQJ7N4NL.cjs.map +1 -0
- package/dist/node/chunk-K4AJBPPY.cjs +174 -0
- package/dist/node/chunk-K4AJBPPY.cjs.map +1 -0
- package/dist/node/chunk-K7SXPJPK.cjs +131 -0
- package/dist/node/chunk-K7SXPJPK.cjs.map +1 -0
- package/dist/node/chunk-KFW4GE7H.mjs +1289 -0
- package/dist/node/chunk-KFW4GE7H.mjs.map +1 -0
- package/dist/node/chunk-KKL2DF2D.cjs +518 -0
- package/dist/node/chunk-KKL2DF2D.cjs.map +1 -0
- package/dist/node/chunk-KKMKQGTR.cjs +620 -0
- package/dist/node/chunk-KKMKQGTR.cjs.map +1 -0
- package/dist/node/chunk-KNTO7FCZ.mjs +207 -0
- package/dist/node/chunk-KNTO7FCZ.mjs.map +1 -0
- package/dist/node/chunk-KTKVW3PH.mjs +286 -0
- package/dist/node/chunk-KTKVW3PH.mjs.map +1 -0
- package/dist/node/chunk-KZPSF32W.mjs +33 -0
- package/dist/node/chunk-KZPSF32W.mjs.map +1 -0
- package/dist/node/chunk-LWKFCMA7.mjs +129 -0
- package/dist/node/chunk-LWKFCMA7.mjs.map +1 -0
- package/dist/node/chunk-M2ZSE6YJ.mjs +512 -0
- package/dist/node/chunk-M2ZSE6YJ.mjs.map +1 -0
- package/dist/node/chunk-M6DJYGDO.cjs +167 -0
- package/dist/node/chunk-M6DJYGDO.cjs.map +1 -0
- package/dist/node/chunk-MAHKDTOQ.mjs +3 -0
- package/dist/node/chunk-MAHKDTOQ.mjs.map +1 -0
- package/dist/node/chunk-MM2R2OM6.cjs +541 -0
- package/dist/node/chunk-MM2R2OM6.cjs.map +1 -0
- package/dist/node/chunk-MSOD5UQH.cjs +45 -0
- package/dist/node/chunk-MSOD5UQH.cjs.map +1 -0
- package/dist/node/chunk-MVAWR76Q.cjs +276 -0
- package/dist/node/chunk-MVAWR76Q.cjs.map +1 -0
- package/dist/node/chunk-MXUO7OR5.cjs +97 -0
- package/dist/node/chunk-MXUO7OR5.cjs.map +1 -0
- package/dist/node/chunk-N4THTV6P.cjs +131 -0
- package/dist/node/chunk-N4THTV6P.cjs.map +1 -0
- package/dist/node/chunk-NIXKAQVP.cjs +1 -1
- package/dist/node/chunk-NIXKAQVP.cjs.map +1 -1
- package/dist/node/chunk-NUPXUUPM.cjs +1428 -0
- package/dist/node/chunk-NUPXUUPM.cjs.map +1 -0
- package/dist/node/chunk-NWOUVAIS.cjs +45 -0
- package/dist/node/chunk-NWOUVAIS.cjs.map +1 -0
- package/dist/node/chunk-OK7I5OQ3.mjs +89 -0
- package/dist/node/chunk-OK7I5OQ3.mjs.map +1 -0
- package/dist/node/chunk-OMGYXCFM.mjs +248 -0
- package/dist/node/chunk-OMGYXCFM.mjs.map +1 -0
- package/dist/node/chunk-OYC6L5NX.mjs +6 -0
- package/dist/node/chunk-OYC6L5NX.mjs.map +1 -0
- package/dist/node/chunk-OYZAQMKD.mjs +263 -0
- package/dist/node/chunk-OYZAQMKD.mjs.map +1 -0
- package/dist/node/chunk-P2LULMNL.cjs +189 -0
- package/dist/node/chunk-P2LULMNL.cjs.map +1 -0
- package/dist/node/chunk-PABEFHCO.mjs +63 -0
- package/dist/node/chunk-PABEFHCO.mjs.map +1 -0
- package/dist/node/chunk-Q5NYJQP2.cjs +8 -0
- package/dist/node/chunk-Q5NYJQP2.cjs.map +1 -0
- package/dist/node/chunk-QCEWWJ3N.cjs +65 -0
- package/dist/node/chunk-QCEWWJ3N.cjs.map +1 -0
- package/dist/node/chunk-QW4AZ3Z2.cjs +542 -0
- package/dist/node/chunk-QW4AZ3Z2.cjs.map +1 -0
- package/dist/node/chunk-R2H234YO.cjs +8 -0
- package/dist/node/chunk-R2H234YO.cjs.map +1 -0
- package/dist/node/chunk-RK5WSZ5J.mjs +43 -0
- package/dist/node/chunk-RK5WSZ5J.mjs.map +1 -0
- package/dist/node/chunk-RPHYBPXT.mjs +30 -0
- package/dist/node/chunk-RPHYBPXT.mjs.map +1 -0
- package/dist/node/chunk-RVXASBMQ.mjs +273 -0
- package/dist/node/chunk-RVXASBMQ.mjs.map +1 -0
- package/dist/node/chunk-RVZTZD32.mjs +187 -0
- package/dist/node/chunk-RVZTZD32.mjs.map +1 -0
- package/dist/node/chunk-RWLKISZQ.mjs +273 -0
- package/dist/node/chunk-RWLKISZQ.mjs.map +1 -0
- package/dist/node/chunk-SDKIJDMH.mjs +655 -0
- package/dist/node/chunk-SDKIJDMH.mjs.map +1 -0
- package/dist/node/chunk-SESXQJDD.cjs +999 -0
- package/dist/node/chunk-SESXQJDD.cjs.map +1 -0
- package/dist/node/chunk-SKIEPTFS.mjs +6 -0
- package/dist/node/chunk-SKIEPTFS.mjs.map +1 -0
- package/dist/node/chunk-SL7FT5R5.mjs +94 -0
- package/dist/node/chunk-SL7FT5R5.mjs.map +1 -0
- package/dist/node/chunk-SXHQW74T.mjs +43 -0
- package/dist/node/chunk-SXHQW74T.mjs.map +1 -0
- package/dist/node/chunk-TEJKDVNT.cjs +620 -0
- package/dist/node/chunk-TEJKDVNT.cjs.map +1 -0
- package/dist/node/chunk-TQS5WYND.cjs +352 -0
- package/dist/node/chunk-TQS5WYND.cjs.map +1 -0
- package/dist/node/chunk-UCAWV2IG.mjs +184 -0
- package/dist/node/chunk-UCAWV2IG.mjs.map +1 -0
- package/dist/node/chunk-UDUJDEAO.cjs +189 -0
- package/dist/node/chunk-UDUJDEAO.cjs.map +1 -0
- package/dist/node/chunk-VMJDL4SS.cjs +542 -0
- package/dist/node/chunk-VMJDL4SS.cjs.map +1 -0
- package/dist/node/chunk-VNOZTB3B.cjs +8 -0
- package/dist/node/chunk-VNOZTB3B.cjs.map +1 -0
- package/dist/node/chunk-VPMBZGYR.mjs +327 -0
- package/dist/node/chunk-VPMBZGYR.mjs.map +1 -0
- package/dist/node/chunk-WEPNBKOA.mjs +6 -0
- package/dist/node/chunk-WEPNBKOA.mjs.map +1 -0
- package/dist/node/chunk-WTBRJXFG.cjs +100 -0
- package/dist/node/chunk-WTBRJXFG.cjs.map +1 -0
- package/dist/node/chunk-WXCQCHAX.mjs +3 -0
- package/dist/node/chunk-WXCQCHAX.mjs.map +1 -0
- package/dist/node/chunk-X3TRPYGV.cjs +352 -0
- package/dist/node/chunk-X3TRPYGV.cjs.map +1 -0
- package/dist/node/chunk-XFUF7SDO.cjs +35 -0
- package/dist/node/chunk-XFUF7SDO.cjs.map +1 -0
- package/dist/node/chunk-XP2EPEBM.mjs +966 -0
- package/dist/node/chunk-XP2EPEBM.mjs.map +1 -0
- package/dist/node/chunk-XPIJ6BKP.cjs +45 -0
- package/dist/node/chunk-XPIJ6BKP.cjs.map +1 -0
- package/dist/node/chunk-YRVBMP7I.cjs +542 -0
- package/dist/node/chunk-YRVBMP7I.cjs.map +1 -0
- package/dist/node/chunk-ZIHSN5EE.mjs +530 -0
- package/dist/node/chunk-ZIHSN5EE.mjs.map +1 -0
- package/dist/node/chunk-ZNQMUU7I.cjs +32 -0
- package/dist/node/chunk-ZNQMUU7I.cjs.map +1 -0
- package/dist/node/completion.cjs +23 -0
- package/dist/node/completion.cjs.map +1 -0
- package/dist/node/completion.d.mts +10 -0
- package/dist/node/completion.d.ts +10 -0
- package/dist/node/completion.mjs +6 -0
- package/dist/node/completion.mjs.map +1 -0
- package/dist/node/core.cjs +69 -42
- package/dist/node/core.cjs.map +1 -1
- package/dist/node/core.d.mts +14 -9
- package/dist/node/core.d.ts +14 -9
- package/dist/node/core.mjs +60 -33
- package/dist/node/core.mjs.map +1 -1
- package/dist/node/credentials.cjs +17 -0
- package/dist/node/credentials.cjs.map +1 -0
- package/dist/node/credentials.d.mts +74 -0
- package/dist/node/credentials.d.ts +74 -0
- package/dist/node/credentials.mjs +4 -0
- package/dist/node/credentials.mjs.map +1 -0
- package/dist/node/definition.cjs +6 -4
- package/dist/node/definition.d.mts +3 -2
- package/dist/node/definition.d.ts +3 -2
- package/dist/node/definition.mjs +4 -2
- package/dist/node/dynamic-content.cjs +30 -0
- package/dist/node/dynamic-content.cjs.map +1 -0
- package/dist/node/dynamic-content.d.mts +13 -0
- package/dist/node/dynamic-content.d.ts +13 -0
- package/dist/node/dynamic-content.mjs +9 -0
- package/dist/node/dynamic-content.mjs.map +1 -0
- package/dist/node/dynamic-feature.cjs +41 -7
- package/dist/node/dynamic-feature.cjs.map +1 -1
- package/dist/node/dynamic-feature.d.mts +66 -6
- package/dist/node/dynamic-feature.d.ts +66 -6
- package/dist/node/dynamic-feature.mjs +16 -9
- package/dist/node/dynamic-feature.mjs.map +1 -1
- package/dist/node/dynamic-structure.cjs +45 -136
- package/dist/node/dynamic-structure.cjs.map +1 -1
- package/dist/node/dynamic-structure.d.mts +77 -3
- package/dist/node/dynamic-structure.d.ts +77 -3
- package/dist/node/dynamic-structure.mjs +16 -135
- package/dist/node/dynamic-structure.mjs.map +1 -1
- package/dist/node/env.cjs +3 -3
- package/dist/node/env.d.mts +26 -0
- package/dist/node/env.d.ts +26 -0
- package/dist/node/env.mjs +2 -2
- package/dist/node/frame-index.cjs +7 -4
- package/dist/node/frame-index.d.mts +70 -9
- package/dist/node/frame-index.d.ts +70 -9
- package/dist/node/frame-index.mjs +6 -3
- package/dist/node/logger.d.mts +4 -113
- package/dist/node/logger.d.ts +4 -113
- package/dist/node/models.cjs +14 -0
- package/dist/node/models.cjs.map +1 -0
- package/dist/node/models.d.mts +64 -0
- package/dist/node/models.d.ts +64 -0
- package/dist/node/models.mjs +5 -0
- package/dist/node/models.mjs.map +1 -0
- package/dist/node/namespace.cjs +7 -5
- package/dist/node/namespace.d.mts +1 -1
- package/dist/node/namespace.d.ts +1 -1
- package/dist/node/namespace.mjs +4 -2
- package/dist/node/schema.cjs +22 -0
- package/dist/node/schema.cjs.map +1 -0
- package/dist/node/schema.d.mts +10 -0
- package/dist/node/schema.d.ts +10 -0
- package/dist/node/schema.mjs +5 -0
- package/dist/node/schema.mjs.map +1 -0
- package/dist/node/segment.cjs +25 -0
- package/dist/node/segment.cjs.map +1 -0
- package/dist/node/segment.d.mts +13 -0
- package/dist/node/segment.d.ts +13 -0
- package/dist/node/segment.mjs +8 -0
- package/dist/node/segment.mjs.map +1 -0
- package/dist/node/storage.cjs +17 -14
- package/dist/node/storage.d.mts +18 -6
- package/dist/node/storage.d.ts +18 -6
- package/dist/node/storage.mjs +11 -8
- package/dist/node/vector.cjs +2 -2
- package/dist/node/vector.d.mts +7 -0
- package/dist/node/vector.d.ts +7 -0
- package/dist/node/vector.mjs +1 -1
- package/examples/article/main.ts +358 -0
- package/examples/components.ts +660 -0
- package/examples/feature/file-system.components.ts +211 -0
- package/examples/feature/main.ts +374 -0
- package/examples/interaction/main.ts +426 -0
- package/examples/logger.ts +126 -0
- package/examples/structure/main.ts +195 -0
- package/examples/structure/renderer.ts +296 -0
- package/examples/structure/server-app.components.ts +387 -0
- package/jest.config.browser.ts +9 -0
- package/jest.config.examples.ts +49 -0
- package/jest.config.integration.ts +38 -0
- package/jest.config.ts +56 -27
- package/jest.config.unit.ts +38 -0
- package/package.json +75 -7
- package/src/index.ts +13 -0
- package/src/lib/A-Frame/A-Frame.component.env-browser.ts +19 -6
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +48 -19
- package/src/lib/A-Frame/A-Frame.context.ts +9 -8
- package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +4 -4
- package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -25
- package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +1 -1
- package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +54 -13
- package/src/lib/A-FrameBundle/index.browser.ts +1 -1
- package/src/lib/A-FrameBundle/index.ts +1 -1
- package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +18 -7
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +0 -2
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +14 -15
- package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +542 -7
- package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +2 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +65 -1
- package/src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts +112 -0
- package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +1 -0
- package/src/lib/A-FrameChannel/index.browser.ts +5 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts +3 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts +128 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.types.ts +40 -0
- package/src/lib/A-FrameCompletion/index.ts +3 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.constants.ts +5 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.entity.ts +120 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.types.ts +39 -0
- package/src/lib/A-FrameCredentials/index.ts +3 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +23 -1
- package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +34 -1
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts +5 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts +348 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts +10 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.types.ts +116 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts +288 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts +26 -0
- package/src/lib/A-FrameDynamicContent/index.ts +5 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.constants.ts +6 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +253 -4
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.error.ts +11 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +188 -4
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context.ts +33 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapIndex.context.ts +99 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapper.component.ts +182 -0
- package/src/lib/A-FrameDynamicFeature/index.ts +6 -1
- package/src/lib/A-FrameDynamicPatch/index.ts +2 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapIndex.context.ts +99 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapper.component.ts +320 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +2 -1
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +240 -128
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +183 -87
- package/src/lib/A-FrameDynamicStructure/index.ts +3 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +5 -1
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +23 -1
- package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +12 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +63 -13
- package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +53 -0
- package/src/lib/A-FrameModels/A-FrameModels.constants.ts +75 -0
- package/src/lib/A-FrameModels/index.ts +1 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +10 -3
- package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +5 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.constants.ts +4 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.entity.ts +154 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.types.ts +88 -0
- package/src/lib/A-FrameSchema/index.ts +3 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.constants.ts +12 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.entity.ts +221 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.types.ts +91 -0
- package/src/lib/A-FrameSegment/index.ts +3 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +10 -4
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +21 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +39 -21
- package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +124 -42
- package/src/lib/A-FrameVector/A-FrameVector.entity.ts +24 -0
- package/tests/A-Frame.browser.test.ts +167 -57
- package/tests/A-FrameDynamicContent.browser.test.ts +74 -0
- package/tests/integration/A-Frame.integration.test.ts +272 -0
- package/tests/integration/A-FrameCompletion.integration.test.ts +88 -0
- package/tests/integration/A-FrameContentMapping.integration.test.ts +261 -0
- package/tests/integration/A-FrameDefinition.integration.test.ts +154 -0
- package/tests/integration/A-FrameDynamicContent.integration.test.ts +126 -0
- package/tests/integration/A-FrameDynamicFeature.integration.test.ts +337 -0
- package/tests/integration/A-FrameDynamicStructure.integration.test.ts +264 -0
- package/tests/integration/A-FrameNamespace.integration.test.ts +109 -0
- package/tests/integration/A-FrameSchema.integration.test.ts +74 -0
- package/tests/integration/A-FrameSegment.integration.test.ts +102 -0
- package/tests/integration/A-FrameStorage.integration.test.ts +598 -0
- package/tests/jest.setup.browser.ts +1 -1
- package/tests/jest.setup.ts +4 -0
- package/tests/jest.setup.unit.ts +30 -0
- package/tests/unit/A-FrameChannel.unit.test.ts +124 -0
- package/tests/unit/A-FrameCompletion.unit.test.ts +25 -0
- package/tests/unit/A-FrameDefinition.unit.test.ts +36 -0
- package/tests/unit/A-FrameDynamicContent.unit.test.ts +28 -0
- package/tests/unit/A-FrameNamespace.unit.test.ts +35 -0
- package/tests/unit/A-FrameSchema.unit.test.ts +31 -0
- package/tests/unit/A-FrameSegment.unit.test.ts +20 -0
- package/tests/unit/mocks/MockA_FrameChannel.ts +112 -0
- package/tsconfig.browser.json +2 -0
- package/tsconfig.json +6 -0
- package/tsup.config.ts +52 -0
- package/tests/A-Frame.test.ts +0 -96
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A_Caller, A_Component, A_Context, A_Feature, A_Inject, A_Scope } from "@adaas/a-concept";
|
|
2
|
-
import { IA_Frame_Channel, A_Frame_EmbedResponse, A_Frame_GenerateResponse, A_Frame_CredentialResponse } from "./A-FrameChannel.types";
|
|
2
|
+
import { IA_Frame_Channel, A_Frame_EmbedResponse, A_Frame_GenerateResponse, A_Frame_CredentialResponse, A_FrameEmbedOptions } from "./A-FrameChannel.types";
|
|
3
3
|
import { A_FrameEnv } from "../A-FrameEnv/A-FrameEnv.fragment.env-node";
|
|
4
4
|
import { A_FrameFeatures } from "./A-FrameChannel.constants";
|
|
5
5
|
import { A_FrameChannelRequest } from "./A-FrameChannelRequest.context";
|
|
@@ -9,9 +9,27 @@ import { A_FrameDefinitionFeatures } from "../A-FrameDefinition/A-FrameDefinitio
|
|
|
9
9
|
import { A_FrameNamespaceFeatures } from "../A-FrameNamespace/A-FrameNamespace.constants";
|
|
10
10
|
import { A_FrameNamespace } from "../A-FrameNamespace";
|
|
11
11
|
import { A_FrameDynamicStructure } from "../A-FrameDynamicStructure/A-FrameDynamicStructure.entity";
|
|
12
|
-
import { A_FrameDynamicSession } from "../A-FrameDynamicSession/A-FrameDynamicSession.entity";
|
|
13
12
|
import { A_FrameDynamicStructureOperation } from "../A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context";
|
|
13
|
+
import { A_FrameDynamicStructureFeatures } from "../A-FrameDynamicStructure/A-FrameDynamicStructure.constants";
|
|
14
|
+
import { A_FrameStructureGenerateResponse, A_FrameStructurePatchResponse, A_FrameDynamicStructureDefinition, A_FrameDynamicStructureDefinitionEntity } from "../A-FrameDynamicStructure/A-FrameDynamicStructure.types";
|
|
14
15
|
import { A_FrameChannelSocket } from "./A-FrameChannelSocket.entity";
|
|
16
|
+
import { A_FrameDynamicContent } from "../A-FrameDynamicContent/A-FrameDynamicContent.entity";
|
|
17
|
+
import { A_FrameDynamicContentOperation } from "../A-FrameDynamicContent/A-FrameDynamicContentOperation.context";
|
|
18
|
+
import { A_FrameDynamicContentFeatures } from "../A-FrameDynamicContent/A-FrameDynamicContent.constants";
|
|
19
|
+
import { A_FrameContentGenerateResponse, A_FrameContentPatchResponse } from "../A-FrameDynamicContent/A-FrameDynamicContent.types";
|
|
20
|
+
import { A_Frame_CompletionResponse } from "./A-FrameChannel.types";
|
|
21
|
+
import { A_FrameSegment, A_FrameSegmentFeatures } from "../A-FrameSegment";
|
|
22
|
+
import { A_FrameCompletion, A_FrameCompletionFeatures } from "../A-FrameCompletion";
|
|
23
|
+
import { A_FrameSchema, A_FrameSchemaFeatures } from "../A-FrameSchema";
|
|
24
|
+
import { A_Frame_SchemaResponse } from "./A-FrameChannel.types";
|
|
25
|
+
import { A_FrameDynamicFeature } from "../A-FrameDynamicFeature/A-FrameDynamicFeature.entity";
|
|
26
|
+
import { A_FrameDynamicFeatureOperation } from "../A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context";
|
|
27
|
+
import { A_FrameDynamicFeatureFeatures } from "../A-FrameDynamicFeature/A-FrameDynamicFeature.constants";
|
|
28
|
+
import {
|
|
29
|
+
A_FrameDynamicFeatureDefinition,
|
|
30
|
+
A_FrameFeatureGenerateResponse,
|
|
31
|
+
A_FrameFeaturePatchResponse,
|
|
32
|
+
} from "../A-FrameDynamicFeature/A-FrameDynamicFeature.types";
|
|
15
33
|
|
|
16
34
|
/**
|
|
17
35
|
* A_FrameChannel — Node.js environment
|
|
@@ -25,7 +43,7 @@ import { A_FrameChannelSocket } from "./A-FrameChannelSocket.entity";
|
|
|
25
43
|
export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
26
44
|
|
|
27
45
|
async generate(prompt: string): Promise<A_FrameChannelRequest<A_Frame_GenerateResponse>> {
|
|
28
|
-
const request = new A_FrameChannelRequest<A_Frame_GenerateResponse>('POST', '/api/completions', { prompt, max_tokens: 512 });
|
|
46
|
+
const request = new A_FrameChannelRequest<A_Frame_GenerateResponse>('POST', '/api/v1/completions', { prompt, max_tokens: 512 });
|
|
29
47
|
|
|
30
48
|
const executionScope = new A_Scope({
|
|
31
49
|
name: 'A_FrameChannel.generate',
|
|
@@ -48,8 +66,12 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
48
66
|
}
|
|
49
67
|
}
|
|
50
68
|
|
|
51
|
-
async embed(input: string | string[]): Promise<A_FrameChannelRequest<A_Frame_EmbedResponse>> {
|
|
52
|
-
const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/embeddings', {
|
|
69
|
+
async embed(input: string | string[], options?: A_FrameEmbedOptions): Promise<A_FrameChannelRequest<A_Frame_EmbedResponse>> {
|
|
70
|
+
const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/embeddings', {
|
|
71
|
+
input,
|
|
72
|
+
...(options?.model && { model: options.model }),
|
|
73
|
+
...(options?.task && { task: options.task }),
|
|
74
|
+
});
|
|
53
75
|
|
|
54
76
|
const executionScope = new A_Scope({
|
|
55
77
|
name: 'A_FrameChannel.embed',
|
|
@@ -72,7 +94,7 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
72
94
|
}
|
|
73
95
|
|
|
74
96
|
async getCredentials(): Promise<A_FrameChannelRequest<A_Frame_CredentialResponse>> {
|
|
75
|
-
const request = new A_FrameChannelRequest<A_Frame_CredentialResponse>('GET', '/api/credentials/me');
|
|
97
|
+
const request = new A_FrameChannelRequest<A_Frame_CredentialResponse>('GET', '/api/v1/credentials/me');
|
|
76
98
|
|
|
77
99
|
const executionScope = new A_Scope({
|
|
78
100
|
name: 'A_FrameChannel.getCredentials',
|
|
@@ -129,6 +151,7 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
129
151
|
) {
|
|
130
152
|
const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/definition/embed', {
|
|
131
153
|
definition: definition.toJSON(),
|
|
154
|
+
model: definition.requestedModel,
|
|
132
155
|
});
|
|
133
156
|
|
|
134
157
|
const executionScope = new A_Scope({
|
|
@@ -159,6 +182,7 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
159
182
|
aFrameVersion: env.A_FRAME_VERSION!,
|
|
160
183
|
credentialId: response.meta.credential_id!,
|
|
161
184
|
date: response.date,
|
|
185
|
+
aFrameMeta: response.aFrameMeta,
|
|
162
186
|
});
|
|
163
187
|
} catch (err) {
|
|
164
188
|
throw new A_FrameChannelError({
|
|
@@ -182,6 +206,7 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
182
206
|
|
|
183
207
|
const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/namespace/embed', {
|
|
184
208
|
namespace: namespace.toJSON(),
|
|
209
|
+
model: namespace.requestedModel,
|
|
185
210
|
});
|
|
186
211
|
|
|
187
212
|
const executionScope = new A_Scope({
|
|
@@ -224,16 +249,283 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
224
249
|
}
|
|
225
250
|
|
|
226
251
|
|
|
252
|
+
@A_Feature.Extend({
|
|
253
|
+
name: A_FrameSegmentFeatures.Embed,
|
|
254
|
+
scope: [A_FrameSegment],
|
|
255
|
+
})
|
|
256
|
+
async embedSegment(
|
|
257
|
+
@A_Inject(A_Caller) segment: A_FrameSegment,
|
|
258
|
+
@A_Inject(A_FrameEnv) env: A_FrameEnv,
|
|
259
|
+
) {
|
|
260
|
+
|
|
261
|
+
const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/segment/embed', {
|
|
262
|
+
segment: segment.toJSON(),
|
|
263
|
+
task: segment.options?.task,
|
|
264
|
+
model: segment.options?.model,
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
const executionScope = new A_Scope({
|
|
268
|
+
name: 'A_FrameChannel.embedNamespace',
|
|
269
|
+
fragments: [request]
|
|
270
|
+
})
|
|
271
|
+
.inherit(A_Context.scope(this));
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
try {
|
|
275
|
+
await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;
|
|
276
|
+
executionScope.destroy();
|
|
277
|
+
|
|
278
|
+
const response = request.response!;
|
|
279
|
+
if (!response.data || !response.data[0] || !response.data[0].embedding) {
|
|
280
|
+
throw new A_FrameChannelError({
|
|
281
|
+
title: A_FrameChannelError.InvalidRequest,
|
|
282
|
+
description: `Error during embed a segment: ${segment.content}`
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const vector = new Float32Array(response.data[0].embedding);
|
|
287
|
+
|
|
288
|
+
segment.fromJSON({
|
|
289
|
+
aseid: segment.aseid.toString(),
|
|
290
|
+
content: segment.content,
|
|
291
|
+
hash: segment.hash,
|
|
292
|
+
embedding: vector,
|
|
293
|
+
model: response.model,
|
|
294
|
+
// dimensions: response.meta.dimensions,
|
|
295
|
+
// inputCount: response.meta.input_count,
|
|
296
|
+
aFrameServerVersion: response.meta.server_version!,
|
|
297
|
+
aFrameVersion: env.A_FRAME_VERSION!,
|
|
298
|
+
credentialId: response.meta.credential_id!,
|
|
299
|
+
embeddedAt: response.date,
|
|
300
|
+
});
|
|
301
|
+
} catch (err) {
|
|
302
|
+
throw new A_FrameChannelError({
|
|
303
|
+
title: A_FrameChannelError.RequestFailed,
|
|
304
|
+
description: `Failed to embed segment with content "${segment.content}": ${err instanceof Error ? err.message : String(err)}`,
|
|
305
|
+
});
|
|
306
|
+
}
|
|
227
307
|
|
|
308
|
+
}
|
|
228
309
|
|
|
229
310
|
|
|
230
311
|
|
|
312
|
+
/**
|
|
313
|
+
* Feature implementation for A_FrameDynamicStructure.generate().
|
|
314
|
+
*
|
|
315
|
+
* Calls POST /api/v1/structure/generate — the server returns element
|
|
316
|
+
* descriptions with embeddings. The raw definition (embeddings included) is
|
|
317
|
+
* stored on the entity so the separate `map()` phase can use them later.
|
|
318
|
+
*/
|
|
319
|
+
@A_Feature.Extend({
|
|
320
|
+
name: A_FrameDynamicStructureFeatures.Generate,
|
|
321
|
+
scope: [A_FrameDynamicStructure],
|
|
322
|
+
})
|
|
231
323
|
async generateDynamicStructure(
|
|
232
324
|
@A_Inject(A_Caller) structure: A_FrameDynamicStructure,
|
|
233
|
-
@A_Inject(A_FrameDynamicSession) session: A_FrameDynamicSession,
|
|
234
325
|
@A_Inject(A_FrameDynamicStructureOperation) operation: A_FrameDynamicStructureOperation,
|
|
235
326
|
) {
|
|
327
|
+
const request = new A_FrameChannelRequest<A_FrameStructureGenerateResponse>(
|
|
328
|
+
'POST',
|
|
329
|
+
'/api/v1/structure/generate',
|
|
330
|
+
{
|
|
331
|
+
prompt: structure.prompt,
|
|
332
|
+
model: structure.modelName,
|
|
333
|
+
context: structure.contextHint,
|
|
334
|
+
metaHint: structure.metaHintValue,
|
|
335
|
+
includeBases: structure.includedBases,
|
|
336
|
+
excludeBases: structure.excludedBases,
|
|
337
|
+
enabledComponents: structure.enabledComponentsList,
|
|
338
|
+
},
|
|
339
|
+
);
|
|
340
|
+
|
|
341
|
+
const requestScope = new A_Scope({
|
|
342
|
+
name: 'A_FrameChannel.generateDynamicStructure',
|
|
343
|
+
fragments: [request],
|
|
344
|
+
}).inherit(A_Context.scope(this));
|
|
236
345
|
|
|
346
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
347
|
+
requestScope.destroy();
|
|
348
|
+
|
|
349
|
+
const resp = request.response!;
|
|
350
|
+
|
|
351
|
+
structure.hydrateFromGeneration(resp.definition, {
|
|
352
|
+
model: resp.model,
|
|
353
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Feature implementation for A_FrameDynamicStructure.patch().
|
|
359
|
+
*
|
|
360
|
+
* Calls POST /api/v1/structure/patch — the server returns an updated
|
|
361
|
+
* definition with fresh embeddings. The raw definition is stored on the
|
|
362
|
+
* entity; run `map()` afterwards to update the component-mapping result.
|
|
363
|
+
*/
|
|
364
|
+
@A_Feature.Extend({
|
|
365
|
+
name: A_FrameDynamicStructureFeatures.Patch,
|
|
366
|
+
scope: [A_FrameDynamicStructure],
|
|
367
|
+
})
|
|
368
|
+
async patchDynamicStructure(
|
|
369
|
+
@A_Inject(A_Caller) structure: A_FrameDynamicStructure,
|
|
370
|
+
@A_Inject(A_FrameDynamicStructureOperation) operation: A_FrameDynamicStructureOperation,
|
|
371
|
+
) {
|
|
372
|
+
const { instruction } = operation.params as { instruction: string };
|
|
373
|
+
|
|
374
|
+
const request = new A_FrameChannelRequest<A_FrameStructurePatchResponse>(
|
|
375
|
+
'POST',
|
|
376
|
+
'/api/v1/structure/patch',
|
|
377
|
+
{
|
|
378
|
+
originalPrompt: structure.prompt,
|
|
379
|
+
definition: this._stripStructureEmbeddings(structure.definition ?? { containers: [], components: [], fragments: [], entities: [] }),
|
|
380
|
+
patchInstruction: instruction,
|
|
381
|
+
model: structure.modelName,
|
|
382
|
+
context: structure.contextHint,
|
|
383
|
+
metaHint: structure.metaHintValue,
|
|
384
|
+
includeBases: structure.includedBases,
|
|
385
|
+
excludeBases: structure.excludedBases,
|
|
386
|
+
enabledComponents: structure.enabledComponentsList,
|
|
387
|
+
},
|
|
388
|
+
);
|
|
389
|
+
|
|
390
|
+
const requestScope = new A_Scope({
|
|
391
|
+
name: 'A_FrameChannel.patchDynamicStructure',
|
|
392
|
+
fragments: [request],
|
|
393
|
+
}).inherit(A_Context.scope(this));
|
|
394
|
+
|
|
395
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
396
|
+
requestScope.destroy();
|
|
397
|
+
|
|
398
|
+
const resp = request.response!;
|
|
399
|
+
|
|
400
|
+
structure.hydrateFromPatch(resp.definition, resp.patchSummary, {
|
|
401
|
+
model: resp.model,
|
|
402
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// ─── Structure helpers ─────────────────────────────────────────────────────
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Strip embedding arrays and any client-side match fields from a definition
|
|
410
|
+
* before sending it to the server (the server does not need embeddings back).
|
|
411
|
+
*/
|
|
412
|
+
private _stripStructureEmbeddings(def: A_FrameDynamicStructureDefinition): A_FrameDynamicStructureDefinition {
|
|
413
|
+
const strip = (el: A_FrameDynamicStructureDefinitionEntity): A_FrameDynamicStructureDefinitionEntity => {
|
|
414
|
+
const { embedding, ...rest } = el as any;
|
|
415
|
+
return rest as A_FrameDynamicStructureDefinitionEntity;
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
return {
|
|
419
|
+
containers: def.containers.map(c => ({
|
|
420
|
+
...strip(c),
|
|
421
|
+
components: (c.components ?? []).map(strip),
|
|
422
|
+
fragments: (c.fragments ?? []).map(strip),
|
|
423
|
+
entities: (c.entities ?? []).map(strip),
|
|
424
|
+
})),
|
|
425
|
+
components: def.components.map(strip),
|
|
426
|
+
fragments: def.fragments.map(strip),
|
|
427
|
+
entities: def.entities.map(strip),
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
// ─── DynamicFeature channel extensions ────────────────────────────────────
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Feature implementation for A_FrameDynamicFeature.generate().
|
|
435
|
+
*
|
|
436
|
+
* Calls POST /api/v1/feature/generate — the server decomposes the prompt
|
|
437
|
+
* into an ordered workflow: title, description, steps (with embeddings),
|
|
438
|
+
* and supporting components/fragments/entities.
|
|
439
|
+
*/
|
|
440
|
+
@A_Feature.Extend({
|
|
441
|
+
name: A_FrameDynamicFeatureFeatures.Generate,
|
|
442
|
+
scope: [A_FrameDynamicFeature],
|
|
443
|
+
})
|
|
444
|
+
async generateDynamicFeature(
|
|
445
|
+
@A_Inject(A_Caller) feature: A_FrameDynamicFeature,
|
|
446
|
+
@A_Inject(A_FrameDynamicFeatureOperation) operation: A_FrameDynamicFeatureOperation,
|
|
447
|
+
) {
|
|
448
|
+
const request = new A_FrameChannelRequest<A_FrameFeatureGenerateResponse>(
|
|
449
|
+
'POST',
|
|
450
|
+
'/api/v1/feature/generate',
|
|
451
|
+
{
|
|
452
|
+
prompt: feature.prompt,
|
|
453
|
+
model: feature.modelName,
|
|
454
|
+
context: feature.contextHint,
|
|
455
|
+
},
|
|
456
|
+
);
|
|
457
|
+
|
|
458
|
+
const requestScope = new A_Scope({
|
|
459
|
+
name: 'A_FrameChannel.generateDynamicFeature',
|
|
460
|
+
fragments: [request],
|
|
461
|
+
}).inherit(A_Context.scope(this));
|
|
462
|
+
|
|
463
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
464
|
+
requestScope.destroy();
|
|
465
|
+
|
|
466
|
+
const resp = request.response!;
|
|
467
|
+
feature.hydrateFromGeneration(resp.definition, {
|
|
468
|
+
model: resp.model,
|
|
469
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Feature implementation for A_FrameDynamicFeature.patch().
|
|
475
|
+
*
|
|
476
|
+
* Calls POST /api/v1/feature/patch — the server returns an updated workflow
|
|
477
|
+
* definition with fresh embeddings on all steps and elements.
|
|
478
|
+
*/
|
|
479
|
+
@A_Feature.Extend({
|
|
480
|
+
name: A_FrameDynamicFeatureFeatures.Patch,
|
|
481
|
+
scope: [A_FrameDynamicFeature],
|
|
482
|
+
})
|
|
483
|
+
async patchDynamicFeature(
|
|
484
|
+
@A_Inject(A_Caller) feature: A_FrameDynamicFeature,
|
|
485
|
+
@A_Inject(A_FrameDynamicFeatureOperation) operation: A_FrameDynamicFeatureOperation,
|
|
486
|
+
) {
|
|
487
|
+
const { instruction } = operation.params as { instruction: string };
|
|
488
|
+
|
|
489
|
+
const request = new A_FrameChannelRequest<A_FrameFeaturePatchResponse>(
|
|
490
|
+
'POST',
|
|
491
|
+
'/api/v1/feature/patch',
|
|
492
|
+
{
|
|
493
|
+
originalPrompt: feature.prompt,
|
|
494
|
+
definition: this._stripFeatureEmbeddings(
|
|
495
|
+
feature.definition ?? {
|
|
496
|
+
title: '', description: '', steps: [], components: [], fragments: [], entities: []
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
patchInstruction: instruction,
|
|
500
|
+
model: feature.modelName,
|
|
501
|
+
context: feature.contextHint,
|
|
502
|
+
},
|
|
503
|
+
);
|
|
504
|
+
|
|
505
|
+
const requestScope = new A_Scope({
|
|
506
|
+
name: 'A_FrameChannel.patchDynamicFeature',
|
|
507
|
+
fragments: [request],
|
|
508
|
+
}).inherit(A_Context.scope(this));
|
|
509
|
+
|
|
510
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
511
|
+
requestScope.destroy();
|
|
512
|
+
|
|
513
|
+
const resp = request.response!;
|
|
514
|
+
feature.hydrateFromPatch(resp.definition, resp.patchSummary, {
|
|
515
|
+
model: resp.model,
|
|
516
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
private _stripFeatureEmbeddings(def: A_FrameDynamicFeatureDefinition): A_FrameDynamicFeatureDefinition {
|
|
521
|
+
const strip = (el: any): any => { const { embedding, ...rest } = el; return rest; };
|
|
522
|
+
return {
|
|
523
|
+
...def,
|
|
524
|
+
steps: def.steps.map(strip),
|
|
525
|
+
components: def.components.map(strip),
|
|
526
|
+
fragments: def.fragments.map(strip),
|
|
527
|
+
entities: def.entities.map(strip),
|
|
528
|
+
};
|
|
237
529
|
}
|
|
238
530
|
|
|
239
531
|
|
|
@@ -266,6 +558,249 @@ export class A_FrameChannel extends A_Component implements IA_Frame_Channel {
|
|
|
266
558
|
// }
|
|
267
559
|
// }
|
|
268
560
|
|
|
561
|
+
|
|
562
|
+
// ─── Dynamic Content ──────────────────────────────────────────────────────
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Feature implementation for A_FrameDynamicContent.generate().
|
|
566
|
+
*
|
|
567
|
+
* Calls POST /api/v1/content/generate on the server and hydrates the
|
|
568
|
+
* content entity from the returned piece list.
|
|
569
|
+
*/
|
|
570
|
+
@A_Feature.Extend({
|
|
571
|
+
name: A_FrameDynamicContentFeatures.Generate,
|
|
572
|
+
scope: [A_FrameDynamicContent],
|
|
573
|
+
})
|
|
574
|
+
async generateDynamicContent(
|
|
575
|
+
@A_Inject(A_Caller) content: A_FrameDynamicContent,
|
|
576
|
+
@A_Inject(A_FrameDynamicContentOperation) operation: A_FrameDynamicContentOperation,
|
|
577
|
+
) {
|
|
578
|
+
const request = new A_FrameChannelRequest<A_FrameContentGenerateResponse>(
|
|
579
|
+
'POST',
|
|
580
|
+
'/api/v1/content/generate',
|
|
581
|
+
{
|
|
582
|
+
prompt: content.prompt,
|
|
583
|
+
model: content.modelName,
|
|
584
|
+
...(content.systemPrompt !== undefined ? { system: content.systemPrompt } : {}),
|
|
585
|
+
},
|
|
586
|
+
);
|
|
587
|
+
|
|
588
|
+
const requestScope = new A_Scope({
|
|
589
|
+
name: 'A_FrameChannel.generateDynamicContent',
|
|
590
|
+
fragments: [request],
|
|
591
|
+
}).inherit(A_Context.scope(this));
|
|
592
|
+
|
|
593
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
594
|
+
requestScope.destroy();
|
|
595
|
+
|
|
596
|
+
const resp = request.response!;
|
|
597
|
+
|
|
598
|
+
// Convert wire segments to proper A_FrameSegment domain objects.
|
|
599
|
+
// The channel is the adapter layer — it never passes raw serialized
|
|
600
|
+
// objects into the domain; it always constructs instances.
|
|
601
|
+
const segments = (resp.segments ?? []).map(w => {
|
|
602
|
+
const seg = new A_FrameSegment({ content: w.content, options: { task: 'document' } });
|
|
603
|
+
if (w.embedding?.length) {
|
|
604
|
+
seg.hydrateFromEmbedding(new Float32Array(w.embedding));
|
|
605
|
+
}
|
|
606
|
+
return seg;
|
|
607
|
+
});
|
|
608
|
+
|
|
609
|
+
content.hydrateFromGeneration(segments, {
|
|
610
|
+
model: resp.model,
|
|
611
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Feature implementation for A_FrameDynamicContent.patch().
|
|
617
|
+
*
|
|
618
|
+
* Sends the current piece list and a patch instruction to the server,
|
|
619
|
+
* then applies the returned operations to the content entity.
|
|
620
|
+
*/
|
|
621
|
+
@A_Feature.Extend({
|
|
622
|
+
name: A_FrameDynamicContentFeatures.Patch,
|
|
623
|
+
scope: [A_FrameDynamicContent],
|
|
624
|
+
})
|
|
625
|
+
async patchDynamicContent(
|
|
626
|
+
@A_Inject(A_Caller) content: A_FrameDynamicContent,
|
|
627
|
+
@A_Inject(A_FrameDynamicContentOperation) operation: A_FrameDynamicContentOperation,
|
|
628
|
+
) {
|
|
629
|
+
const { instruction, segments } = operation.params as { instruction: string; segments: A_FrameSegment[] };
|
|
630
|
+
|
|
631
|
+
// Use short positional wire IDs (s0, s1, …) to maximise LLM reliability
|
|
632
|
+
// when the model echoes them back as targetId values.
|
|
633
|
+
// We keep a reverse map to translate back to the real ASEID ids.
|
|
634
|
+
const wireIdToAseid = new Map<string, string>();
|
|
635
|
+
const wireSegments = segments.map((s, idx) => {
|
|
636
|
+
const wireId = `s${idx}`;
|
|
637
|
+
wireIdToAseid.set(wireId, String(s.id));
|
|
638
|
+
return {
|
|
639
|
+
id: wireId,
|
|
640
|
+
index: idx,
|
|
641
|
+
text: s.content,
|
|
642
|
+
vector: s.vector ? Array.from(s.vector.values) : undefined,
|
|
643
|
+
};
|
|
644
|
+
});
|
|
645
|
+
|
|
646
|
+
const request = new A_FrameChannelRequest<A_FrameContentPatchResponse>(
|
|
647
|
+
'POST',
|
|
648
|
+
'/api/v1/content/patch',
|
|
649
|
+
{
|
|
650
|
+
prompt: content.prompt,
|
|
651
|
+
segments: wireSegments,
|
|
652
|
+
instruction,
|
|
653
|
+
model: content.modelName,
|
|
654
|
+
...(content.systemPrompt !== undefined ? { system: content.systemPrompt } : {}),
|
|
655
|
+
},
|
|
656
|
+
);
|
|
657
|
+
|
|
658
|
+
const requestScope = new A_Scope({
|
|
659
|
+
name: 'A_FrameChannel.patchDynamicContent',
|
|
660
|
+
fragments: [request],
|
|
661
|
+
}).inherit(A_Context.scope(this));
|
|
662
|
+
|
|
663
|
+
await this.call(A_FrameFeatures.Request, requestScope);
|
|
664
|
+
requestScope.destroy();
|
|
665
|
+
|
|
666
|
+
const resp = request.response!;
|
|
667
|
+
|
|
668
|
+
// Translate wire ids (s0, s1, …) in targetId back to real ASEID ids
|
|
669
|
+
// so that applyOperation can look them up in the index.
|
|
670
|
+
const translatedOperations = resp.operations.map(op => ({
|
|
671
|
+
...op,
|
|
672
|
+
targetId: op.targetId
|
|
673
|
+
? (wireIdToAseid.get(op.targetId) ?? op.targetId)
|
|
674
|
+
: op.targetId,
|
|
675
|
+
}));
|
|
676
|
+
|
|
677
|
+
content.hydrateFromPatch(
|
|
678
|
+
{ ...resp, operations: translatedOperations },
|
|
679
|
+
{
|
|
680
|
+
model: resp.model,
|
|
681
|
+
serverVersion: resp.meta?.server_version ?? '0.0.0',
|
|
682
|
+
},
|
|
683
|
+
);
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
// ─── Completion ───────────────────────────────────────────────────────────
|
|
688
|
+
|
|
689
|
+
/**
|
|
690
|
+
* Feature implementation for A_FrameCompletion.generate().
|
|
691
|
+
*
|
|
692
|
+
* Calls POST /api/v1/completions/generate on the server, which performs a
|
|
693
|
+
* text completion followed by an embedding of the result in a single
|
|
694
|
+
* round-trip, then hydrates the entity with both values.
|
|
695
|
+
*/
|
|
696
|
+
@A_Feature.Extend({
|
|
697
|
+
name: A_FrameCompletionFeatures.Generate,
|
|
698
|
+
scope: [A_FrameCompletion],
|
|
699
|
+
})
|
|
700
|
+
async generateCompletion(
|
|
701
|
+
@A_Inject(A_Caller) completion: A_FrameCompletion,
|
|
702
|
+
@A_Inject(A_FrameEnv) env: A_FrameEnv,
|
|
703
|
+
) {
|
|
704
|
+
const request = new A_FrameChannelRequest<A_Frame_CompletionResponse>(
|
|
705
|
+
'POST',
|
|
706
|
+
'/api/v1/completions/generate',
|
|
707
|
+
{
|
|
708
|
+
prompt: completion.prompt,
|
|
709
|
+
options: completion.options,
|
|
710
|
+
},
|
|
711
|
+
);
|
|
712
|
+
|
|
713
|
+
const executionScope = new A_Scope({
|
|
714
|
+
name: 'A_FrameChannel.generateCompletion',
|
|
715
|
+
fragments: [request],
|
|
716
|
+
}).inherit(A_Context.scope(this));
|
|
717
|
+
|
|
718
|
+
try {
|
|
719
|
+
await this.call(A_FrameFeatures.Request, executionScope);
|
|
720
|
+
executionScope.destroy();
|
|
721
|
+
|
|
722
|
+
const response = request.response!;
|
|
723
|
+
|
|
724
|
+
if (!response.text) {
|
|
725
|
+
throw new A_FrameChannelError({
|
|
726
|
+
title: A_FrameChannelError.InvalidRequest,
|
|
727
|
+
description: `Invalid completion response for prompt "${completion.prompt}"`,
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
completion.hydrateFromGeneration({
|
|
732
|
+
text: response.text,
|
|
733
|
+
embedding: new Float32Array(response.embedding),
|
|
734
|
+
model: response.model,
|
|
735
|
+
date: response.date,
|
|
736
|
+
aFrameVersion: env.A_FRAME_VERSION!,
|
|
737
|
+
aFrameServerVersion: response.meta.server_version,
|
|
738
|
+
});
|
|
739
|
+
} catch (err) {
|
|
740
|
+
throw new A_FrameChannelError({
|
|
741
|
+
title: A_FrameChannelError.RequestFailed,
|
|
742
|
+
description: `Failed to generate completion for prompt "${completion.prompt}": ${err instanceof Error ? err.message : String(err)}`,
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Calls POST /api/v1/schema/extract on the server.
|
|
749
|
+
*
|
|
750
|
+
* Sends the prompt and schema descriptor to the Nova model, which returns
|
|
751
|
+
* a structured JSON object matching the schema. Hydrates the entity with
|
|
752
|
+
* the extracted data and provenance metadata.
|
|
753
|
+
*/
|
|
754
|
+
@A_Feature.Extend({
|
|
755
|
+
name: A_FrameSchemaFeatures.Extract,
|
|
756
|
+
scope: [A_FrameSchema],
|
|
757
|
+
})
|
|
758
|
+
async extractSchema<T extends Record<string, unknown>>(
|
|
759
|
+
@A_Inject(A_Caller) scheme: A_FrameSchema<T>,
|
|
760
|
+
@A_Inject(A_FrameEnv) env: A_FrameEnv,
|
|
761
|
+
) {
|
|
762
|
+
const request = new A_FrameChannelRequest<A_Frame_SchemaResponse<T>>(
|
|
763
|
+
'POST',
|
|
764
|
+
'/api/v1/schema/extract',
|
|
765
|
+
{
|
|
766
|
+
prompt: scheme.prompt,
|
|
767
|
+
schema: scheme.schema,
|
|
768
|
+
options: scheme.options,
|
|
769
|
+
},
|
|
770
|
+
);
|
|
771
|
+
|
|
772
|
+
const executionScope = new A_Scope({
|
|
773
|
+
name: 'A_FrameChannel.extractSchema',
|
|
774
|
+
fragments: [request],
|
|
775
|
+
}).inherit(A_Context.scope(this));
|
|
776
|
+
|
|
777
|
+
try {
|
|
778
|
+
await this.call(A_FrameFeatures.Request, executionScope);
|
|
779
|
+
executionScope.destroy();
|
|
780
|
+
|
|
781
|
+
const response = request.response!;
|
|
782
|
+
|
|
783
|
+
if (!response.data) {
|
|
784
|
+
throw new A_FrameChannelError({
|
|
785
|
+
title: A_FrameChannelError.InvalidRequest,
|
|
786
|
+
description: `Invalid scheme extraction response for prompt "${scheme.prompt}"`,
|
|
787
|
+
});
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
scheme.hydrateFromExtraction(response.data, {
|
|
791
|
+
model: response.model,
|
|
792
|
+
date: response.date,
|
|
793
|
+
aFrameVersion: env.A_FRAME_VERSION!,
|
|
794
|
+
aFrameServerVersion: response.meta.server_version,
|
|
795
|
+
});
|
|
796
|
+
} catch (err) {
|
|
797
|
+
throw new A_FrameChannelError({
|
|
798
|
+
title: A_FrameChannelError.RequestFailed,
|
|
799
|
+
description: `Failed to extract scheme for prompt "${scheme.prompt}": ${err instanceof Error ? err.message : String(err)}`,
|
|
800
|
+
});
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
|
|
269
804
|
}
|
|
270
805
|
|
|
271
806
|
|