@adaas/a-frame 0.1.1 → 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-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 +1 -1
- package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -1
- 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 +7 -6
- 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 +1 -1
- package/dist/node/chunk-5BKCX2RO.mjs.map +1 -1
- 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-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-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-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-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-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-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 +1 -1
- package/dist/node/chunk-XFUF7SDO.cjs.map +1 -1
- 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 +67 -38
- package/dist/node/core.cjs.map +1 -1
- package/dist/node/core.d.mts +13 -8
- package/dist/node/core.d.ts +13 -8
- package/dist/node/core.mjs +58 -29
- 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 +14 -3
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +45 -15
- 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 -98
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-system domain components.
|
|
3
|
+
*
|
|
4
|
+
* All classes below are registered under the "file-system" namespace so the
|
|
5
|
+
* A_FrameIndex can scope searches and the mapper can resolve workflow steps to
|
|
6
|
+
* concrete service methods via cosine similarity.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { A_Component, A_Fragment } from '@adaas/a-concept';
|
|
10
|
+
import { A_Frame } from '@adaas/a-frame/core';
|
|
11
|
+
|
|
12
|
+
export const FILE_SYSTEM_NAMESPACE = 'file-system';
|
|
13
|
+
|
|
14
|
+
// ─── Reader ───────────────────────────────────────────────────────────────────
|
|
15
|
+
|
|
16
|
+
@A_Frame.Define({
|
|
17
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
18
|
+
description: 'A service component for reading files and listing directory contents. Handles reading file content, listing directory entries, and checking whether a path exists.',
|
|
19
|
+
})
|
|
20
|
+
export class FileReaderService extends A_Component {
|
|
21
|
+
|
|
22
|
+
@A_Frame.Define({
|
|
23
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
24
|
+
description: 'Reads the entire content of a file at the given path and returns it as a string. Throws if the path does not exist or is not readable.',
|
|
25
|
+
})
|
|
26
|
+
readFile(): void {}
|
|
27
|
+
|
|
28
|
+
@A_Frame.Define({
|
|
29
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
30
|
+
description: 'Lists all entries (files and sub-directories) inside the given directory. Returns an array of names. Optionally recurses into sub-directories.',
|
|
31
|
+
})
|
|
32
|
+
listDirectory(): void {}
|
|
33
|
+
|
|
34
|
+
@A_Frame.Define({
|
|
35
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
36
|
+
description: 'Checks whether a file or directory exists at the given path. Returns true if it exists, false otherwise. Does not throw on missing paths.',
|
|
37
|
+
})
|
|
38
|
+
exists(): void {}
|
|
39
|
+
|
|
40
|
+
@A_Frame.Define({
|
|
41
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
42
|
+
description: 'Reads and parses a JSON file at the given path, returning the parsed object. Throws a parse error if the file content is not valid JSON.',
|
|
43
|
+
})
|
|
44
|
+
readJson(): void {}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// ─── Writer ───────────────────────────────────────────────────────────────────
|
|
48
|
+
|
|
49
|
+
@A_Frame.Define({
|
|
50
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
51
|
+
description: 'A service component for writing, appending, and creating files. Handles writing new content, appending to existing files, and creating directories.',
|
|
52
|
+
})
|
|
53
|
+
export class FileWriterService extends A_Component {
|
|
54
|
+
|
|
55
|
+
@A_Frame.Define({
|
|
56
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
57
|
+
description: 'Writes the given string content to a file at the specified path. Creates the file if it does not exist; overwrites it if it does.',
|
|
58
|
+
})
|
|
59
|
+
writeFile(): void {}
|
|
60
|
+
|
|
61
|
+
@A_Frame.Define({
|
|
62
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
63
|
+
description: 'Appends a string to the end of an existing file without erasing its current content. Creates the file if it does not exist.',
|
|
64
|
+
})
|
|
65
|
+
appendToFile(): void {}
|
|
66
|
+
|
|
67
|
+
@A_Frame.Define({
|
|
68
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
69
|
+
description: 'Creates a new empty directory at the given path, including any missing parent directories. Is a no-op if the directory already exists.',
|
|
70
|
+
})
|
|
71
|
+
createDirectory(): void {}
|
|
72
|
+
|
|
73
|
+
@A_Frame.Define({
|
|
74
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
75
|
+
description: 'Writes a JavaScript object to a file as formatted JSON. Pretty-prints with 2-space indentation. Creates or overwrites the file.',
|
|
76
|
+
})
|
|
77
|
+
writeJson(): void {}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// ─── Move / Copy / Delete ─────────────────────────────────────────────────────
|
|
81
|
+
|
|
82
|
+
@A_Frame.Define({
|
|
83
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
84
|
+
description: 'A service component for moving, copying, renaming, and deleting files and directories on disk.',
|
|
85
|
+
})
|
|
86
|
+
export class FileMoveService extends A_Component {
|
|
87
|
+
|
|
88
|
+
@A_Frame.Define({
|
|
89
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
90
|
+
description: 'Copies a file from the source path to the destination path. Overwrites the destination if it already exists. Does not copy directories.',
|
|
91
|
+
})
|
|
92
|
+
copyFile(): void {}
|
|
93
|
+
|
|
94
|
+
@A_Frame.Define({
|
|
95
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
96
|
+
description: 'Moves a file or directory from the source path to the destination path. Equivalent to a rename when staying on the same filesystem.',
|
|
97
|
+
})
|
|
98
|
+
moveFile(): void {}
|
|
99
|
+
|
|
100
|
+
@A_Frame.Define({
|
|
101
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
102
|
+
description: 'Deletes a file at the given path permanently. Throws if the path does not exist or refers to a directory.',
|
|
103
|
+
})
|
|
104
|
+
deleteFile(): void {}
|
|
105
|
+
|
|
106
|
+
@A_Frame.Define({
|
|
107
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
108
|
+
description: 'Deletes a directory and all its contents recursively. Use with caution — this is irreversible.',
|
|
109
|
+
})
|
|
110
|
+
deleteDirectory(): void {}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ─── Search ───────────────────────────────────────────────────────────────────
|
|
114
|
+
|
|
115
|
+
@A_Frame.Define({
|
|
116
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
117
|
+
description: 'A service component for searching file contents and file-system paths. Supports glob patterns, regex content search, and text-string search.',
|
|
118
|
+
})
|
|
119
|
+
export class FileSearchService extends A_Component {
|
|
120
|
+
|
|
121
|
+
@A_Frame.Define({
|
|
122
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
123
|
+
description: 'Finds all file paths under a root directory that match the given glob pattern (e.g. "**/*.ts"). Returns an array of matching absolute paths.',
|
|
124
|
+
})
|
|
125
|
+
findByGlob(): void {}
|
|
126
|
+
|
|
127
|
+
@A_Frame.Define({
|
|
128
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
129
|
+
description: 'Searches the content of all files under a directory for lines matching a regular expression. Returns an array of { file, line, match } objects.',
|
|
130
|
+
})
|
|
131
|
+
searchInFiles(): void {}
|
|
132
|
+
|
|
133
|
+
@A_Frame.Define({
|
|
134
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
135
|
+
description: 'Returns the paths of all files in a directory that were modified after the given timestamp. Useful for incremental processing.',
|
|
136
|
+
})
|
|
137
|
+
findModifiedAfter(): void {}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// ─── Meta ─────────────────────────────────────────────────────────────────────
|
|
141
|
+
|
|
142
|
+
@A_Frame.Define({
|
|
143
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
144
|
+
description: 'A service component for reading and writing file metadata: permissions, timestamps, size, MIME type, and extended attributes.',
|
|
145
|
+
})
|
|
146
|
+
export class FileMetaService extends A_Component {
|
|
147
|
+
|
|
148
|
+
@A_Frame.Define({
|
|
149
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
150
|
+
description: 'Returns the size in bytes, creation time, modification time, and file type (file vs directory) for the given path.',
|
|
151
|
+
})
|
|
152
|
+
getStats(): void {}
|
|
153
|
+
|
|
154
|
+
@A_Frame.Define({
|
|
155
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
156
|
+
description: 'Sets the POSIX read/write/execute permissions on a file using an octal mode string (e.g. "0644").',
|
|
157
|
+
})
|
|
158
|
+
setPermissions(): void {}
|
|
159
|
+
|
|
160
|
+
@A_Frame.Define({
|
|
161
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
162
|
+
description: 'Renames a file in-place within the same directory, updating only the file name portion of the path.',
|
|
163
|
+
})
|
|
164
|
+
renameFile(): void {}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// ─── Archive ──────────────────────────────────────────────────────────────────
|
|
168
|
+
|
|
169
|
+
@A_Frame.Define({
|
|
170
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
171
|
+
description: 'A service component for archiving and compressing files. Creates zip archives, extracts archives, and computes checksums.',
|
|
172
|
+
})
|
|
173
|
+
export class FileArchiveService extends A_Component {
|
|
174
|
+
|
|
175
|
+
@A_Frame.Define({
|
|
176
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
177
|
+
description: 'Creates a zip archive at the output path containing all files matched by the given source paths or glob patterns.',
|
|
178
|
+
})
|
|
179
|
+
createZip(): void {}
|
|
180
|
+
|
|
181
|
+
@A_Frame.Define({
|
|
182
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
183
|
+
description: 'Extracts the contents of a zip archive to the given destination directory. Overwrites existing files by default.',
|
|
184
|
+
})
|
|
185
|
+
extractZip(): void {}
|
|
186
|
+
|
|
187
|
+
@A_Frame.Define({
|
|
188
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
189
|
+
description: 'Computes and returns the MD5 or SHA-256 checksum of a file at the given path. Useful for integrity verification.',
|
|
190
|
+
})
|
|
191
|
+
checksum(): void {}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// ─── Context fragment ─────────────────────────────────────────────────────────
|
|
195
|
+
|
|
196
|
+
@A_Frame.Define({
|
|
197
|
+
namespace: FILE_SYSTEM_NAMESPACE,
|
|
198
|
+
description: 'A fragment that carries the root working directory, active glob filters, dry-run flag, and per-step results throughout a file-operation workflow.',
|
|
199
|
+
})
|
|
200
|
+
export class FileOperationContext extends A_Fragment {}
|
|
201
|
+
|
|
202
|
+
// ─── Convenience array of all service components ──────────────────────────────
|
|
203
|
+
|
|
204
|
+
export const FS_COMPONENTS = [
|
|
205
|
+
FileReaderService,
|
|
206
|
+
FileWriterService,
|
|
207
|
+
FileMoveService,
|
|
208
|
+
FileSearchService,
|
|
209
|
+
FileMetaService,
|
|
210
|
+
FileArchiveService,
|
|
211
|
+
];
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Feature Workflow Planner
|
|
3
|
+
*
|
|
4
|
+
* Plan and refine an executable workflow from natural language.
|
|
5
|
+
* The framework generates an ordered sequence of steps, maps each step to a
|
|
6
|
+
* real registered method on a service component, and shows the full plan in the
|
|
7
|
+
* terminal. You can then apply natural-language patches to refine the plan.
|
|
8
|
+
*
|
|
9
|
+
* Domain: file-system operations (create, read, write, move, search files, etc.)
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* npx ts-node examples/feature/main.ts
|
|
13
|
+
*
|
|
14
|
+
* Flow:
|
|
15
|
+
* 1. You enter a goal ("copy all .ts files to a backup folder")
|
|
16
|
+
* 2. The AI generates a step-by-step workflow and maps each step to a method
|
|
17
|
+
* 3. The full plan is rendered — title, description, every step with class +
|
|
18
|
+
* method + score, plus the supporting components / entities
|
|
19
|
+
* 4. You type a patch instruction ("add a step to compress the backup") or a
|
|
20
|
+
* command ("remap", "raw", "done")
|
|
21
|
+
* 5. The plan is updated and re-rendered
|
|
22
|
+
* 6. Repeat until satisfied
|
|
23
|
+
*
|
|
24
|
+
* All diagnostic details go to .logs/<timestamp>_<goal>.log
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { A_Concept, A_Container, A_Error } from '@adaas/a-concept';
|
|
28
|
+
import { A_Frame } from '@adaas/a-frame/core';
|
|
29
|
+
import { A_FrameIndex } from '@adaas/a-frame/index';
|
|
30
|
+
import { A_FrameDynamicFeature } from '@adaas/a-frame/dynamic-feature';
|
|
31
|
+
import { config } from 'dotenv';
|
|
32
|
+
import { createInterface } from 'readline';
|
|
33
|
+
import { FileLogger } from '../logger';
|
|
34
|
+
import { FS_COMPONENTS } from './file-system.components';
|
|
35
|
+
|
|
36
|
+
config();
|
|
37
|
+
// process.env.A_FRAME_SYNC = 'false';
|
|
38
|
+
|
|
39
|
+
const MIN_SCORE = 0.6;
|
|
40
|
+
|
|
41
|
+
// ─── Terminal colours ─────────────────────────────────────────────────────────
|
|
42
|
+
|
|
43
|
+
const ESC = '\x1b[';
|
|
44
|
+
const S = {
|
|
45
|
+
reset: `${ESC}0m`,
|
|
46
|
+
bold: `${ESC}1m`,
|
|
47
|
+
dim: `${ESC}2m`,
|
|
48
|
+
italic: `${ESC}3m`,
|
|
49
|
+
cyan: `${ESC}36m`,
|
|
50
|
+
bcyan: `${ESC}96m`,
|
|
51
|
+
green: `${ESC}32m`,
|
|
52
|
+
bgreen: `${ESC}92m`,
|
|
53
|
+
yellow: `${ESC}33m`,
|
|
54
|
+
byellow: `${ESC}93m`,
|
|
55
|
+
blue: `${ESC}34m`,
|
|
56
|
+
bblue: `${ESC}94m`,
|
|
57
|
+
magenta: `${ESC}35m`,
|
|
58
|
+
red: `${ESC}31m`,
|
|
59
|
+
gray: `${ESC}90m`,
|
|
60
|
+
white: `${ESC}37m`,
|
|
61
|
+
};
|
|
62
|
+
const c = (s: string, ...st: string[]) => st.join('') + s + S.reset;
|
|
63
|
+
const CLEAR = '\x1b[2J\x1b[H';
|
|
64
|
+
|
|
65
|
+
function wrap(text: string, w = 68): string[] {
|
|
66
|
+
const words = text.split(/\s+/);
|
|
67
|
+
const lines: string[] = [];
|
|
68
|
+
let line = '';
|
|
69
|
+
for (const word of words) {
|
|
70
|
+
const next = line ? `${line} ${word}` : word;
|
|
71
|
+
if (next.length > w) { if (line) lines.push(line); line = word; } else line = next;
|
|
72
|
+
}
|
|
73
|
+
if (line) lines.push(line);
|
|
74
|
+
return lines;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// ─── Rendering helpers ────────────────────────────────────────────────────────
|
|
78
|
+
|
|
79
|
+
function renderWorkflow(feature: A_FrameDynamicFeature, revision: number): void {
|
|
80
|
+
process.stdout.write(CLEAR);
|
|
81
|
+
|
|
82
|
+
const def = feature.definition;
|
|
83
|
+
const result = feature.mapResult;
|
|
84
|
+
|
|
85
|
+
if (!def) {
|
|
86
|
+
console.log(c(' (no workflow generated yet)', S.dim));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ── Header ───────────────────────────────────────────────────────────────
|
|
91
|
+
const revLabel = revision === 0 ? 'initial plan' : `revision ${revision}`;
|
|
92
|
+
console.log(c(`\n ╸ ${revLabel} · v${feature.version} · ${def.steps.length} steps`, S.dim));
|
|
93
|
+
console.log(c('━'.repeat(72), S.gray));
|
|
94
|
+
|
|
95
|
+
// ── Title & Description ───────────────────────────────────────────────────
|
|
96
|
+
console.log(c(`\n ${def.title}`, S.bold, S.bcyan));
|
|
97
|
+
for (const line of wrap(def.description)) {
|
|
98
|
+
console.log(c(` ${line}`, S.dim));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// ── Steps ─────────────────────────────────────────────────────────────────
|
|
102
|
+
console.log(c(`\n STEPS`, S.bold, S.yellow));
|
|
103
|
+
console.log(c(' ' + '─'.repeat(68), S.gray));
|
|
104
|
+
|
|
105
|
+
const steps = result?.steps ?? def.steps.map(s => ({
|
|
106
|
+
prompt: s.prompt,
|
|
107
|
+
inputs: s.inputs, outputs: s.outputs,
|
|
108
|
+
matchedClass: null, matchedMethod: null, matchScore: 0, matchError: null,
|
|
109
|
+
}));
|
|
110
|
+
|
|
111
|
+
for (let i = 0; i < steps.length; i++) {
|
|
112
|
+
const step = steps[i];
|
|
113
|
+
const num = c(` ${String(i + 1).padStart(2)}.`, S.bold, S.gray);
|
|
114
|
+
|
|
115
|
+
if (result) {
|
|
116
|
+
// Mapped view
|
|
117
|
+
const matched = step.matchedMethod !== null;
|
|
118
|
+
const errored = !matched && (step as any).matchError;
|
|
119
|
+
const scoreStr = matched
|
|
120
|
+
? c(`[${(step.matchScore).toFixed(3)}]`, step.matchScore >= 0.75 ? S.bgreen : S.yellow)
|
|
121
|
+
: errored
|
|
122
|
+
? c('[✗]', S.red)
|
|
123
|
+
: c('[?]', S.gray);
|
|
124
|
+
|
|
125
|
+
const methodStr = matched
|
|
126
|
+
? c(`${step.matchedClass}.${step.matchedMethod}`, S.bgreen, S.bold)
|
|
127
|
+
: errored
|
|
128
|
+
? c('unmatched', S.red)
|
|
129
|
+
: c('unmapped', S.gray);
|
|
130
|
+
|
|
131
|
+
console.log(`${num} ${scoreStr} ${methodStr}`);
|
|
132
|
+
|
|
133
|
+
for (const line of wrap(step.prompt, 64)) {
|
|
134
|
+
console.log(c(` ${line}`, S.dim));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if ((step as any).matchError) {
|
|
138
|
+
console.log(c(` ↳ ${(step as any).matchError.description.slice(0, 70)}`, S.red));
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
// Pre-map view — steps are description-only before mapping
|
|
142
|
+
console.log(`${num}`);
|
|
143
|
+
for (const line of wrap(step.prompt, 64)) {
|
|
144
|
+
console.log(c(` ${line}`, S.dim));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Inputs / outputs compact summary
|
|
149
|
+
if (step.inputs?.length) {
|
|
150
|
+
const ins = step.inputs.map((p: any) => `${p.name}: ${p.type}`).join(', ');
|
|
151
|
+
console.log(c(` ← ${ins}`, S.blue));
|
|
152
|
+
}
|
|
153
|
+
if (step.outputs?.length) {
|
|
154
|
+
const outs = step.outputs.map((p: any) => `${p.name}: ${p.type}`).join(', ');
|
|
155
|
+
console.log(c(` → ${outs}`, S.bgreen));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// ── Supporting elements ───────────────────────────────────────────────────
|
|
160
|
+
const elements = [
|
|
161
|
+
...(result?.components ?? def.components.map(e => ({ ...e, matchedClass: null, matchScore: 0 }))),
|
|
162
|
+
...(result?.fragments ?? def.fragments.map(e => ({ ...e, matchedClass: null, matchScore: 0 }))),
|
|
163
|
+
...(result?.entities ?? def.entities.map(e => ({ ...e, matchedClass: null, matchScore: 0 }))),
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
if (elements.length) {
|
|
167
|
+
console.log(c(`\n BUILDING BLOCKS`, S.bold, S.yellow));
|
|
168
|
+
console.log(c(' ' + '─'.repeat(68), S.gray));
|
|
169
|
+
|
|
170
|
+
for (const el of elements) {
|
|
171
|
+
const name = (el as any).matchedClass
|
|
172
|
+
? c((el as any).matchedClass, S.bgreen, S.bold)
|
|
173
|
+
: c('(unresolved)', S.gray);
|
|
174
|
+
const score = (el as any).matchedClass
|
|
175
|
+
? c(` [${(el.matchScore as number).toFixed(3)}]`, S.dim)
|
|
176
|
+
: '';
|
|
177
|
+
console.log(` ${name}${score}`);
|
|
178
|
+
for (const line of wrap(el.prompt, 64)) {
|
|
179
|
+
console.log(c(` ${line}`, S.dim));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// ── Stats ─────────────────────────────────────────────────────────────────
|
|
185
|
+
if (result) {
|
|
186
|
+
const matchedSteps = result.steps.filter(s => s.matchedMethod !== null).length;
|
|
187
|
+
const matchedEls = elements.filter((e: any) => e.matchedClass !== null).length;
|
|
188
|
+
console.log(c(`\n ╸ steps ${matchedSteps}/${result.steps.length} matched · elements ${matchedEls}/${elements.length} matched`, S.dim));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
console.log(c('\n' + '━'.repeat(72), S.gray));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// ─── Main ─────────────────────────────────────────────────────────────────────
|
|
195
|
+
|
|
196
|
+
async function main(): Promise<void> {
|
|
197
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
198
|
+
const ask = (q: string): Promise<string> => new Promise(res => rl.question(q, res));
|
|
199
|
+
|
|
200
|
+
process.stdout.write(CLEAR);
|
|
201
|
+
console.log(c('\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓', S.bcyan));
|
|
202
|
+
console.log(c(' ┃', S.bcyan) + c(' Feature Workflow Planner ', S.bold) + c('┃', S.bcyan));
|
|
203
|
+
console.log(c(' ┃', S.bcyan) + c(' Generate → Map methods → Patch → Repeat ', S.dim) + c('┃', S.bcyan));
|
|
204
|
+
console.log(c(' ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛', S.bcyan));
|
|
205
|
+
console.log(c('\n Domain: file-system operations', S.dim));
|
|
206
|
+
console.log(c(' Services: FileReaderService, FileWriterService, FileMoveService,', S.dim));
|
|
207
|
+
console.log(c(' FileSearchService, FileMetaService, FileArchiveService\n', S.dim));
|
|
208
|
+
|
|
209
|
+
const presetGoal = process.argv[2]?.trim();
|
|
210
|
+
const goal = presetGoal
|
|
211
|
+
? (console.log(c(` Goal: ${presetGoal}`, S.bcyan)), presetGoal)
|
|
212
|
+
: (await ask(c(' Describe the file operation you want to automate:\n ▸ ', S.bcyan))).trim();
|
|
213
|
+
if (!goal) { console.log(' No goal given.'); rl.close(); return; }
|
|
214
|
+
|
|
215
|
+
const log = new FileLogger(goal);
|
|
216
|
+
|
|
217
|
+
console.log(c('\n Setting up framework…', S.dim));
|
|
218
|
+
|
|
219
|
+
// ── Framework setup ────────────────────────────────────────────────────────
|
|
220
|
+
const container = new A_Container({ name: 'FileOpsWorkspace', components: FS_COMPONENTS });
|
|
221
|
+
const concept = new A_Concept({
|
|
222
|
+
name: 'FeatureWorkflowPlanner',
|
|
223
|
+
components: [A_Frame],
|
|
224
|
+
containers: [container],
|
|
225
|
+
});
|
|
226
|
+
await concept.load();
|
|
227
|
+
|
|
228
|
+
const index = concept.scope.resolve(A_FrameIndex)!;
|
|
229
|
+
|
|
230
|
+
// Embed all definitions (sync=false so we do it explicitly)
|
|
231
|
+
const defs = index.listDefinitions({});
|
|
232
|
+
const unembedded = defs.filter(d => !d.isEmbed);
|
|
233
|
+
|
|
234
|
+
console.log(c(` Embedding ${unembedded.length} definitions…`, S.dim));
|
|
235
|
+
await Promise.all(unembedded.map(d => d.embed()));
|
|
236
|
+
|
|
237
|
+
log.info('Setup complete', {
|
|
238
|
+
components: FS_COMPONENTS.length,
|
|
239
|
+
indexed: defs.length,
|
|
240
|
+
embedded: index.listDefinitions({}).filter(d => d.isEmbed).length,
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
// ── Create the DynamicFeature ──────────────────────────────────────────────
|
|
244
|
+
const feature = new A_FrameDynamicFeature({
|
|
245
|
+
prompt: goal,
|
|
246
|
+
options: { minScore: MIN_SCORE },
|
|
247
|
+
});
|
|
248
|
+
container.scope.register(feature);
|
|
249
|
+
|
|
250
|
+
// ── Generate ───────────────────────────────────────────────────────────────
|
|
251
|
+
console.log(c(' Generating workflow…', S.dim));
|
|
252
|
+
const t0 = Date.now();
|
|
253
|
+
await feature.generate();
|
|
254
|
+
log.info('Generated', {
|
|
255
|
+
title: feature.definition?.title,
|
|
256
|
+
steps: feature.definition?.steps.length ?? 0,
|
|
257
|
+
ms: Date.now() - t0,
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// ── Map ────────────────────────────────────────────────────────────────────
|
|
261
|
+
console.log(c(' Mapping steps to methods…', S.dim));
|
|
262
|
+
const t1 = Date.now();
|
|
263
|
+
await feature.map();
|
|
264
|
+
log.info('Mapped', {
|
|
265
|
+
matched: feature.mapResult?.steps.filter(s => s.matchedMethod !== null).length ?? 0,
|
|
266
|
+
total: feature.mapResult?.steps.length ?? 0,
|
|
267
|
+
ms: Date.now() - t1,
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
let revision = 0;
|
|
271
|
+
renderWorkflow(feature, revision);
|
|
272
|
+
|
|
273
|
+
// ── Help text ──────────────────────────────────────────────────────────────
|
|
274
|
+
console.log(c(' Commands:', S.dim));
|
|
275
|
+
console.log(c(' Type a patch instruction ("add a compression step at the end")', S.dim));
|
|
276
|
+
console.log(c(' "remap" — re-run method matching without regenerating', S.dim));
|
|
277
|
+
console.log(c(' "raw" — show the raw workflow JSON', S.dim));
|
|
278
|
+
console.log(c(' "done" — exit\n', S.dim));
|
|
279
|
+
|
|
280
|
+
// ── Interactive patch loop ─────────────────────────────────────────────────
|
|
281
|
+
while (true) {
|
|
282
|
+
const input = (await ask(c(' ▸ ', S.yellow))).trim();
|
|
283
|
+
|
|
284
|
+
if (!input) continue;
|
|
285
|
+
|
|
286
|
+
const cmd = input.toLowerCase();
|
|
287
|
+
|
|
288
|
+
// ── Exit ────────────────────────────────────────────────────────────────
|
|
289
|
+
if (cmd === 'done' || cmd === 'exit' || cmd === 'quit') {
|
|
290
|
+
console.log(c(`\n ✓ Final workflow: "${feature.definition?.title}"`, S.green));
|
|
291
|
+
console.log(c(` ${feature.definition?.steps.length ?? 0} steps · ${revision} revision(s)`, S.dim));
|
|
292
|
+
console.log(c(` ✓ Log: ${log.path}\n`, S.dim));
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// ── Redraw ──────────────────────────────────────────────────────────────
|
|
297
|
+
if (cmd === 'redraw') {
|
|
298
|
+
renderWorkflow(feature, revision);
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// ── Show raw JSON ────────────────────────────────────────────────────────
|
|
303
|
+
if (cmd === 'raw') {
|
|
304
|
+
process.stdout.write(CLEAR);
|
|
305
|
+
console.log(c(' ╸ raw workflow JSON\n', S.dim));
|
|
306
|
+
const lines = feature.workflow.split('\n');
|
|
307
|
+
for (const line of lines.slice(0, 80)) console.log(c(` ${line}`, S.gray));
|
|
308
|
+
if (lines.length > 80) console.log(c(` … (${lines.length - 80} more lines)`, S.dim));
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// ── Re-map without regenerating ──────────────────────────────────────────
|
|
313
|
+
if (cmd === 'remap') {
|
|
314
|
+
console.log(c(' Re-mapping steps to methods…', S.dim));
|
|
315
|
+
const rt = Date.now();
|
|
316
|
+
await feature.map();
|
|
317
|
+
log.info('Remapped', {
|
|
318
|
+
matched: feature.mapResult?.steps.filter(s => s.matchedMethod !== null).length ?? 0,
|
|
319
|
+
total: feature.mapResult?.steps.length ?? 0,
|
|
320
|
+
ms: Date.now() - rt,
|
|
321
|
+
});
|
|
322
|
+
renderWorkflow(feature, revision);
|
|
323
|
+
console.log(c(' ✓ Re-mapped\n', S.dim));
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// ── Patch ────────────────────────────────────────────────────────────────
|
|
328
|
+
log.header('PATCH REQUEST', { input, revision: revision + 1 });
|
|
329
|
+
console.log(c(' Applying patch…', S.dim));
|
|
330
|
+
|
|
331
|
+
try {
|
|
332
|
+
const pt = Date.now();
|
|
333
|
+
await feature.patch(input);
|
|
334
|
+
log.info('Patched', {
|
|
335
|
+
version: feature.version,
|
|
336
|
+
steps: feature.definition?.steps.length ?? 0,
|
|
337
|
+
ms: Date.now() - pt,
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
console.log(c(' Re-mapping after patch…', S.dim));
|
|
341
|
+
const mt = Date.now();
|
|
342
|
+
await feature.map();
|
|
343
|
+
log.info('Mapped after patch', {
|
|
344
|
+
matched: feature.mapResult?.steps.filter(s => s.matchedMethod !== null).length ?? 0,
|
|
345
|
+
total: feature.mapResult?.steps.length ?? 0,
|
|
346
|
+
ms: Date.now() - mt,
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
revision++;
|
|
350
|
+
renderWorkflow(feature, revision);
|
|
351
|
+
|
|
352
|
+
const matched = feature.mapResult?.steps.filter(s => s.matchedMethod !== null).length ?? 0;
|
|
353
|
+
const total = feature.mapResult?.steps.length ?? 0;
|
|
354
|
+
console.log(c(` ✓ Revision ${revision} (${matched}/${total} steps matched)\n`, S.green));
|
|
355
|
+
|
|
356
|
+
} catch (err) {
|
|
357
|
+
log.error('Patch failed', err);
|
|
358
|
+
const msg = err instanceof A_Error ? err.message : String(err);
|
|
359
|
+
console.log(c(` ✗ Patch failed: ${msg.slice(0, 80)}`, S.red));
|
|
360
|
+
console.log(c(' Previous workflow preserved. Try a different instruction.\n', S.dim));
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
rl.close();
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
main().catch(err => {
|
|
368
|
+
if (err instanceof A_Error) {
|
|
369
|
+
console.error(c('\n ✗ A_Error:', S.red), JSON.stringify(err.toJSON(), null, 2));
|
|
370
|
+
} else {
|
|
371
|
+
console.error(c('\n ✗ Error:', S.red), err);
|
|
372
|
+
}
|
|
373
|
+
process.exit(1);
|
|
374
|
+
});
|