@adaas/a-frame 0.0.21 → 0.0.23
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 +13 -0
- package/.conf/tsconfig.node.json +14 -0
- package/.env.example +12 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-OEQr85oq.d.mts +40 -0
- package/dist/browser/A-FrameBundle.types-DaaUvViw.d.mts +33 -0
- package/dist/browser/A-FrameChannel.types-DWOEUs28.d.mts +142 -0
- package/dist/browser/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
- package/dist/browser/A-FrameLogger.component.env-browser-BIPAP4oQ.d.mts +112 -0
- package/dist/browser/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
- package/dist/browser/bundle.d.mts +8 -0
- package/dist/browser/bundle.mjs +2 -0
- package/dist/browser/bundle.mjs.map +1 -0
- package/dist/browser/channel.d.mts +165 -0
- package/dist/browser/channel.mjs +3 -0
- package/dist/browser/channel.mjs.map +1 -0
- package/dist/browser/chunk-5TTVFB3G.mjs +2 -0
- package/dist/browser/chunk-5TTVFB3G.mjs.map +1 -0
- package/dist/browser/chunk-AYN7KUQT.mjs +3 -0
- package/dist/browser/chunk-AYN7KUQT.mjs.map +1 -0
- package/dist/browser/chunk-DMGQW3AO.mjs +2 -0
- package/dist/browser/chunk-DMGQW3AO.mjs.map +1 -0
- package/dist/browser/chunk-G66IL2DR.mjs +2 -0
- package/dist/browser/chunk-G66IL2DR.mjs.map +1 -0
- package/dist/browser/chunk-H6OZP4ZV.mjs +2 -0
- package/dist/browser/chunk-H6OZP4ZV.mjs.map +1 -0
- package/dist/browser/chunk-INS7RO3B.mjs +2 -0
- package/dist/browser/chunk-INS7RO3B.mjs.map +1 -0
- package/dist/browser/chunk-K4MZY4ME.mjs +2 -0
- package/dist/browser/chunk-K4MZY4ME.mjs.map +1 -0
- package/dist/browser/chunk-OFKV5GNB.mjs +3 -0
- package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -0
- package/dist/browser/chunk-QATIN7CO.mjs +3 -0
- package/dist/browser/chunk-QATIN7CO.mjs.map +1 -0
- package/dist/browser/chunk-QBBQ37P3.mjs +2 -0
- package/dist/browser/chunk-QBBQ37P3.mjs.map +1 -0
- package/dist/browser/chunk-VDVJWU5T.mjs +2 -0
- package/dist/browser/chunk-VDVJWU5T.mjs.map +1 -0
- package/dist/browser/chunk-X3C4I6YJ.mjs +2 -0
- package/dist/browser/chunk-X3C4I6YJ.mjs.map +1 -0
- package/dist/browser/chunk-ZVCTU2DN.mjs +3 -0
- package/dist/browser/chunk-ZVCTU2DN.mjs.map +1 -0
- package/dist/browser/core.d.mts +97 -0
- package/dist/browser/core.mjs +2 -0
- package/dist/browser/core.mjs.map +1 -0
- package/dist/browser/crypto.d.mts +35 -0
- package/dist/browser/crypto.mjs +2 -0
- package/dist/browser/crypto.mjs.map +1 -0
- package/dist/browser/definition.d.mts +13 -0
- package/dist/browser/definition.mjs +2 -0
- package/dist/browser/definition.mjs.map +1 -0
- package/dist/browser/dynamic-feature.d.mts +10 -0
- package/dist/browser/dynamic-feature.mjs +2 -0
- package/dist/browser/dynamic-feature.mjs.map +1 -0
- package/dist/browser/dynamic-structure.d.mts +12 -0
- package/dist/browser/dynamic-structure.mjs +2 -0
- package/dist/browser/dynamic-structure.mjs.map +1 -0
- package/dist/browser/env.d.mts +2 -0
- package/dist/browser/env.mjs +2 -0
- package/dist/browser/env.mjs.map +1 -0
- package/dist/browser/frame-index.d.mts +95 -0
- package/dist/browser/frame-index.mjs +2 -0
- package/dist/browser/frame-index.mjs.map +1 -0
- package/dist/browser/index.browser-CZlhzfSP.d.mts +22 -0
- package/dist/browser/index.d.mts +1 -144
- package/dist/browser/index.mjs +1 -1
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/logger.d.mts +41 -0
- package/dist/browser/logger.mjs +2 -0
- package/dist/browser/logger.mjs.map +1 -0
- package/dist/browser/namespace.d.mts +13 -0
- package/dist/browser/namespace.mjs +2 -0
- package/dist/browser/namespace.mjs.map +1 -0
- package/dist/browser/storage.d.mts +194 -0
- package/dist/browser/storage.mjs +2 -0
- package/dist/browser/storage.mjs.map +1 -0
- package/dist/browser/vector.d.mts +15 -0
- package/dist/browser/vector.mjs +2 -0
- package/dist/browser/vector.mjs.map +1 -0
- package/dist/index.cjs +0 -0
- package/dist/node/A-FrameChannel.component-BfBcs734.d.ts +62 -0
- package/dist/node/A-FrameChannel.component-NNKcFViw.d.mts +62 -0
- package/dist/node/A-FrameChannel.types-DQF-IiRq.d.mts +146 -0
- package/dist/node/A-FrameChannel.types-DQF-IiRq.d.ts +146 -0
- package/dist/node/A-FrameDefinition.entity-CAUOdEvU.d.ts +329 -0
- package/dist/node/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
- package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
- package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.ts +188 -0
- package/dist/node/A-FrameNamespace.entity-D3fZBGDx.d.ts +125 -0
- package/dist/node/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
- package/dist/node/A-FrameStorage.component-BYjHfHJJ.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CT01fs-t.d.ts +107 -0
- package/dist/node/bundle.cjs +101 -0
- package/dist/node/bundle.cjs.map +1 -0
- package/dist/node/bundle.d.mts +69 -0
- package/dist/node/bundle.d.ts +69 -0
- package/dist/node/bundle.mjs +76 -0
- package/dist/node/bundle.mjs.map +1 -0
- package/dist/node/channel.cjs +60 -0
- package/dist/node/channel.cjs.map +1 -0
- package/dist/node/channel.d.mts +61 -0
- package/dist/node/channel.d.ts +61 -0
- package/dist/node/channel.mjs +11 -0
- package/dist/node/channel.mjs.map +1 -0
- package/dist/node/chunk-3LOMGNWA.cjs +8 -0
- package/dist/node/chunk-3LOMGNWA.cjs.map +1 -0
- package/dist/node/chunk-3ONWH75E.mjs +257 -0
- package/dist/node/chunk-3ONWH75E.mjs.map +1 -0
- package/dist/node/chunk-3TD2PEDZ.mjs +53 -0
- package/dist/node/chunk-3TD2PEDZ.mjs.map +1 -0
- package/dist/node/chunk-442DXGOD.mjs +16 -0
- package/dist/node/chunk-442DXGOD.mjs.map +1 -0
- package/dist/node/chunk-6EFXNUL4.mjs +6 -0
- package/dist/node/chunk-6EFXNUL4.mjs.map +1 -0
- package/dist/node/chunk-7A6XGT5J.cjs +541 -0
- package/dist/node/chunk-7A6XGT5J.cjs.map +1 -0
- package/dist/node/chunk-AOQRXZPC.mjs +207 -0
- package/dist/node/chunk-AOQRXZPC.mjs.map +1 -0
- package/dist/node/chunk-APRYHBEF.mjs +171 -0
- package/dist/node/chunk-APRYHBEF.mjs.map +1 -0
- package/dist/node/chunk-B7BXP7K4.mjs +253 -0
- package/dist/node/chunk-B7BXP7K4.mjs.map +1 -0
- package/dist/node/chunk-B7ZDJXD3.cjs +35 -0
- package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -0
- package/dist/node/chunk-CP6JHUU6.cjs +541 -0
- package/dist/node/chunk-CP6JHUU6.cjs.map +1 -0
- package/dist/node/chunk-DDCEMKBP.mjs +655 -0
- package/dist/node/chunk-DDCEMKBP.mjs.map +1 -0
- package/dist/node/chunk-DMY44VUG.mjs +655 -0
- package/dist/node/chunk-DMY44VUG.mjs.map +1 -0
- package/dist/node/chunk-F4UCOZW5.mjs +33 -0
- package/dist/node/chunk-F4UCOZW5.mjs.map +1 -0
- package/dist/node/chunk-GBTFMT3K.cjs +256 -0
- package/dist/node/chunk-GBTFMT3K.cjs.map +1 -0
- package/dist/node/chunk-GNVXVK2B.cjs +8 -0
- package/dist/node/chunk-GNVXVK2B.cjs.map +1 -0
- package/dist/node/chunk-IIVYTS5M.mjs +239 -0
- package/dist/node/chunk-IIVYTS5M.mjs.map +1 -0
- package/dist/node/chunk-JQBYDEMW.mjs +33 -0
- package/dist/node/chunk-JQBYDEMW.mjs.map +1 -0
- package/dist/node/chunk-K4MZY4ME.mjs +3 -0
- package/dist/node/chunk-K4MZY4ME.mjs.map +1 -0
- package/dist/node/chunk-KK64VLZN.cjs +4 -0
- package/dist/node/chunk-KK64VLZN.cjs.map +1 -0
- package/dist/node/chunk-KLG6HKFU.cjs +175 -0
- package/dist/node/chunk-KLG6HKFU.cjs.map +1 -0
- package/dist/node/chunk-LJIZ47HO.cjs +688 -0
- package/dist/node/chunk-LJIZ47HO.cjs.map +1 -0
- package/dist/node/chunk-NIXKAQVP.cjs +35 -0
- package/dist/node/chunk-NIXKAQVP.cjs.map +1 -0
- package/dist/node/chunk-OI76LHVT.mjs +21 -0
- package/dist/node/chunk-OI76LHVT.mjs.map +1 -0
- package/dist/node/chunk-OJGCQNAH.mjs +529 -0
- package/dist/node/chunk-OJGCQNAH.mjs.map +1 -0
- package/dist/node/chunk-QFHZIG7Y.cjs +25 -0
- package/dist/node/chunk-QFHZIG7Y.cjs.map +1 -0
- package/dist/node/chunk-QFUZVN4Y.cjs +259 -0
- package/dist/node/chunk-QFUZVN4Y.cjs.map +1 -0
- package/dist/node/chunk-RRLTGGM7.cjs +209 -0
- package/dist/node/chunk-RRLTGGM7.cjs.map +1 -0
- package/dist/node/chunk-TO4BPKCY.mjs +6 -0
- package/dist/node/chunk-TO4BPKCY.mjs.map +1 -0
- package/dist/node/chunk-UKKCN7CQ.cjs +688 -0
- package/dist/node/chunk-UKKCN7CQ.cjs.map +1 -0
- package/dist/node/chunk-UPA7VN4R.mjs +153 -0
- package/dist/node/chunk-UPA7VN4R.mjs.map +1 -0
- package/dist/node/chunk-UTJ7CVVB.cjs +248 -0
- package/dist/node/chunk-UTJ7CVVB.cjs.map +1 -0
- package/dist/node/chunk-YVX4W6SI.cjs +155 -0
- package/dist/node/chunk-YVX4W6SI.cjs.map +1 -0
- package/dist/node/chunk-YWWGJ6EJ.cjs +55 -0
- package/dist/node/chunk-YWWGJ6EJ.cjs.map +1 -0
- package/dist/node/chunk-Z4HUCRK2.mjs +529 -0
- package/dist/node/chunk-Z4HUCRK2.mjs.map +1 -0
- package/dist/node/chunk-ZM2RLVVH.cjs +18 -0
- package/dist/node/chunk-ZM2RLVVH.cjs.map +1 -0
- package/dist/node/core.cjs +261 -0
- package/dist/node/core.cjs.map +1 -0
- package/dist/node/core.d.mts +76 -0
- package/dist/node/core.d.ts +76 -0
- package/dist/node/core.mjs +250 -0
- package/dist/node/core.mjs.map +1 -0
- package/dist/node/crypto.cjs +13 -0
- package/dist/node/crypto.cjs.map +1 -0
- package/dist/node/crypto.d.mts +44 -0
- package/dist/node/crypto.d.ts +44 -0
- package/dist/node/crypto.mjs +4 -0
- package/dist/node/crypto.mjs.map +1 -0
- package/dist/node/definition.cjs +19 -0
- package/dist/node/definition.cjs.map +1 -0
- package/dist/node/definition.d.mts +13 -0
- package/dist/node/definition.d.ts +13 -0
- package/dist/node/definition.mjs +6 -0
- package/dist/node/definition.mjs.map +1 -0
- package/dist/node/dynamic-feature.cjs +14 -0
- package/dist/node/dynamic-feature.cjs.map +1 -0
- package/dist/node/dynamic-feature.d.mts +10 -0
- package/dist/node/dynamic-feature.d.ts +10 -0
- package/dist/node/dynamic-feature.mjs +12 -0
- package/dist/node/dynamic-feature.mjs.map +1 -0
- package/dist/node/dynamic-structure.cjs +143 -0
- package/dist/node/dynamic-structure.cjs.map +1 -0
- package/dist/node/dynamic-structure.d.mts +12 -0
- package/dist/node/dynamic-structure.d.ts +12 -0
- package/dist/node/dynamic-structure.mjs +138 -0
- package/dist/node/dynamic-structure.mjs.map +1 -0
- package/dist/node/env.cjs +14 -0
- package/dist/node/env.cjs.map +1 -0
- package/dist/node/env.d.mts +22 -0
- package/dist/node/env.d.ts +22 -0
- package/dist/node/env.mjs +5 -0
- package/dist/node/env.mjs.map +1 -0
- package/dist/node/frame-index.cjs +16 -0
- package/dist/node/frame-index.cjs.map +1 -0
- package/dist/node/frame-index.d.mts +95 -0
- package/dist/node/frame-index.d.ts +95 -0
- package/dist/node/frame-index.mjs +7 -0
- package/dist/node/frame-index.mjs.map +1 -0
- package/dist/node/index.cjs +0 -288
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.mts +1 -144
- package/dist/node/index.d.ts +1 -144
- package/dist/node/index.mjs +0 -284
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/logger.cjs +41 -0
- package/dist/node/logger.cjs.map +1 -0
- package/dist/node/logger.d.mts +150 -0
- package/dist/node/logger.d.ts +150 -0
- package/dist/node/logger.mjs +4 -0
- package/dist/node/logger.mjs.map +1 -0
- package/dist/node/namespace.cjs +24 -0
- package/dist/node/namespace.cjs.map +1 -0
- package/dist/node/namespace.d.mts +13 -0
- package/dist/node/namespace.d.ts +13 -0
- package/dist/node/namespace.mjs +7 -0
- package/dist/node/namespace.mjs.map +1 -0
- package/dist/node/storage.cjs +42 -0
- package/dist/node/storage.cjs.map +1 -0
- package/dist/node/storage.d.mts +110 -0
- package/dist/node/storage.d.ts +110 -0
- package/dist/node/storage.mjs +13 -0
- package/dist/node/storage.mjs.map +1 -0
- package/dist/node/vector.cjs +13 -0
- package/dist/node/vector.cjs.map +1 -0
- package/dist/node/vector.d.mts +15 -0
- package/dist/node/vector.d.ts +15 -0
- package/dist/node/vector.mjs +4 -0
- package/dist/node/vector.mjs.map +1 -0
- package/jest.config.browser.ts +41 -0
- package/jest.config.ts +18 -8
- package/package.json +125 -13
- package/{index.ts → src/concept.ts} +5 -2
- package/src/helpers/Hash.helper.ts +14 -0
- package/src/index.ts +0 -24
- package/src/lib/A-Frame/A-Frame.component.env-browser.ts +124 -0
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +106 -0
- package/src/lib/A-Frame/A-Frame.component.ts +62 -0
- package/src/lib/A-Frame/A-Frame.context.ts +40 -0
- package/src/lib/{components/Index.component.ts/Index.error.ts → A-Frame/A-Frame.error.ts} +1 -1
- package/src/lib/{components/Index.component.ts/Index.guard.ts → A-Frame/A-Frame.guard.ts} +9 -6
- package/src/lib/A-Frame/A-Frame.meta.ts +27 -0
- package/src/lib/{components/Index.component.ts/Index.types.ts → A-Frame/A-Frame.types.ts} +52 -17
- package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +104 -0
- package/src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts +33 -0
- package/src/lib/A-Frame/index.browser.ts +10 -0
- package/src/lib/A-Frame/index.ts +10 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +5 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +31 -0
- package/src/lib/A-FrameBundle/index.browser.ts +6 -0
- package/src/lib/A-FrameBundle/index.ts +7 -0
- package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +333 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +63 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +586 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +273 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +39 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.error.ts +10 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +143 -0
- package/src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts +28 -0
- package/src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts +36 -0
- package/src/lib/A-FrameChannel/A-FrameChannelSocket.entity.ts +189 -0
- package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +144 -0
- package/src/lib/A-FrameChannel/index.browser.ts +3 -0
- package/src/lib/A-FrameChannel/index.ts +10 -0
- package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-browser.ts +123 -0
- package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-node.ts +204 -0
- package/src/lib/A-FrameCrypto/index.browser.ts +1 -0
- package/src/lib/A-FrameCrypto/index.ts +1 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.constants.ts +8 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +290 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +109 -0
- package/src/lib/A-FrameDefinition/index.ts +3 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +13 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +10 -0
- package/src/lib/A-FrameDynamicFeature/index.ts +2 -0
- package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.entity.ts +38 -0
- package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.types.ts +20 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts +9 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts +91 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.types.ts +18 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +13 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +187 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.error.ts +13 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +128 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context.ts +32 -0
- package/src/lib/A-FrameDynamicStructure/index.ts +5 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +31 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +39 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +7 -0
- package/src/lib/A-FrameEnv/index.browser.ts +1 -0
- package/src/lib/A-FrameEnv/index.ts +1 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +321 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +63 -0
- package/src/lib/A-FrameIndex/index.browser.ts +3 -0
- package/src/lib/A-FrameIndex/index.ts +3 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.env-browser.ts +99 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts +129 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.ts +123 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.constants.ts +66 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.types.ts +67 -0
- package/src/lib/A-FrameLogger/index.browser.ts +4 -0
- package/src/lib/A-FrameLogger/index.ts +4 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts +12 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +211 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +72 -0
- package/src/lib/A-FrameNamespace/index.ts +3 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +338 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.component.ts +191 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.constants.ts +11 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.error.ts +13 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.types.ts +98 -0
- package/src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts +59 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +312 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +77 -0
- package/src/lib/A-FrameStorage/index.browser.ts +11 -0
- package/src/lib/A-FrameStorage/index.ts +10 -0
- package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +464 -0
- package/src/lib/A-FrameStorage/server/A-FrameServerStorage.component.ts +177 -0
- package/src/lib/{entities/A_FrameVector/A_FrameVector.entity.ts → A-FrameVector/A-FrameVector.entity.ts} +10 -0
- package/src/lib/A-FrameVector/index.ts +3 -0
- package/tests/A-Frame.browser.test.ts +94 -0
- package/tests/A-Frame.test.ts +73 -68
- package/tests/jest.browser-environment.js +30 -0
- package/tests/jest.polyfills.browser.ts +13 -0
- package/tests/jest.setup.browser.ts +33 -0
- package/tsconfig.browser.json +54 -0
- package/tsconfig.json +16 -0
- package/tsup.config.ts +32 -2
- package/src/lib/components/Builder.component.ts/Builder.component.ts +0 -0
- package/src/lib/components/Index.component.ts/Index.component.ts +0 -79
- package/src/lib/components/Index.component.ts/Index.constants.ts +0 -0
- package/src/lib/components/Index.component.ts/Index.meta.ts +0 -28
- package/src/lib/components/Index.component.ts/IndexConfigurations.meta.ts +0 -78
- package/src/lib/components/Index.component.ts/decorators/IndexComponent.decorator.ts +0 -97
- package/src/lib/components/Index.component.ts/decorators/IndexDescribe.decorator.ts +0 -59
- package/src/lib/components/Index.component.ts/decorators/IndexNamespace.decorator.ts +0 -57
- package/src/lib/components/Search/A_FrameSearch.component.ts +0 -66
- package/src/lib/containers/CLI.container.ts +0 -27
- package/src/lib/entities/Namespace/Namespace.entity.ts +0 -8
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { A_Component } from "@adaas/a-concept";
|
|
2
|
+
import {
|
|
3
|
+
A_FrameLogEntry,
|
|
4
|
+
A_FrameLogLevelType,
|
|
5
|
+
A_FrameLoggerConfig,
|
|
6
|
+
A_FrameProgressBar,
|
|
7
|
+
IA_FrameLogger,
|
|
8
|
+
} from "./A-FrameLogger.types";
|
|
9
|
+
import {
|
|
10
|
+
A_FRAME_LOG_LEVEL_PRIORITY,
|
|
11
|
+
A_FRAME_LOG_DEFAULTS,
|
|
12
|
+
} from "./A-FrameLogger.constants";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Abstract base for `A_FrameLogger` — environment-agnostic state and behaviour.
|
|
17
|
+
*
|
|
18
|
+
* Concrete subclasses (`A-FrameLogger.component.env-node` and
|
|
19
|
+
* `A-FrameLogger.component.env-browser`) implement `write()` and `progress()`
|
|
20
|
+
* since each runtime renders to a different surface (TTY vs DevTools console).
|
|
21
|
+
*/
|
|
22
|
+
export abstract class A_FrameLoggerBase extends A_Component implements IA_FrameLogger {
|
|
23
|
+
|
|
24
|
+
protected level: A_FrameLogLevelType;
|
|
25
|
+
protected prefix: string;
|
|
26
|
+
protected counters: Map<string, number> = new Map();
|
|
27
|
+
protected startTime: number = Date.now();
|
|
28
|
+
|
|
29
|
+
constructor(config: A_FrameLoggerConfig = {}) {
|
|
30
|
+
super();
|
|
31
|
+
this.level = config.level ?? 'debug';
|
|
32
|
+
this.prefix = config.prefix ?? '';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ─── Subclass hooks ──────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
/** Render a fully-built log entry to the runtime-specific output. */
|
|
38
|
+
protected abstract write(entry: A_FrameLogEntry): void;
|
|
39
|
+
|
|
40
|
+
/** Create a runtime-specific progress bar. */
|
|
41
|
+
abstract progress(label: string, total: number): A_FrameProgressBar;
|
|
42
|
+
|
|
43
|
+
// ─── Configuration ───────────────────────────────────────────────────────
|
|
44
|
+
|
|
45
|
+
setLevel(level: A_FrameLogLevelType): void {
|
|
46
|
+
this.level = level;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Returns true when the entry passes the current level filter. */
|
|
50
|
+
protected shouldEmit(level: A_FrameLogLevelType): boolean {
|
|
51
|
+
return A_FRAME_LOG_LEVEL_PRIORITY[level] >= A_FRAME_LOG_LEVEL_PRIORITY[this.level];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// ─── Level methods (shared) ──────────────────────────────────────────────
|
|
55
|
+
|
|
56
|
+
private emit(level: A_FrameLogLevelType, message: string, metadata?: Record<string, unknown>): void {
|
|
57
|
+
if (!this.shouldEmit(level)) return;
|
|
58
|
+
this.write({
|
|
59
|
+
level,
|
|
60
|
+
message: this.prefix ? `${this.prefix} ${message}` : message,
|
|
61
|
+
timestamp: Date.now(),
|
|
62
|
+
metadata,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
debug(msg: string, meta?: Record<string, unknown>): void { this.emit('debug', msg, meta); }
|
|
67
|
+
info(msg: string, meta?: Record<string, unknown>): void { this.emit('info', msg, meta); }
|
|
68
|
+
success(msg: string, meta?: Record<string, unknown>): void { this.emit('success', msg, meta); }
|
|
69
|
+
warn(msg: string, meta?: Record<string, unknown>): void { this.emit('warn', msg, meta); }
|
|
70
|
+
error(msg: string, meta?: Record<string, unknown>): void { this.emit('error', msg, meta); }
|
|
71
|
+
|
|
72
|
+
/** Default implementation that subclasses may override for nicer headings. */
|
|
73
|
+
section(title: string): void {
|
|
74
|
+
this.info(`── ${title} ──`);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
divider(): void {
|
|
78
|
+
this.info('────────────────────────────────────────────────────────');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// ─── Counters / timing ───────────────────────────────────────────────────
|
|
82
|
+
|
|
83
|
+
increment(key: string, by = 1): void {
|
|
84
|
+
this.counters.set(key, (this.counters.get(key) ?? 0) + by);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
set(key: string, value: number): void {
|
|
88
|
+
this.counters.set(key, value);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get(key: string): number {
|
|
92
|
+
return this.counters.get(key) ?? 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
resetTimer(): void {
|
|
96
|
+
this.startTime = Date.now();
|
|
97
|
+
this.counters.clear();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
elapsed(): string {
|
|
101
|
+
const ms = Date.now() - this.startTime;
|
|
102
|
+
if (ms < 1000) return `${ms}ms`;
|
|
103
|
+
const s = ms / 1000;
|
|
104
|
+
if (s < 60) return `${s.toFixed(2)}s`;
|
|
105
|
+
const m = Math.floor(s / 60);
|
|
106
|
+
return `${m}m ${(s - m * 60).toFixed(1)}s`;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Print a left-aligned table of all counters plus elapsed time.
|
|
111
|
+
* Concrete subclasses can override for richer rendering.
|
|
112
|
+
*/
|
|
113
|
+
summary(title: string = A_FRAME_LOG_DEFAULTS.summaryTitle): void {
|
|
114
|
+
this.section(title);
|
|
115
|
+
const keys = [...this.counters.keys()];
|
|
116
|
+
const pad = keys.reduce((m, k) => Math.max(m, k.length), 'elapsed'.length);
|
|
117
|
+
for (const key of keys) {
|
|
118
|
+
this.info(` ${key.padEnd(pad)} ${this.counters.get(key)}`);
|
|
119
|
+
}
|
|
120
|
+
this.info(` ${'elapsed'.padEnd(pad)} ${this.elapsed()}`);
|
|
121
|
+
this.divider();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { A_FrameLogLevelType } from "./A-FrameLogger.types";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export const A_FrameLogLevel = {
|
|
5
|
+
Debug: 'debug',
|
|
6
|
+
Info: 'info',
|
|
7
|
+
Success: 'success',
|
|
8
|
+
Warn: 'warn',
|
|
9
|
+
Error: 'error',
|
|
10
|
+
} as const satisfies Record<string, A_FrameLogLevelType>;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/** Numeric priority used for level filtering. Higher = more severe. */
|
|
14
|
+
export const A_FRAME_LOG_LEVEL_PRIORITY: Record<A_FrameLogLevelType, number> = {
|
|
15
|
+
debug: 10,
|
|
16
|
+
info: 20,
|
|
17
|
+
success: 20,
|
|
18
|
+
warn: 30,
|
|
19
|
+
error: 40,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/** Glyphs used as the leading symbol for each log level. */
|
|
24
|
+
export const A_FrameLogIcon: Record<A_FrameLogLevelType, string> = {
|
|
25
|
+
debug: '·',
|
|
26
|
+
info: 'ℹ',
|
|
27
|
+
success: '✔',
|
|
28
|
+
warn: '⚠',
|
|
29
|
+
error: '✖',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
/** ANSI escape sequences. Used by the Node implementation only. */
|
|
34
|
+
export const A_FRAME_ANSI = {
|
|
35
|
+
reset: '\x1b[0m',
|
|
36
|
+
bold: '\x1b[1m',
|
|
37
|
+
dim: '\x1b[2m',
|
|
38
|
+
gray: '\x1b[90m',
|
|
39
|
+
red: '\x1b[31m',
|
|
40
|
+
green: '\x1b[32m',
|
|
41
|
+
yellow: '\x1b[33m',
|
|
42
|
+
blue: '\x1b[34m',
|
|
43
|
+
cyan: '\x1b[36m',
|
|
44
|
+
} as const;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Browser console CSS — used with `console.log('%c...', style)` for coloured
|
|
49
|
+
* output in DevTools. Mirrors the ANSI palette by intent.
|
|
50
|
+
*/
|
|
51
|
+
export const A_FRAME_BROWSER_CSS: Record<A_FrameLogLevelType, string> = {
|
|
52
|
+
debug: 'color: #888;',
|
|
53
|
+
info: 'color: #06b;',
|
|
54
|
+
success: 'color: #2a7; font-weight: bold;',
|
|
55
|
+
warn: 'color: #c80;',
|
|
56
|
+
error: 'color: #c33; font-weight: bold;',
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/** Defaults applied when building a logger without explicit options. */
|
|
61
|
+
export const A_FRAME_LOG_DEFAULTS = {
|
|
62
|
+
progressBarWidth: 24,
|
|
63
|
+
summaryTitle: 'Summary',
|
|
64
|
+
/** Update progress at most this often (ms) for non-TTY/browser output. */
|
|
65
|
+
progressThrottleMs: 250,
|
|
66
|
+
} as const;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API surface for A_FrameLogger — shared between node and browser.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export type A_FrameLogLevelType = 'debug' | 'info' | 'success' | 'warn' | 'error';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export interface A_FrameLogEntry {
|
|
10
|
+
level: A_FrameLogLevelType;
|
|
11
|
+
message: string;
|
|
12
|
+
timestamp: number;
|
|
13
|
+
metadata?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Handle returned by `logger.progress()`. Calling code drives the bar by
|
|
19
|
+
* `tick()`-ing once per processed item, then `succeed()` or `fail()` at the end.
|
|
20
|
+
*/
|
|
21
|
+
export interface A_FrameProgressBar {
|
|
22
|
+
/** Advance by one and optionally update the trailing label */
|
|
23
|
+
tick(label?: string): void;
|
|
24
|
+
/** Mark the bar complete (even if not all items ticked) */
|
|
25
|
+
succeed(label?: string): void;
|
|
26
|
+
/** Mark the bar failed at current position */
|
|
27
|
+
fail(label?: string): void;
|
|
28
|
+
/** Set the absolute current value (for non-monotonic progress) */
|
|
29
|
+
update(current: number, label?: string): void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Constructor / runtime configuration. All fields optional — sensible defaults
|
|
35
|
+
* are applied so `new A_FrameLogger()` always works.
|
|
36
|
+
*/
|
|
37
|
+
export interface A_FrameLoggerConfig {
|
|
38
|
+
/** Minimum level to emit. Levels below are silently dropped. Default: 'debug'. */
|
|
39
|
+
level?: A_FrameLogLevelType;
|
|
40
|
+
/** Override TTY detection (Node only). Default: auto-detect via process.stdout.isTTY. */
|
|
41
|
+
color?: boolean;
|
|
42
|
+
/** Optional prefix prepended to every line, e.g. "[a-frame]" */
|
|
43
|
+
prefix?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
export interface IA_FrameLogger {
|
|
48
|
+
debug(message: string, metadata?: Record<string, unknown>): void;
|
|
49
|
+
info(message: string, metadata?: Record<string, unknown>): void;
|
|
50
|
+
success(message: string, metadata?: Record<string, unknown>): void;
|
|
51
|
+
warn(message: string, metadata?: Record<string, unknown>): void;
|
|
52
|
+
error(message: string, metadata?: Record<string, unknown>): void;
|
|
53
|
+
|
|
54
|
+
section(title: string): void;
|
|
55
|
+
divider(): void;
|
|
56
|
+
|
|
57
|
+
progress(label: string, total: number): A_FrameProgressBar;
|
|
58
|
+
|
|
59
|
+
increment(key: string, by?: number): void;
|
|
60
|
+
set(key: string, value: number): void;
|
|
61
|
+
get(key: string): number;
|
|
62
|
+
|
|
63
|
+
resetTimer(): void;
|
|
64
|
+
elapsed(): string;
|
|
65
|
+
|
|
66
|
+
summary(title?: string): void;
|
|
67
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { A_FrameNamespace } from "./A-FrameNamespace.entity";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export const A_FRAME_DEFAULT_NAMESPACE_KEY = 'default';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export const A_FrameNamespaceFeatures = {
|
|
8
|
+
Load: '_A_FRAME_NAMESPACE_LOAD',
|
|
9
|
+
Save: '_A_FRAME_NAMESPACE_SAVE',
|
|
10
|
+
Embed: '_A_FRAME_NAMESPACE_EMBED',
|
|
11
|
+
Destroy: '_A_FRAME_NAMESPACE_DESTROY',
|
|
12
|
+
} as const;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { A_Context, A_Entity, A_FormatterHelper, A_Scope } from "@adaas/a-concept";
|
|
2
|
+
import { A_FrameVector } from "../A-FrameVector/A-FrameVector.entity";
|
|
3
|
+
import {
|
|
4
|
+
A_FrameNamespace_Init,
|
|
5
|
+
A_FrameNamespace_Serialized,
|
|
6
|
+
A_FrameNamespace_Record,
|
|
7
|
+
A_FrameNamespace_EmbeddingMeta,
|
|
8
|
+
} from "./A-FrameNamespace.types";
|
|
9
|
+
import { A_FrameHashHelper } from "@adaas/a-frame/helpers/Hash.helper";
|
|
10
|
+
import { A_FrameNamespaceFeatures } from "./A-FrameNamespace.constants";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
export class A_FrameNamespace extends A_Entity<A_FrameNamespace_Init, A_FrameNamespace_Serialized> {
|
|
14
|
+
|
|
15
|
+
static get concept(): string {
|
|
16
|
+
return 'a-frame';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
protected _name!: string;
|
|
20
|
+
protected _hash!: string;
|
|
21
|
+
protected _description?: string;
|
|
22
|
+
protected _metadata?: Record<string, any>;
|
|
23
|
+
protected _vector?: A_FrameVector;
|
|
24
|
+
protected _embeddedAt?: number;
|
|
25
|
+
// ─── Provenance ───────────────────────────────────────────────────────────
|
|
26
|
+
protected _embeddingModel?: string;
|
|
27
|
+
protected _credentialId?: string;
|
|
28
|
+
protected _aFrameVersion?: string;
|
|
29
|
+
protected _aFrameServerVersion?: string;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
// ─── Getters ──────────────────────────────────────────────────────────────
|
|
33
|
+
|
|
34
|
+
get id(): string {
|
|
35
|
+
return this.aseid.id;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get name(): string {
|
|
39
|
+
return this._name;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get hash(): string {
|
|
43
|
+
return this._hash;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get description(): string | undefined {
|
|
47
|
+
return this._description;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get metadata(): Record<string, any> {
|
|
51
|
+
return this._metadata || {};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get vector(): A_FrameVector | undefined {
|
|
55
|
+
return this._vector;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get embedding(): Float32Array | null {
|
|
59
|
+
return this._vector?.values ?? null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
//-----------------------------------------------------------------------------------------------------
|
|
63
|
+
//--------------------------------------- Computed properties -----------------------------------------
|
|
64
|
+
//-----------------------------------------------------------------------------------------------------
|
|
65
|
+
get aFrameServerVersion(): string | undefined {
|
|
66
|
+
return this._aFrameServerVersion;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
get aFrameVersion(): string | undefined {
|
|
70
|
+
return this._aFrameVersion;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
get isEmbed(): boolean {
|
|
74
|
+
return this._vector !== undefined;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Saves Namespace to storage. The actual implementation of saving is handled by the A_FrameNamespaceFeatures.Save feature, which can be implemented by the environment to persist the definition to a database, file system, or other storage mechanism.
|
|
78
|
+
*
|
|
79
|
+
* @param scope
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
save(scope?: A_Scope): Promise<void> | void {
|
|
83
|
+
console.log(`Saving namespace "${this._name}"...`);
|
|
84
|
+
return this.call(A_FrameNamespaceFeatures.Save, scope);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Deletes the namespace from storage. The actual implementation of deletion is handled by the A_FrameNamespaceFeatures.Destroy feature, which can be implemented by the environment to remove the namespace from the database, file system, or other storage mechanism.
|
|
88
|
+
*
|
|
89
|
+
* @param scope
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
destroy(scope?: A_Scope): Promise<void> | void {
|
|
93
|
+
return this.call(A_FrameNamespaceFeatures.Destroy, scope);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Loads the namespace from storage. The actual implementation of loading is handled by the A_FrameNamespaceFeatures.Load feature, which can be implemented by the environment to retrieve the namespace from the database, file system, or other storage mechanism and populate the entity's properties accordingly.
|
|
97
|
+
*
|
|
98
|
+
* @param scope
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
async load(scope?: A_Scope): Promise<void> {
|
|
102
|
+
return this.call(A_FrameNamespaceFeatures.Load, scope);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Updates the definition's properties. This can be used to modify the source code, description, metadata, or namespace of the definition. After updating, you may want to call `embed()` again to refresh the embedding based on the new content.
|
|
106
|
+
*
|
|
107
|
+
* @param updates
|
|
108
|
+
*/
|
|
109
|
+
update(updates: Partial<Pick<A_FrameNamespace, 'name' | 'description' | 'metadata'>>): void {
|
|
110
|
+
if (updates.name) this._name = updates.name;
|
|
111
|
+
if (updates.description !== undefined) this._description = updates.description;
|
|
112
|
+
if (updates.metadata !== undefined) this._metadata = updates.metadata;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generates an embedding vector for the namespace using the A_FrameNamespaceFeatures.Embed feature. This typically involves sending the namespace's content (name + description) to an embedding model and storing the resulting vector in the entity. Once embedded, the namespace can be searched using its vector representation.
|
|
116
|
+
*
|
|
117
|
+
* @param scope
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
embed(scope?: A_Scope): Promise<void> | void {
|
|
121
|
+
console.log(`Embedding namespace "${this._name}"...`);
|
|
122
|
+
return this.call(A_FrameNamespaceFeatures.Embed, scope);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ─── A_Entity lifecycle ───────────────────────────────────────────────────
|
|
126
|
+
|
|
127
|
+
fromNew(init: A_FrameNamespace_Init): void {
|
|
128
|
+
|
|
129
|
+
this.aseid = this.generateASEID({
|
|
130
|
+
id: A_FormatterHelper.toKebabCase(init.name),
|
|
131
|
+
scope: 'a-frame',
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
this._name = init.name;
|
|
135
|
+
|
|
136
|
+
const hashSource = this._name
|
|
137
|
+
+ (init.description || '')
|
|
138
|
+
+ (init.metadata ? JSON.stringify(init.metadata) : '');
|
|
139
|
+
|
|
140
|
+
this._hash = A_FrameHashHelper.fnv1a(hashSource);
|
|
141
|
+
this._description = init.description;
|
|
142
|
+
this._metadata = init.metadata;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
fromJSON(serialized: A_FrameNamespace_Serialized): void {
|
|
146
|
+
this._name = serialized.name;
|
|
147
|
+
this._hash = serialized.hash;
|
|
148
|
+
this._description = serialized.description;
|
|
149
|
+
this._metadata = serialized.metadata;
|
|
150
|
+
this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : undefined;
|
|
151
|
+
this._embeddedAt = serialized.embeddedAt;
|
|
152
|
+
this._embeddingModel = serialized.embeddingModel;
|
|
153
|
+
this._credentialId = serialized.credentialId;
|
|
154
|
+
this._aFrameVersion = serialized.aFrameVersion;
|
|
155
|
+
this._aFrameServerVersion = serialized.aFrameServerVersion;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
toJSON(): A_FrameNamespace_Serialized {
|
|
161
|
+
return {
|
|
162
|
+
...super.toJSON(),
|
|
163
|
+
hash: this._hash,
|
|
164
|
+
name: this._name,
|
|
165
|
+
description: this._description,
|
|
166
|
+
metadata: this._metadata,
|
|
167
|
+
embedding: this._vector?.values,
|
|
168
|
+
embeddedAt: this._embeddedAt ?? Date.now(),
|
|
169
|
+
embeddingModel: this._embeddingModel,
|
|
170
|
+
credentialId: this._credentialId,
|
|
171
|
+
aFrameVersion: this._aFrameVersion,
|
|
172
|
+
aFrameServerVersion: this._aFrameServerVersion,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
// ─── Embedding hydration ──────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
hydrateFromRecord(record: A_FrameNamespace_Record): void {
|
|
180
|
+
if (record.hash !== this._hash) {
|
|
181
|
+
throw new Error(
|
|
182
|
+
`A_FrameNamespace.hydrateFromRecord: hash mismatch for "${this._name}" ` +
|
|
183
|
+
`(expected ${this._hash}, got ${record.hash})`
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
this._vector = new A_FrameVector(record.embedding);
|
|
187
|
+
this._embeddedAt = record.embeddedAt;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
hydrateFromEmbedding(embedding: Float32Array, meta?: A_FrameNamespace_EmbeddingMeta): void {
|
|
191
|
+
this._vector = new A_FrameVector(embedding);
|
|
192
|
+
this._embeddedAt = Date.now();
|
|
193
|
+
if (meta) {
|
|
194
|
+
this._embeddingModel = meta.model;
|
|
195
|
+
this._credentialId = meta.credentialId ?? undefined;
|
|
196
|
+
this._aFrameVersion = meta.aFrameVersion;
|
|
197
|
+
this._aFrameServerVersion = meta.aFrameServerVersion;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Build the text string sent to the embedding model.
|
|
203
|
+
* Uses name + description so the vector captures semantic intent.
|
|
204
|
+
*/
|
|
205
|
+
toString(): string {
|
|
206
|
+
const parts: string[] = [`// namespace: ${this._name}`];
|
|
207
|
+
if (this._description) parts.push(`// ${this._description}`);
|
|
208
|
+
return parts.join('\n');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { A_TYPES__Entity_Serialized } from "@adaas/a-concept";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// ─── Entity lifecycle types ───────────────────────────────────────────────────
|
|
5
|
+
|
|
6
|
+
export type A_FrameNamespace_Init = {
|
|
7
|
+
/** Unique identifier / slug for the namespace (e.g. "math", "finance/options") */
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
metadata?: Record<string, any>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type A_FrameNamespace_Serialized = {
|
|
14
|
+
hash: string;
|
|
15
|
+
name: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
embedding?: Float32Array;
|
|
19
|
+
embeddedAt: number;
|
|
20
|
+
// ─── Provenance ───────────────────────────────────────────────────────────
|
|
21
|
+
embeddingModel?: string;
|
|
22
|
+
credentialId?: string;
|
|
23
|
+
aFrameVersion?: string;
|
|
24
|
+
aFrameServerVersion?: string;
|
|
25
|
+
} & A_TYPES__Entity_Serialized
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// ─── Stored record (written to __namespaces.bin) ─────────────────────────────
|
|
29
|
+
|
|
30
|
+
export type A_FrameNamespace_Record = {
|
|
31
|
+
/** SHA-256 hex of the namespace name — acts as stable identity key */
|
|
32
|
+
hash: string;
|
|
33
|
+
/** Namespace name / slug */
|
|
34
|
+
name: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
37
|
+
embedding: Float32Array;
|
|
38
|
+
embeddedAt: number;
|
|
39
|
+
// ─── Provenance metadata ──────────────────────────────────────────────────
|
|
40
|
+
/** Name of the embedding model used to produce the vector */
|
|
41
|
+
embeddingModel?: string;
|
|
42
|
+
/** ID of the server credential (API key) used during embedding */
|
|
43
|
+
credentialId?: string;
|
|
44
|
+
/** Version of @adaas/a-frame that produced this record */
|
|
45
|
+
aFrameVersion?: string;
|
|
46
|
+
/** Version of adaas-a-frame-mcp that produced the vector */
|
|
47
|
+
aFrameServerVersion?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
// ─── Embedding hydration metadata ────────────────────────────────────────────
|
|
52
|
+
|
|
53
|
+
export type A_FrameNamespace_EmbeddingMeta = {
|
|
54
|
+
model?: string;
|
|
55
|
+
date: string;
|
|
56
|
+
dimensions: number;
|
|
57
|
+
inputCount: number;
|
|
58
|
+
credentialId?: string | null;
|
|
59
|
+
aFrameVersion?: string;
|
|
60
|
+
aFrameServerVersion?: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// ─── Search result ────────────────────────────────────────────────────────────
|
|
65
|
+
|
|
66
|
+
export type A_FrameNamespace_SearchResult = {
|
|
67
|
+
name: string;
|
|
68
|
+
score: number;
|
|
69
|
+
hash: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
metadata?: Record<string, unknown>;
|
|
72
|
+
}
|