@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.
Files changed (658) hide show
  1. package/.conf/tsconfig.browser.json +7 -1
  2. package/.conf/tsconfig.node.json +7 -1
  3. package/dist/browser/A-FrameBrowserStorageBlobs.context-CZTTvpn2.d.mts +53 -0
  4. package/dist/browser/A-FrameBrowserStorageBlobs.context-CaGTyatz.d.mts +40 -0
  5. package/dist/browser/A-FrameBrowserStorageBlobs.context-DjeEH8cn.d.mts +53 -0
  6. package/dist/browser/A-FrameBrowserStorageBlobs.context-vCsuTea9.d.mts +40 -0
  7. package/dist/browser/A-FrameBundle.types-LzfgdMiQ.d.mts +71 -0
  8. package/dist/browser/A-FrameChannel.component-4mTNctXL.d.mts +704 -0
  9. package/dist/browser/A-FrameChannel.types-BXEKJK9t.d.mts +205 -0
  10. package/dist/browser/A-FrameChannel.types-Ba3wgUZj.d.mts +199 -0
  11. package/dist/browser/A-FrameChannel.types-BfINhQZe.d.mts +145 -0
  12. package/dist/browser/A-FrameChannel.types-DfacgYL1.d.mts +199 -0
  13. package/dist/browser/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
  14. package/dist/browser/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
  15. package/dist/browser/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
  16. package/dist/browser/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
  17. package/dist/browser/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
  18. package/dist/browser/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
  19. package/dist/browser/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
  20. package/dist/browser/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
  21. package/dist/browser/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
  22. package/dist/browser/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
  23. package/dist/browser/A-FrameEnv.types-DnK-CYVk.d.mts +21 -0
  24. package/dist/browser/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
  25. package/dist/browser/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
  26. package/dist/browser/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
  27. package/dist/browser/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
  28. package/dist/browser/bundle.d.mts +6 -2
  29. package/dist/browser/bundle.mjs +1 -1
  30. package/dist/browser/bundle.mjs.map +1 -1
  31. package/dist/browser/channel.d.mts +51 -74
  32. package/dist/browser/channel.mjs +1 -2
  33. package/dist/browser/channel.mjs.map +1 -1
  34. package/dist/browser/chunk-2RNFZSBL.mjs +2 -0
  35. package/dist/browser/chunk-2RNFZSBL.mjs.map +1 -0
  36. package/dist/browser/chunk-46LRNZRG.mjs +2 -0
  37. package/dist/browser/chunk-46LRNZRG.mjs.map +1 -0
  38. package/dist/browser/chunk-52HFO3OY.mjs +2 -0
  39. package/dist/browser/chunk-52HFO3OY.mjs.map +1 -0
  40. package/dist/browser/chunk-643KGQKR.mjs +3 -0
  41. package/dist/browser/chunk-643KGQKR.mjs.map +1 -0
  42. package/dist/browser/chunk-66BBIZAM.mjs +3 -0
  43. package/dist/browser/chunk-66BBIZAM.mjs.map +1 -0
  44. package/dist/browser/chunk-6NPQURSO.mjs +2 -0
  45. package/dist/browser/chunk-6NPQURSO.mjs.map +1 -0
  46. package/dist/browser/chunk-6WAOMX7M.mjs +2 -0
  47. package/dist/browser/chunk-6WAOMX7M.mjs.map +1 -0
  48. package/dist/browser/chunk-77HU5SRQ.mjs +2 -0
  49. package/dist/browser/chunk-77HU5SRQ.mjs.map +1 -0
  50. package/dist/browser/chunk-AET6XULU.mjs +2 -0
  51. package/dist/browser/chunk-AET6XULU.mjs.map +1 -0
  52. package/dist/browser/chunk-BIBPE2GT.mjs +3 -0
  53. package/dist/browser/chunk-BIBPE2GT.mjs.map +1 -0
  54. package/dist/browser/chunk-CDJKU4DK.mjs +2 -0
  55. package/dist/browser/chunk-CDJKU4DK.mjs.map +1 -0
  56. package/dist/browser/chunk-CT67Y46H.mjs +3 -0
  57. package/dist/browser/chunk-CT67Y46H.mjs.map +1 -0
  58. package/dist/browser/chunk-EFC7OUNO.mjs +2 -0
  59. package/dist/browser/chunk-EFC7OUNO.mjs.map +1 -0
  60. package/dist/browser/chunk-EJIX7H7A.mjs +2 -0
  61. package/dist/browser/chunk-EJIX7H7A.mjs.map +1 -0
  62. package/dist/browser/chunk-FHJ5ATND.mjs +3 -0
  63. package/dist/browser/chunk-FHJ5ATND.mjs.map +1 -0
  64. package/dist/browser/chunk-FVH2EEVP.mjs +3 -0
  65. package/dist/browser/chunk-FVH2EEVP.mjs.map +1 -0
  66. package/dist/browser/chunk-G6ULYKSU.mjs +2 -0
  67. package/dist/browser/chunk-G6ULYKSU.mjs.map +1 -0
  68. package/dist/browser/chunk-G7MKGKG5.mjs +2 -0
  69. package/dist/browser/chunk-G7MKGKG5.mjs.map +1 -0
  70. package/dist/browser/chunk-GOMJPGVB.mjs +3 -0
  71. package/dist/browser/chunk-GOMJPGVB.mjs.map +1 -0
  72. package/dist/browser/chunk-INQV5UZA.mjs +2 -0
  73. package/dist/browser/chunk-INQV5UZA.mjs.map +1 -0
  74. package/dist/browser/chunk-INXPVBTZ.mjs +2 -0
  75. package/dist/browser/chunk-INXPVBTZ.mjs.map +1 -0
  76. package/dist/browser/chunk-KFMVTZ7T.mjs +2 -0
  77. package/dist/browser/chunk-KFMVTZ7T.mjs.map +1 -0
  78. package/dist/browser/chunk-LK6C7C3S.mjs +2 -0
  79. package/dist/browser/chunk-LK6C7C3S.mjs.map +1 -0
  80. package/dist/browser/chunk-LOGRQOWP.mjs +3 -0
  81. package/dist/browser/chunk-LOGRQOWP.mjs.map +1 -0
  82. package/dist/browser/chunk-LZACYSUC.mjs +3 -0
  83. package/dist/browser/chunk-LZACYSUC.mjs.map +1 -0
  84. package/dist/browser/chunk-NTOIVRX3.mjs +2 -0
  85. package/dist/browser/chunk-NTOIVRX3.mjs.map +1 -0
  86. package/dist/browser/chunk-OES2N3X7.mjs +3 -0
  87. package/dist/browser/chunk-OES2N3X7.mjs.map +1 -0
  88. package/dist/browser/chunk-OFKV5GNB.mjs +1 -1
  89. package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -1
  90. package/dist/browser/chunk-OVLM5A32.mjs +3 -0
  91. package/dist/browser/chunk-OVLM5A32.mjs.map +1 -0
  92. package/dist/browser/chunk-QATIN7CO.mjs +1 -1
  93. package/dist/browser/chunk-QATIN7CO.mjs.map +1 -1
  94. package/dist/browser/chunk-QOL7CAUZ.mjs +2 -0
  95. package/dist/browser/chunk-QOL7CAUZ.mjs.map +1 -0
  96. package/dist/browser/chunk-RCB3PX4V.mjs +2 -0
  97. package/dist/browser/chunk-RCB3PX4V.mjs.map +1 -0
  98. package/dist/browser/chunk-RWQSCROK.mjs +3 -0
  99. package/dist/browser/chunk-RWQSCROK.mjs.map +1 -0
  100. package/dist/browser/chunk-TIAUMK2X.mjs +2 -0
  101. package/dist/browser/chunk-TIAUMK2X.mjs.map +1 -0
  102. package/dist/browser/chunk-TQPC5MYM.mjs +3 -0
  103. package/dist/browser/chunk-TQPC5MYM.mjs.map +1 -0
  104. package/dist/browser/chunk-UNIKTCXL.mjs +3 -0
  105. package/dist/browser/chunk-UNIKTCXL.mjs.map +1 -0
  106. package/dist/browser/chunk-UULJJ5C5.mjs +3 -0
  107. package/dist/browser/chunk-UULJJ5C5.mjs.map +1 -0
  108. package/dist/browser/chunk-VSSANMPF.mjs +2 -0
  109. package/dist/browser/chunk-VSSANMPF.mjs.map +1 -0
  110. package/dist/browser/chunk-VW2BZYNY.mjs +2 -0
  111. package/dist/browser/chunk-VW2BZYNY.mjs.map +1 -0
  112. package/dist/browser/chunk-WAXBOWM6.mjs +3 -0
  113. package/dist/browser/chunk-WAXBOWM6.mjs.map +1 -0
  114. package/dist/browser/chunk-WXCQCHAX.mjs +2 -0
  115. package/dist/browser/chunk-WXCQCHAX.mjs.map +1 -0
  116. package/dist/browser/chunk-XKKBIIZG.mjs +3 -0
  117. package/dist/browser/chunk-XKKBIIZG.mjs.map +1 -0
  118. package/dist/browser/chunk-XR7FVA5M.mjs +3 -0
  119. package/dist/browser/chunk-XR7FVA5M.mjs.map +1 -0
  120. package/dist/browser/chunk-YQJFTBGV.mjs +1 -1
  121. package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -1
  122. package/dist/browser/chunk-YTAMZDWC.mjs +3 -0
  123. package/dist/browser/chunk-YTAMZDWC.mjs.map +1 -0
  124. package/dist/browser/chunk-ZEONOTRL.mjs +2 -0
  125. package/dist/browser/chunk-ZEONOTRL.mjs.map +1 -0
  126. package/dist/browser/completion.d.mts +10 -0
  127. package/dist/browser/completion.mjs +2 -0
  128. package/dist/browser/completion.mjs.map +1 -0
  129. package/dist/browser/core.d.mts +7 -6
  130. package/dist/browser/core.mjs +1 -1
  131. package/dist/browser/core.mjs.map +1 -1
  132. package/dist/browser/credentials.d.mts +74 -0
  133. package/dist/browser/credentials.mjs +2 -0
  134. package/dist/browser/credentials.mjs.map +1 -0
  135. package/dist/browser/definition.d.mts +3 -2
  136. package/dist/browser/definition.mjs +1 -1
  137. package/dist/browser/dynamic-content.d.mts +13 -0
  138. package/dist/browser/dynamic-content.mjs +2 -0
  139. package/dist/browser/dynamic-content.mjs.map +1 -0
  140. package/dist/browser/dynamic-feature.d.mts +66 -6
  141. package/dist/browser/dynamic-feature.mjs +3 -1
  142. package/dist/browser/dynamic-feature.mjs.map +1 -1
  143. package/dist/browser/dynamic-structure.d.mts +77 -3
  144. package/dist/browser/dynamic-structure.mjs +1 -1
  145. package/dist/browser/dynamic-structure.mjs.map +1 -1
  146. package/dist/browser/env.d.mts +16 -2
  147. package/dist/browser/env.mjs +1 -1
  148. package/dist/browser/frame-index.d.mts +70 -9
  149. package/dist/browser/frame-index.mjs +1 -1
  150. package/dist/browser/models.d.mts +64 -0
  151. package/dist/browser/models.mjs +2 -0
  152. package/dist/browser/models.mjs.map +1 -0
  153. package/dist/browser/namespace.d.mts +1 -1
  154. package/dist/browser/namespace.mjs +1 -1
  155. package/dist/browser/schema.d.mts +10 -0
  156. package/dist/browser/schema.mjs +2 -0
  157. package/dist/browser/schema.mjs.map +1 -0
  158. package/dist/browser/segment.d.mts +13 -0
  159. package/dist/browser/segment.mjs +2 -0
  160. package/dist/browser/segment.mjs.map +1 -0
  161. package/dist/browser/storage.d.mts +13 -7
  162. package/dist/browser/storage.mjs +1 -1
  163. package/dist/browser/vector.d.mts +7 -0
  164. package/dist/browser/vector.mjs +1 -1
  165. package/dist/cli.cjs +5593 -0
  166. package/dist/cli.cjs.map +1 -0
  167. package/dist/node/A-FrameChannel.component--YErPxf4.d.mts +97 -0
  168. package/dist/node/A-FrameChannel.component-BjgqMh1B.d.ts +97 -0
  169. package/dist/node/A-FrameChannel.component-C0O3TaRD.d.ts +679 -0
  170. package/dist/node/A-FrameChannel.component-CgBZYBz0.d.mts +379 -0
  171. package/dist/node/A-FrameChannel.component-CkZserv3.d.ts +97 -0
  172. package/dist/node/A-FrameChannel.component-DMA-3sUB.d.mts +679 -0
  173. package/dist/node/A-FrameChannel.component-DYV8omYR.d.ts +379 -0
  174. package/dist/node/A-FrameChannel.component-DwgYNfFn.d.mts +97 -0
  175. package/dist/node/A-FrameChannel.types-B3_xWKEO.d.mts +151 -0
  176. package/dist/node/A-FrameChannel.types-BGcVXTqa.d.ts +205 -0
  177. package/dist/node/A-FrameChannel.types-Boi8QqDK.d.mts +205 -0
  178. package/dist/node/A-FrameChannel.types-BsE6bNky.d.mts +205 -0
  179. package/dist/node/A-FrameChannel.types-C-gxXl8m.d.ts +151 -0
  180. package/dist/node/A-FrameChannel.types-DD2B11rf.d.ts +205 -0
  181. package/dist/node/A-FrameChannel.types-DYMgRiCF.d.mts +205 -0
  182. package/dist/node/A-FrameChannel.types-DwyZRsOy.d.ts +205 -0
  183. package/dist/node/A-FrameCompletion.entity-Brx11JMp.d.ts +72 -0
  184. package/dist/node/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
  185. package/dist/node/A-FrameDefinition.entity-BIF0sclD.d.ts +370 -0
  186. package/dist/node/A-FrameDefinition.entity-Bt9ua6cn.d.ts +358 -0
  187. package/dist/node/A-FrameDefinition.entity-C0kzaGJ0.d.ts +143 -0
  188. package/dist/node/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
  189. package/dist/node/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
  190. package/dist/node/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
  191. package/dist/node/A-FrameDefinition.types-BA_pLGpo.d.ts +232 -0
  192. package/dist/node/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
  193. package/dist/node/A-FrameDynamicContentOperation.context-C_aH1gEn.d.ts +297 -0
  194. package/dist/node/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
  195. package/dist/node/A-FrameDynamicContentOperation.context-DRqH2c3o.d.ts +266 -0
  196. package/dist/node/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
  197. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
  198. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.ts +29 -0
  199. package/dist/node/A-FrameDynamicStructure.entity-BVCbolMd.d.ts +210 -0
  200. package/dist/node/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
  201. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
  202. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.ts +235 -0
  203. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.mts +114 -0
  204. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.ts +114 -0
  205. package/dist/node/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
  206. package/dist/node/A-FrameNamespace.entity-HDXcLGcS.d.ts +136 -0
  207. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
  208. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.ts +141 -0
  209. package/dist/node/A-FrameSegment.entity-C0izuOmC.d.ts +161 -0
  210. package/dist/node/A-FrameSegment.entity-CMCgFCWU.d.ts +146 -0
  211. package/dist/node/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
  212. package/dist/node/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
  213. package/dist/node/A-FrameStorage.component-BnNKzvpY.d.mts +107 -0
  214. package/dist/node/A-FrameStorage.component-CDztogHV.d.mts +107 -0
  215. package/dist/node/A-FrameStorage.component-CW0YgKDI.d.mts +107 -0
  216. package/dist/node/A-FrameStorage.component-D4UEkIBx.d.mts +107 -0
  217. package/dist/node/A-FrameStorage.component-DV_jwK6r.d.ts +107 -0
  218. package/dist/node/A-FrameStorage.component-Di4EvbtC.d.ts +107 -0
  219. package/dist/node/A-FrameStorage.component-emIH1a1M.d.ts +107 -0
  220. package/dist/node/A-FrameStorage.component-y-JPiIQ4.d.ts +107 -0
  221. package/dist/node/bundle.cjs +66 -21
  222. package/dist/node/bundle.cjs.map +1 -1
  223. package/dist/node/bundle.d.mts +88 -24
  224. package/dist/node/bundle.d.ts +88 -24
  225. package/dist/node/bundle.mjs +65 -20
  226. package/dist/node/bundle.mjs.map +1 -1
  227. package/dist/node/channel.cjs +33 -26
  228. package/dist/node/channel.d.mts +10 -6
  229. package/dist/node/channel.d.ts +10 -6
  230. package/dist/node/channel.mjs +13 -6
  231. package/dist/node/chunk-2HUSP34L.mjs +55 -0
  232. package/dist/node/chunk-2HUSP34L.mjs.map +1 -0
  233. package/dist/node/chunk-2KXGI2E5.cjs +474 -0
  234. package/dist/node/chunk-2KXGI2E5.cjs.map +1 -0
  235. package/dist/node/chunk-2OQMOIR5.mjs +170 -0
  236. package/dist/node/chunk-2OQMOIR5.mjs.map +1 -0
  237. package/dist/node/chunk-2UI7RJ4Q.mjs +207 -0
  238. package/dist/node/chunk-2UI7RJ4Q.mjs.map +1 -0
  239. package/dist/node/chunk-3SLICJ3L.cjs +265 -0
  240. package/dist/node/chunk-3SLICJ3L.cjs.map +1 -0
  241. package/dist/node/chunk-3ZDHQOIU.cjs +92 -0
  242. package/dist/node/chunk-3ZDHQOIU.cjs.map +1 -0
  243. package/dist/node/chunk-5BKCX2RO.mjs +1 -1
  244. package/dist/node/chunk-5BKCX2RO.mjs.map +1 -1
  245. package/dist/node/chunk-5NCGXLP2.mjs +6 -0
  246. package/dist/node/chunk-5NCGXLP2.mjs.map +1 -0
  247. package/dist/node/chunk-5OTXZ7BB.mjs +53 -0
  248. package/dist/node/chunk-5OTXZ7BB.mjs.map +1 -0
  249. package/dist/node/chunk-5PYIATGT.mjs +469 -0
  250. package/dist/node/chunk-5PYIATGT.mjs.map +1 -0
  251. package/dist/node/chunk-64QCZG53.cjs +57 -0
  252. package/dist/node/chunk-64QCZG53.cjs.map +1 -0
  253. package/dist/node/chunk-652OEICJ.cjs +4 -0
  254. package/dist/node/chunk-652OEICJ.cjs.map +1 -0
  255. package/dist/node/chunk-674ZX6XJ.mjs +187 -0
  256. package/dist/node/chunk-674ZX6XJ.mjs.map +1 -0
  257. package/dist/node/chunk-6ID2IXYX.mjs +6 -0
  258. package/dist/node/chunk-6ID2IXYX.mjs.map +1 -0
  259. package/dist/node/chunk-7EM3Q7HA.mjs +655 -0
  260. package/dist/node/chunk-7EM3Q7HA.mjs.map +1 -0
  261. package/dist/node/chunk-7MVVMISA.cjs +293 -0
  262. package/dist/node/chunk-7MVVMISA.cjs.map +1 -0
  263. package/dist/node/chunk-7NSLGCAZ.mjs +1395 -0
  264. package/dist/node/chunk-7NSLGCAZ.mjs.map +1 -0
  265. package/dist/node/chunk-7OLLATCC.mjs +1289 -0
  266. package/dist/node/chunk-7OLLATCC.mjs.map +1 -0
  267. package/dist/node/chunk-7SEZMRLI.cjs +183 -0
  268. package/dist/node/chunk-7SEZMRLI.cjs.map +1 -0
  269. package/dist/node/chunk-A4CVDMSV.mjs +608 -0
  270. package/dist/node/chunk-A4CVDMSV.mjs.map +1 -0
  271. package/dist/node/chunk-A7CJIUYY.cjs +4 -0
  272. package/dist/node/chunk-A7CJIUYY.cjs.map +1 -0
  273. package/dist/node/chunk-ALFFUJ2J.mjs +163 -0
  274. package/dist/node/chunk-ALFFUJ2J.mjs.map +1 -0
  275. package/dist/node/chunk-AMMQ76RJ.mjs +179 -0
  276. package/dist/node/chunk-AMMQ76RJ.mjs.map +1 -0
  277. package/dist/node/chunk-AUKWKGVA.cjs +688 -0
  278. package/dist/node/chunk-AUKWKGVA.cjs.map +1 -0
  279. package/dist/node/chunk-AY6UMDWD.cjs +270 -0
  280. package/dist/node/chunk-AY6UMDWD.cjs.map +1 -0
  281. package/dist/node/chunk-B7ZDJXD3.cjs +1 -1
  282. package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -1
  283. package/dist/node/chunk-BBYOL3LM.cjs +1308 -0
  284. package/dist/node/chunk-BBYOL3LM.cjs.map +1 -0
  285. package/dist/node/chunk-BINGAHFW.cjs +1308 -0
  286. package/dist/node/chunk-BINGAHFW.cjs.map +1 -0
  287. package/dist/node/chunk-BSBY37MG.cjs +55 -0
  288. package/dist/node/chunk-BSBY37MG.cjs.map +1 -0
  289. package/dist/node/chunk-BWX7HFTH.cjs +209 -0
  290. package/dist/node/chunk-BWX7HFTH.cjs.map +1 -0
  291. package/dist/node/chunk-C37B34MH.cjs +188 -0
  292. package/dist/node/chunk-C37B34MH.cjs.map +1 -0
  293. package/dist/node/chunk-C6BBKHQG.cjs +250 -0
  294. package/dist/node/chunk-C6BBKHQG.cjs.map +1 -0
  295. package/dist/node/chunk-CLCAS67N.cjs +8 -0
  296. package/dist/node/chunk-CLCAS67N.cjs.map +1 -0
  297. package/dist/node/chunk-CNU3CRTR.mjs +43 -0
  298. package/dist/node/chunk-CNU3CRTR.mjs.map +1 -0
  299. package/dist/node/chunk-CV5FPKU6.mjs +6 -0
  300. package/dist/node/chunk-CV5FPKU6.mjs.map +1 -0
  301. package/dist/node/chunk-CZYOAFIR.mjs +129 -0
  302. package/dist/node/chunk-CZYOAFIR.mjs.map +1 -0
  303. package/dist/node/chunk-D2HTYEJZ.cjs +209 -0
  304. package/dist/node/chunk-D2HTYEJZ.cjs.map +1 -0
  305. package/dist/node/chunk-EMLZZPOT.cjs +1446 -0
  306. package/dist/node/chunk-EMLZZPOT.cjs.map +1 -0
  307. package/dist/node/chunk-EOIXXXBV.cjs +55 -0
  308. package/dist/node/chunk-EOIXXXBV.cjs.map +1 -0
  309. package/dist/node/chunk-F4UCOZW5.mjs +1 -1
  310. package/dist/node/chunk-F4UCOZW5.mjs.map +1 -1
  311. package/dist/node/chunk-F64CK4NI.mjs +53 -0
  312. package/dist/node/chunk-F64CK4NI.mjs.map +1 -0
  313. package/dist/node/chunk-FAV62EUG.cjs +35 -0
  314. package/dist/node/chunk-FAV62EUG.cjs.map +1 -0
  315. package/dist/node/chunk-GHSPKZUN.mjs +529 -0
  316. package/dist/node/chunk-GHSPKZUN.mjs.map +1 -0
  317. package/dist/node/chunk-GRNVK7DW.mjs +97 -0
  318. package/dist/node/chunk-GRNVK7DW.mjs.map +1 -0
  319. package/dist/node/chunk-H5VGRPD5.cjs +8 -0
  320. package/dist/node/chunk-H5VGRPD5.cjs.map +1 -0
  321. package/dist/node/chunk-HAMDDCPS.cjs +8 -0
  322. package/dist/node/chunk-HAMDDCPS.cjs.map +1 -0
  323. package/dist/node/chunk-HAORARSB.cjs +75 -0
  324. package/dist/node/chunk-HAORARSB.cjs.map +1 -0
  325. package/dist/node/chunk-HELNAM5Y.cjs +8 -0
  326. package/dist/node/chunk-HELNAM5Y.cjs.map +1 -0
  327. package/dist/node/chunk-HET6L5PD.mjs +530 -0
  328. package/dist/node/chunk-HET6L5PD.mjs.map +1 -0
  329. package/dist/node/chunk-HI5SEX53.mjs +264 -0
  330. package/dist/node/chunk-HI5SEX53.mjs.map +1 -0
  331. package/dist/node/chunk-HZGFXE4Q.mjs +6 -0
  332. package/dist/node/chunk-HZGFXE4Q.mjs.map +1 -0
  333. package/dist/node/chunk-IAL2NK2V.mjs +73 -0
  334. package/dist/node/chunk-IAL2NK2V.mjs.map +1 -0
  335. package/dist/node/chunk-IHELFDCW.mjs +327 -0
  336. package/dist/node/chunk-IHELFDCW.mjs.map +1 -0
  337. package/dist/node/chunk-ILD6OSYW.mjs +966 -0
  338. package/dist/node/chunk-ILD6OSYW.mjs.map +1 -0
  339. package/dist/node/chunk-IP6DFAO7.mjs +264 -0
  340. package/dist/node/chunk-IP6DFAO7.mjs.map +1 -0
  341. package/dist/node/chunk-IYEDO7OQ.cjs +276 -0
  342. package/dist/node/chunk-IYEDO7OQ.cjs.map +1 -0
  343. package/dist/node/chunk-JFPGFPQD.mjs +1413 -0
  344. package/dist/node/chunk-JFPGFPQD.mjs.map +1 -0
  345. package/dist/node/chunk-JHZGTVYF.cjs +999 -0
  346. package/dist/node/chunk-JHZGTVYF.cjs.map +1 -0
  347. package/dist/node/chunk-JN3UJBUH.mjs +608 -0
  348. package/dist/node/chunk-JN3UJBUH.mjs.map +1 -0
  349. package/dist/node/chunk-JNPDXCCN.mjs +530 -0
  350. package/dist/node/chunk-JNPDXCCN.mjs.map +1 -0
  351. package/dist/node/chunk-JQBYDEMW.mjs +1 -1
  352. package/dist/node/chunk-JQBYDEMW.mjs.map +1 -1
  353. package/dist/node/chunk-JQJ7N4NL.cjs +267 -0
  354. package/dist/node/chunk-JQJ7N4NL.cjs.map +1 -0
  355. package/dist/node/chunk-K4AJBPPY.cjs +174 -0
  356. package/dist/node/chunk-K4AJBPPY.cjs.map +1 -0
  357. package/dist/node/chunk-K7SXPJPK.cjs +131 -0
  358. package/dist/node/chunk-K7SXPJPK.cjs.map +1 -0
  359. package/dist/node/chunk-KFW4GE7H.mjs +1289 -0
  360. package/dist/node/chunk-KFW4GE7H.mjs.map +1 -0
  361. package/dist/node/chunk-KKL2DF2D.cjs +518 -0
  362. package/dist/node/chunk-KKL2DF2D.cjs.map +1 -0
  363. package/dist/node/chunk-KKMKQGTR.cjs +620 -0
  364. package/dist/node/chunk-KKMKQGTR.cjs.map +1 -0
  365. package/dist/node/chunk-KNTO7FCZ.mjs +207 -0
  366. package/dist/node/chunk-KNTO7FCZ.mjs.map +1 -0
  367. package/dist/node/chunk-KTKVW3PH.mjs +286 -0
  368. package/dist/node/chunk-KTKVW3PH.mjs.map +1 -0
  369. package/dist/node/chunk-KZPSF32W.mjs +33 -0
  370. package/dist/node/chunk-KZPSF32W.mjs.map +1 -0
  371. package/dist/node/chunk-LWKFCMA7.mjs +129 -0
  372. package/dist/node/chunk-LWKFCMA7.mjs.map +1 -0
  373. package/dist/node/chunk-M2ZSE6YJ.mjs +512 -0
  374. package/dist/node/chunk-M2ZSE6YJ.mjs.map +1 -0
  375. package/dist/node/chunk-M6DJYGDO.cjs +167 -0
  376. package/dist/node/chunk-M6DJYGDO.cjs.map +1 -0
  377. package/dist/node/chunk-MAHKDTOQ.mjs +3 -0
  378. package/dist/node/chunk-MAHKDTOQ.mjs.map +1 -0
  379. package/dist/node/chunk-MM2R2OM6.cjs +541 -0
  380. package/dist/node/chunk-MM2R2OM6.cjs.map +1 -0
  381. package/dist/node/chunk-MSOD5UQH.cjs +45 -0
  382. package/dist/node/chunk-MSOD5UQH.cjs.map +1 -0
  383. package/dist/node/chunk-MVAWR76Q.cjs +276 -0
  384. package/dist/node/chunk-MVAWR76Q.cjs.map +1 -0
  385. package/dist/node/chunk-MXUO7OR5.cjs +97 -0
  386. package/dist/node/chunk-MXUO7OR5.cjs.map +1 -0
  387. package/dist/node/chunk-N4THTV6P.cjs +131 -0
  388. package/dist/node/chunk-N4THTV6P.cjs.map +1 -0
  389. package/dist/node/chunk-NIXKAQVP.cjs +1 -1
  390. package/dist/node/chunk-NIXKAQVP.cjs.map +1 -1
  391. package/dist/node/chunk-NUPXUUPM.cjs +1428 -0
  392. package/dist/node/chunk-NUPXUUPM.cjs.map +1 -0
  393. package/dist/node/chunk-NWOUVAIS.cjs +45 -0
  394. package/dist/node/chunk-NWOUVAIS.cjs.map +1 -0
  395. package/dist/node/chunk-OK7I5OQ3.mjs +89 -0
  396. package/dist/node/chunk-OK7I5OQ3.mjs.map +1 -0
  397. package/dist/node/chunk-OMGYXCFM.mjs +248 -0
  398. package/dist/node/chunk-OMGYXCFM.mjs.map +1 -0
  399. package/dist/node/chunk-OYZAQMKD.mjs +263 -0
  400. package/dist/node/chunk-OYZAQMKD.mjs.map +1 -0
  401. package/dist/node/chunk-P2LULMNL.cjs +189 -0
  402. package/dist/node/chunk-P2LULMNL.cjs.map +1 -0
  403. package/dist/node/chunk-PABEFHCO.mjs +63 -0
  404. package/dist/node/chunk-PABEFHCO.mjs.map +1 -0
  405. package/dist/node/chunk-Q5NYJQP2.cjs +8 -0
  406. package/dist/node/chunk-Q5NYJQP2.cjs.map +1 -0
  407. package/dist/node/chunk-QCEWWJ3N.cjs +65 -0
  408. package/dist/node/chunk-QCEWWJ3N.cjs.map +1 -0
  409. package/dist/node/chunk-QW4AZ3Z2.cjs +542 -0
  410. package/dist/node/chunk-QW4AZ3Z2.cjs.map +1 -0
  411. package/dist/node/chunk-RK5WSZ5J.mjs +43 -0
  412. package/dist/node/chunk-RK5WSZ5J.mjs.map +1 -0
  413. package/dist/node/chunk-RPHYBPXT.mjs +30 -0
  414. package/dist/node/chunk-RPHYBPXT.mjs.map +1 -0
  415. package/dist/node/chunk-RVXASBMQ.mjs +273 -0
  416. package/dist/node/chunk-RVXASBMQ.mjs.map +1 -0
  417. package/dist/node/chunk-RVZTZD32.mjs +187 -0
  418. package/dist/node/chunk-RVZTZD32.mjs.map +1 -0
  419. package/dist/node/chunk-RWLKISZQ.mjs +273 -0
  420. package/dist/node/chunk-RWLKISZQ.mjs.map +1 -0
  421. package/dist/node/chunk-SESXQJDD.cjs +999 -0
  422. package/dist/node/chunk-SESXQJDD.cjs.map +1 -0
  423. package/dist/node/chunk-SKIEPTFS.mjs +6 -0
  424. package/dist/node/chunk-SKIEPTFS.mjs.map +1 -0
  425. package/dist/node/chunk-SL7FT5R5.mjs +94 -0
  426. package/dist/node/chunk-SL7FT5R5.mjs.map +1 -0
  427. package/dist/node/chunk-SXHQW74T.mjs +43 -0
  428. package/dist/node/chunk-SXHQW74T.mjs.map +1 -0
  429. package/dist/node/chunk-TEJKDVNT.cjs +620 -0
  430. package/dist/node/chunk-TEJKDVNT.cjs.map +1 -0
  431. package/dist/node/chunk-TQS5WYND.cjs +352 -0
  432. package/dist/node/chunk-TQS5WYND.cjs.map +1 -0
  433. package/dist/node/chunk-UCAWV2IG.mjs +184 -0
  434. package/dist/node/chunk-UCAWV2IG.mjs.map +1 -0
  435. package/dist/node/chunk-UDUJDEAO.cjs +189 -0
  436. package/dist/node/chunk-UDUJDEAO.cjs.map +1 -0
  437. package/dist/node/chunk-VMJDL4SS.cjs +542 -0
  438. package/dist/node/chunk-VMJDL4SS.cjs.map +1 -0
  439. package/dist/node/chunk-VNOZTB3B.cjs +8 -0
  440. package/dist/node/chunk-VNOZTB3B.cjs.map +1 -0
  441. package/dist/node/chunk-VPMBZGYR.mjs +327 -0
  442. package/dist/node/chunk-VPMBZGYR.mjs.map +1 -0
  443. package/dist/node/chunk-WEPNBKOA.mjs +6 -0
  444. package/dist/node/chunk-WEPNBKOA.mjs.map +1 -0
  445. package/dist/node/chunk-WTBRJXFG.cjs +100 -0
  446. package/dist/node/chunk-WTBRJXFG.cjs.map +1 -0
  447. package/dist/node/chunk-WXCQCHAX.mjs +3 -0
  448. package/dist/node/chunk-WXCQCHAX.mjs.map +1 -0
  449. package/dist/node/chunk-X3TRPYGV.cjs +352 -0
  450. package/dist/node/chunk-X3TRPYGV.cjs.map +1 -0
  451. package/dist/node/chunk-XFUF7SDO.cjs +1 -1
  452. package/dist/node/chunk-XFUF7SDO.cjs.map +1 -1
  453. package/dist/node/chunk-XP2EPEBM.mjs +966 -0
  454. package/dist/node/chunk-XP2EPEBM.mjs.map +1 -0
  455. package/dist/node/chunk-XPIJ6BKP.cjs +45 -0
  456. package/dist/node/chunk-XPIJ6BKP.cjs.map +1 -0
  457. package/dist/node/chunk-YRVBMP7I.cjs +542 -0
  458. package/dist/node/chunk-YRVBMP7I.cjs.map +1 -0
  459. package/dist/node/chunk-ZIHSN5EE.mjs +530 -0
  460. package/dist/node/chunk-ZIHSN5EE.mjs.map +1 -0
  461. package/dist/node/chunk-ZNQMUU7I.cjs +32 -0
  462. package/dist/node/chunk-ZNQMUU7I.cjs.map +1 -0
  463. package/dist/node/completion.cjs +23 -0
  464. package/dist/node/completion.cjs.map +1 -0
  465. package/dist/node/completion.d.mts +10 -0
  466. package/dist/node/completion.d.ts +10 -0
  467. package/dist/node/completion.mjs +6 -0
  468. package/dist/node/completion.mjs.map +1 -0
  469. package/dist/node/core.cjs +67 -38
  470. package/dist/node/core.cjs.map +1 -1
  471. package/dist/node/core.d.mts +13 -8
  472. package/dist/node/core.d.ts +13 -8
  473. package/dist/node/core.mjs +58 -29
  474. package/dist/node/core.mjs.map +1 -1
  475. package/dist/node/credentials.cjs +17 -0
  476. package/dist/node/credentials.cjs.map +1 -0
  477. package/dist/node/credentials.d.mts +74 -0
  478. package/dist/node/credentials.d.ts +74 -0
  479. package/dist/node/credentials.mjs +4 -0
  480. package/dist/node/credentials.mjs.map +1 -0
  481. package/dist/node/definition.cjs +6 -4
  482. package/dist/node/definition.d.mts +3 -2
  483. package/dist/node/definition.d.ts +3 -2
  484. package/dist/node/definition.mjs +4 -2
  485. package/dist/node/dynamic-content.cjs +30 -0
  486. package/dist/node/dynamic-content.cjs.map +1 -0
  487. package/dist/node/dynamic-content.d.mts +13 -0
  488. package/dist/node/dynamic-content.d.ts +13 -0
  489. package/dist/node/dynamic-content.mjs +9 -0
  490. package/dist/node/dynamic-content.mjs.map +1 -0
  491. package/dist/node/dynamic-feature.cjs +41 -7
  492. package/dist/node/dynamic-feature.cjs.map +1 -1
  493. package/dist/node/dynamic-feature.d.mts +66 -6
  494. package/dist/node/dynamic-feature.d.ts +66 -6
  495. package/dist/node/dynamic-feature.mjs +16 -9
  496. package/dist/node/dynamic-feature.mjs.map +1 -1
  497. package/dist/node/dynamic-structure.cjs +45 -136
  498. package/dist/node/dynamic-structure.cjs.map +1 -1
  499. package/dist/node/dynamic-structure.d.mts +77 -3
  500. package/dist/node/dynamic-structure.d.ts +77 -3
  501. package/dist/node/dynamic-structure.mjs +16 -135
  502. package/dist/node/dynamic-structure.mjs.map +1 -1
  503. package/dist/node/env.cjs +3 -3
  504. package/dist/node/env.d.mts +26 -0
  505. package/dist/node/env.d.ts +26 -0
  506. package/dist/node/env.mjs +2 -2
  507. package/dist/node/frame-index.cjs +7 -4
  508. package/dist/node/frame-index.d.mts +70 -9
  509. package/dist/node/frame-index.d.ts +70 -9
  510. package/dist/node/frame-index.mjs +6 -3
  511. package/dist/node/logger.d.mts +4 -113
  512. package/dist/node/logger.d.ts +4 -113
  513. package/dist/node/models.cjs +14 -0
  514. package/dist/node/models.cjs.map +1 -0
  515. package/dist/node/models.d.mts +64 -0
  516. package/dist/node/models.d.ts +64 -0
  517. package/dist/node/models.mjs +5 -0
  518. package/dist/node/models.mjs.map +1 -0
  519. package/dist/node/namespace.cjs +7 -5
  520. package/dist/node/namespace.d.mts +1 -1
  521. package/dist/node/namespace.d.ts +1 -1
  522. package/dist/node/namespace.mjs +4 -2
  523. package/dist/node/schema.cjs +22 -0
  524. package/dist/node/schema.cjs.map +1 -0
  525. package/dist/node/schema.d.mts +10 -0
  526. package/dist/node/schema.d.ts +10 -0
  527. package/dist/node/schema.mjs +5 -0
  528. package/dist/node/schema.mjs.map +1 -0
  529. package/dist/node/segment.cjs +25 -0
  530. package/dist/node/segment.cjs.map +1 -0
  531. package/dist/node/segment.d.mts +13 -0
  532. package/dist/node/segment.d.ts +13 -0
  533. package/dist/node/segment.mjs +8 -0
  534. package/dist/node/segment.mjs.map +1 -0
  535. package/dist/node/storage.cjs +17 -14
  536. package/dist/node/storage.d.mts +18 -6
  537. package/dist/node/storage.d.ts +18 -6
  538. package/dist/node/storage.mjs +11 -8
  539. package/dist/node/vector.cjs +2 -2
  540. package/dist/node/vector.d.mts +7 -0
  541. package/dist/node/vector.d.ts +7 -0
  542. package/dist/node/vector.mjs +1 -1
  543. package/examples/article/main.ts +358 -0
  544. package/examples/components.ts +660 -0
  545. package/examples/feature/file-system.components.ts +211 -0
  546. package/examples/feature/main.ts +374 -0
  547. package/examples/interaction/main.ts +426 -0
  548. package/examples/logger.ts +126 -0
  549. package/examples/structure/main.ts +195 -0
  550. package/examples/structure/renderer.ts +296 -0
  551. package/examples/structure/server-app.components.ts +387 -0
  552. package/jest.config.browser.ts +9 -0
  553. package/jest.config.examples.ts +49 -0
  554. package/jest.config.integration.ts +38 -0
  555. package/jest.config.ts +56 -27
  556. package/jest.config.unit.ts +38 -0
  557. package/package.json +75 -7
  558. package/src/index.ts +13 -0
  559. package/src/lib/A-Frame/A-Frame.component.env-browser.ts +14 -3
  560. package/src/lib/A-Frame/A-Frame.component.env-node.ts +45 -15
  561. package/src/lib/A-Frame/A-Frame.context.ts +9 -8
  562. package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +4 -4
  563. package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -25
  564. package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +1 -1
  565. package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +54 -13
  566. package/src/lib/A-FrameBundle/index.browser.ts +1 -1
  567. package/src/lib/A-FrameBundle/index.ts +1 -1
  568. package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +18 -7
  569. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +0 -2
  570. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +14 -15
  571. package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +542 -7
  572. package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +2 -0
  573. package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +65 -1
  574. package/src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts +112 -0
  575. package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +1 -0
  576. package/src/lib/A-FrameChannel/index.browser.ts +5 -0
  577. package/src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts +3 -0
  578. package/src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts +128 -0
  579. package/src/lib/A-FrameCompletion/A-FrameCompletion.types.ts +40 -0
  580. package/src/lib/A-FrameCompletion/index.ts +3 -0
  581. package/src/lib/A-FrameCredentials/A-FrameCredentials.constants.ts +5 -0
  582. package/src/lib/A-FrameCredentials/A-FrameCredentials.entity.ts +120 -0
  583. package/src/lib/A-FrameCredentials/A-FrameCredentials.types.ts +39 -0
  584. package/src/lib/A-FrameCredentials/index.ts +3 -0
  585. package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +23 -1
  586. package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +34 -1
  587. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts +5 -0
  588. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts +348 -0
  589. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts +10 -0
  590. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.types.ts +116 -0
  591. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts +288 -0
  592. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts +26 -0
  593. package/src/lib/A-FrameDynamicContent/index.ts +5 -0
  594. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.constants.ts +6 -0
  595. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +253 -4
  596. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.error.ts +11 -0
  597. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +188 -4
  598. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context.ts +33 -0
  599. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapIndex.context.ts +99 -0
  600. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapper.component.ts +182 -0
  601. package/src/lib/A-FrameDynamicFeature/index.ts +6 -1
  602. package/src/lib/A-FrameDynamicPatch/index.ts +2 -0
  603. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapIndex.context.ts +99 -0
  604. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapper.component.ts +320 -0
  605. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +2 -1
  606. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +240 -128
  607. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +183 -87
  608. package/src/lib/A-FrameDynamicStructure/index.ts +3 -0
  609. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +5 -1
  610. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +23 -1
  611. package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +12 -0
  612. package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +63 -13
  613. package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +53 -0
  614. package/src/lib/A-FrameModels/A-FrameModels.constants.ts +75 -0
  615. package/src/lib/A-FrameModels/index.ts +1 -0
  616. package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +10 -3
  617. package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +5 -0
  618. package/src/lib/A-FrameSchema/A-FrameSchema.constants.ts +4 -0
  619. package/src/lib/A-FrameSchema/A-FrameSchema.entity.ts +154 -0
  620. package/src/lib/A-FrameSchema/A-FrameSchema.types.ts +88 -0
  621. package/src/lib/A-FrameSchema/index.ts +3 -0
  622. package/src/lib/A-FrameSegment/A-FrameSegment.constants.ts +12 -0
  623. package/src/lib/A-FrameSegment/A-FrameSegment.entity.ts +221 -0
  624. package/src/lib/A-FrameSegment/A-FrameSegment.types.ts +91 -0
  625. package/src/lib/A-FrameSegment/index.ts +3 -0
  626. package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +10 -4
  627. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +21 -0
  628. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +39 -21
  629. package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +124 -42
  630. package/src/lib/A-FrameVector/A-FrameVector.entity.ts +24 -0
  631. package/tests/A-Frame.browser.test.ts +167 -57
  632. package/tests/A-FrameDynamicContent.browser.test.ts +74 -0
  633. package/tests/integration/A-Frame.integration.test.ts +272 -0
  634. package/tests/integration/A-FrameCompletion.integration.test.ts +88 -0
  635. package/tests/integration/A-FrameContentMapping.integration.test.ts +261 -0
  636. package/tests/integration/A-FrameDefinition.integration.test.ts +154 -0
  637. package/tests/integration/A-FrameDynamicContent.integration.test.ts +126 -0
  638. package/tests/integration/A-FrameDynamicFeature.integration.test.ts +337 -0
  639. package/tests/integration/A-FrameDynamicStructure.integration.test.ts +264 -0
  640. package/tests/integration/A-FrameNamespace.integration.test.ts +109 -0
  641. package/tests/integration/A-FrameSchema.integration.test.ts +74 -0
  642. package/tests/integration/A-FrameSegment.integration.test.ts +102 -0
  643. package/tests/integration/A-FrameStorage.integration.test.ts +598 -0
  644. package/tests/jest.setup.browser.ts +1 -1
  645. package/tests/jest.setup.ts +4 -0
  646. package/tests/jest.setup.unit.ts +30 -0
  647. package/tests/unit/A-FrameChannel.unit.test.ts +124 -0
  648. package/tests/unit/A-FrameCompletion.unit.test.ts +25 -0
  649. package/tests/unit/A-FrameDefinition.unit.test.ts +36 -0
  650. package/tests/unit/A-FrameDynamicContent.unit.test.ts +28 -0
  651. package/tests/unit/A-FrameNamespace.unit.test.ts +35 -0
  652. package/tests/unit/A-FrameSchema.unit.test.ts +31 -0
  653. package/tests/unit/A-FrameSegment.unit.test.ts +20 -0
  654. package/tests/unit/mocks/MockA_FrameChannel.ts +112 -0
  655. package/tsconfig.browser.json +2 -0
  656. package/tsconfig.json +6 -0
  657. package/tsup.config.ts +52 -0
  658. package/tests/A-Frame.test.ts +0 -98
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Interactive Architecture Planner
3
+ *
4
+ * Translates natural-language requirements into a typed software architecture.
5
+ *
6
+ * Flow:
7
+ * 1. [generate] — the AI reads your requirements and guesses which containers,
8
+ * components, fragments and entities are needed, with a "role"
9
+ * explaining why each element was included.
10
+ * 2. [map] — each guess is matched to the closest registered class via
11
+ * cosine similarity. Unmatched elements go to the AI with the
12
+ * top-K candidates; the AI selects the best fit or suggests an
13
+ * alternative description that is then re-searched locally.
14
+ * 3. [patch] — interactive refinement loop: type instructions to evolve the
15
+ * architecture, each patch re-runs the mapping step.
16
+ *
17
+ * Usage:
18
+ * npx ts-node examples/structure/main.ts
19
+ * npx ts-node examples/structure/main.ts "build a multi-tenant SaaS API"
20
+ *
21
+ * All diagnostic details go to .logs/<timestamp>_<goal>.log
22
+ */
23
+
24
+ import { A_Concept, A_Container, A_Error } from '@adaas/a-concept';
25
+ import { A_Frame } from '@adaas/a-frame/core';
26
+ import { A_FrameIndex } from '@adaas/a-frame/index';
27
+ import { A_FrameDynamicStructure } from '@adaas/a-frame/dynamic-structure';
28
+ import { config } from 'dotenv';
29
+ import { createInterface } from 'readline';
30
+ import { FileLogger } from '../logger';
31
+ import { SERVER_APP_COMPONENTS } from './server-app.components';
32
+ import { S, c, renderWelcome, renderGuesses, renderStructure, renderRaw, renderHelp } from './renderer';
33
+
34
+ config();
35
+
36
+ const MIN_SCORE = 0.6;
37
+ const CANDIDATE_COUNT = 5; // top-K candidates sent to AI on each unmatched-element retry
38
+
39
+ async function main(): Promise<void> {
40
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
41
+ const ask = (q: string): Promise<string> => new Promise(res => rl.question(q, res));
42
+
43
+ renderWelcome(SERVER_APP_COMPONENTS.length);
44
+
45
+ const presetGoal = process.argv[2]?.trim();
46
+ const goal = presetGoal
47
+ ? (console.log(c(` Goal: ${presetGoal}`, S.bcyan)), presetGoal)
48
+ : (await ask(c(' Describe the server application you want to build:\n ▸ ', S.bcyan))).trim();
49
+ if (!goal) { console.log(' No goal given.'); rl.close(); return; }
50
+
51
+ const log = new FileLogger(goal);
52
+
53
+ // ── Framework setup ───────────────────────────────────────────────────────
54
+ console.log(c('\n Setting up framework…', S.dim));
55
+ const container = new A_Container({ name: 'ServerAppWorkspace', components: SERVER_APP_COMPONENTS });
56
+ const concept = new A_Concept({
57
+ name: 'ArchitecturePlanner',
58
+ components: [A_Frame],
59
+ containers: [container],
60
+ });
61
+ await concept.load();
62
+
63
+ const index = concept.scope.resolve(A_FrameIndex)!;
64
+ const defs = index.listDefinitions({});
65
+ const unembedded = defs.filter(d => !d.isEmbed);
66
+
67
+ console.log(c(` Embedding ${unembedded.length} definitions…`, S.dim));
68
+ await Promise.all(unembedded.map(d => d.embed()));
69
+
70
+ log.info('Setup complete', {
71
+ components: SERVER_APP_COMPONENTS.length,
72
+ indexed: defs.length,
73
+ embedded: index.listDefinitions({}).filter(d => d.isEmbed).length,
74
+ });
75
+
76
+ // ── Create & register DynamicStructure ────────────────────────────────────
77
+ const structure = new A_FrameDynamicStructure({
78
+ prompt: goal,
79
+ options: {
80
+ minScore: MIN_SCORE,
81
+ candidateCount: CANDIDATE_COUNT,
82
+ },
83
+ });
84
+ container.scope.register(structure);
85
+
86
+ // ── Generate ──────────────────────────────────────────────────────────────
87
+ console.log(c(' Generating architecture guesses…', S.dim));
88
+ const t0 = Date.now();
89
+ await structure.generate();
90
+ const def0 = structure.definition;
91
+ log.info('Generated', {
92
+ containers: def0?.containers.length ?? 0,
93
+ components: def0?.components.length ?? 0,
94
+ fragments: def0?.fragments.length ?? 0,
95
+ entities: def0?.entities.length ?? 0,
96
+ ms: Date.now() - t0,
97
+ });
98
+ if (def0) {
99
+ const total = def0.containers.length + def0.components.length
100
+ + def0.fragments.length + def0.entities.length;
101
+ console.log(c(` ✓ ${total} elements guessed — ${def0.containers.length} containers, ${def0.components.length} components, ${def0.fragments.length} fragments, ${def0.entities.length} entities`, S.dim)); renderGuesses(def0); }
102
+
103
+ // ── Map ───────────────────────────────────────────────────────────────────
104
+ console.log(c(' Mapping guesses to registered classes…', S.dim));
105
+ const t1 = Date.now();
106
+ await structure.map();
107
+ const res = structure.mapResult;
108
+ const allMapped = res
109
+ ? [...res.containers, ...res.containers.flatMap(ct => [...ct.components, ...ct.fragments, ...ct.entities]),
110
+ ...res.components, ...res.fragments, ...res.entities]
111
+ : [];
112
+ const matchedCount = allMapped.filter(e => e.matchedClass !== null).length;
113
+ log.info('Mapped', { total: allMapped.length, matched: matchedCount, ms: Date.now() - t1 });
114
+ console.log(c(` ✓ ${matchedCount}/${allMapped.length} elements matched`, S.dim));
115
+
116
+ let revision = 0;
117
+ renderStructure(structure, revision);
118
+ renderHelp();
119
+
120
+ // ── Interactive patch loop ────────────────────────────────────────────────
121
+ while (true) {
122
+ const input = (await ask(c(' ▸ ', S.yellow))).trim();
123
+ if (!input) continue;
124
+
125
+ const cmd = input.toLowerCase();
126
+
127
+ if (cmd === 'done' || cmd === 'exit' || cmd === 'quit') {
128
+ const def = structure.definition;
129
+ const total = (def?.containers.length ?? 0) + (def?.components.length ?? 0)
130
+ + (def?.fragments.length ?? 0) + (def?.entities.length ?? 0);
131
+ console.log(c(`\n ✓ Final architecture: "${goal}"`, S.green));
132
+ console.log(c(` ${def?.containers.length ?? 0} containers · ${total} elements total · ${revision} revision(s)`, S.dim));
133
+ console.log(c(` ✓ Log: ${log.path}\n`, S.dim));
134
+ break;
135
+ }
136
+
137
+ if (cmd === 'redraw') { renderStructure(structure, revision); continue; }
138
+
139
+ if (cmd === 'raw') { renderRaw(structure); continue; }
140
+
141
+ if (cmd === 'remap') {
142
+ console.log(c(' Re-mapping guesses to classes…', S.dim));
143
+ const rt = Date.now();
144
+ await structure.map();
145
+ const remapRes = structure.mapResult;
146
+ const remapAll = remapRes
147
+ ? [...remapRes.containers, ...remapRes.containers.flatMap(ct => [...ct.components, ...ct.fragments, ...ct.entities]),
148
+ ...remapRes.components, ...remapRes.fragments, ...remapRes.entities]
149
+ : [];
150
+ const remapMatched = remapAll.filter(e => e.matchedClass !== null).length;
151
+ log.info('Remapped', { total: remapAll.length, matched: remapMatched, ms: Date.now() - rt });
152
+ renderStructure(structure, revision);
153
+ console.log(c(` ✓ Re-mapped: ${remapMatched}/${remapAll.length} matched\n`, S.dim));
154
+ continue;
155
+ }
156
+
157
+ // ── Patch ─────────────────────────────────────────────────────────────
158
+ log.header('PATCH REQUEST', { input, revision: revision + 1 });
159
+ console.log(c(' Applying patch…', S.dim));
160
+
161
+ try {
162
+ const pt = Date.now();
163
+ await structure.patch(input);
164
+ log.info('Patched', {
165
+ version: structure.version,
166
+ containers: structure.definition?.containers.length ?? 0,
167
+ components: structure.definition?.components.length ?? 0,
168
+ ms: Date.now() - pt,
169
+ });
170
+
171
+ console.log(c(' Re-mapping after patch…', S.dim));
172
+ const mt = Date.now();
173
+ await structure.map();
174
+ log.info('Mapped after patch', { ms: Date.now() - mt });
175
+
176
+ revision++;
177
+ renderStructure(structure, revision);
178
+ console.log(c(` ✓ Revision ${revision} applied\n`, S.green));
179
+ } catch (err) {
180
+ const msg = err instanceof A_Error ? err.description : (err as Error).message;
181
+ console.log(c(`\n ✗ Patch failed: ${msg}\n`, S.red));
182
+ log.error('Patch failed', { message: msg });
183
+ }
184
+ }
185
+
186
+ rl.close();
187
+ }
188
+
189
+ main().catch(err => {
190
+ console.error(
191
+ c('\n Fatal error\n', S.red, S.bold),
192
+ err instanceof A_Error ? err.description : (err as Error).message,
193
+ );
194
+ process.exit(1);
195
+ });
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Terminal renderer for the Architecture Planner example.
3
+ *
4
+ * Owns all ANSI colours, layout constants, text-wrapping, and every
5
+ * console.log call that draws the architecture on screen. Nothing here
6
+ * knows about the A-Frame workflow — it only knows how to display it.
7
+ */
8
+
9
+ import type {
10
+ A_FrameDynamicStructureDefinition,
11
+ A_FrameDynamicStructureDefinitionEntity,
12
+ } from '@adaas/a-frame/dynamic-structure';
13
+ import { A_FrameDynamicStructure } from '@adaas/a-frame/dynamic-structure';
14
+
15
+ // ─── ANSI colour palette ──────────────────────────────────────────────────────
16
+
17
+ const ESC = '\x1b[';
18
+ export const S = {
19
+ reset: `${ESC}0m`,
20
+ bold: `${ESC}1m`,
21
+ dim: `${ESC}2m`,
22
+ italic: `${ESC}3m`,
23
+ cyan: `${ESC}36m`,
24
+ bcyan: `${ESC}96m`,
25
+ green: `${ESC}32m`,
26
+ bgreen: `${ESC}92m`,
27
+ yellow: `${ESC}33m`,
28
+ byellow: `${ESC}93m`,
29
+ blue: `${ESC}34m`,
30
+ bblue: `${ESC}94m`,
31
+ magenta: `${ESC}35m`,
32
+ red: `${ESC}31m`,
33
+ gray: `${ESC}90m`,
34
+ white: `${ESC}37m`,
35
+ };
36
+
37
+ /** Apply one or more ANSI style codes to a string, then reset. */
38
+ export const c = (s: string, ...st: string[]): string => st.join('') + s + S.reset;
39
+
40
+ export const CLEAR = '\x1b[2J\x1b[H';
41
+
42
+ // ─── Text layout ──────────────────────────────────────────────────────────────
43
+
44
+ export function wrap(text: string, w = 68): string[] {
45
+ const words = text.split(/\s+/);
46
+ const lines: string[] = [];
47
+ let line = '';
48
+ for (const word of words) {
49
+ const next = line ? `${line} ${word}` : word;
50
+ if (next.length > w) { if (line) lines.push(line); line = word; } else line = next;
51
+ }
52
+ if (line) lines.push(line);
53
+ return lines;
54
+ }
55
+
56
+ // ─── Element model ────────────────────────────────────────────────────────────
57
+
58
+ export type ElementWithMatch = {
59
+ prompt: string;
60
+ /** Why this element was guessed — the requirement or concern it satisfies. */
61
+ role?: string;
62
+ class?: string;
63
+ matchedClass: string | null;
64
+ matchScore: number;
65
+ matchError?: { title: string; description: string } | null;
66
+ };
67
+
68
+ export function asMatchEntry(el: A_FrameDynamicStructureDefinitionEntity): ElementWithMatch {
69
+ return { ...el, matchedClass: null, matchScore: 0 };
70
+ }
71
+
72
+ // ─── Element / section renderers ─────────────────────────────────────────────
73
+
74
+ export function renderElement(el: ElementWithMatch, indent = ' '): void {
75
+ const matched = el.matchedClass !== null;
76
+ const errored = !matched && el.matchError;
77
+ const scoreStr = matched
78
+ ? c(`[${el.matchScore.toFixed(3)}]`, el.matchScore >= 0.75 ? S.bgreen : S.yellow)
79
+ : errored
80
+ ? c('[✗]', S.red)
81
+ : c('[?]', S.gray);
82
+ const nameStr = matched
83
+ ? c(el.matchedClass!, S.bgreen, S.bold)
84
+ : errored
85
+ ? c(el.class ?? '(unmatched)', S.red)
86
+ : c(el.class ?? '(unmapped)', S.gray);
87
+
88
+ console.log(`${indent}${scoreStr} ${nameStr}`);
89
+ for (const line of wrap(el.prompt, 62)) {
90
+ console.log(c(`${indent} ${line}`, S.dim));
91
+ }
92
+ if (el.role) {
93
+ console.log(c(`${indent} ↳ ${el.role}`, S.blue));
94
+ }
95
+ if (errored) {
96
+ console.log(c(`${indent} ✗ ${el.matchError!.description.slice(0, 72)}`, S.red));
97
+ }
98
+ }
99
+
100
+ export function renderSection(label: string, items: ElementWithMatch[], indent = ' '): void {
101
+ if (!items.length) return;
102
+ console.log(c(`\n${indent}${label}`, S.bold, S.yellow));
103
+ console.log(c(`${indent}${'─'.repeat(64)}`, S.gray));
104
+ for (const el of items) renderElement(el, indent + ' ');
105
+ }
106
+
107
+ // ─── Guess view (pre-map) ─────────────────────────────────────────────────────
108
+
109
+ /** Print a single raw guess element (no match score yet, just prompt + role). */
110
+ function renderGuessElement(
111
+ el: A_FrameDynamicStructureDefinitionEntity,
112
+ indent = ' ',
113
+ ): void {
114
+ console.log(c(`${indent}▸ ${el.class ?? '?'}`, S.bcyan));
115
+ for (const line of wrap(el.prompt, 62)) {
116
+ console.log(c(`${indent} ${line}`, S.dim));
117
+ }
118
+ if ((el as any).role) {
119
+ console.log(c(`${indent} ↳ ${(el as any).role}`, S.blue));
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Print the raw guesses returned by `generate()` — before any mapping.
125
+ * Shows containers (+ their nested elements) then cross-cutting groups.
126
+ */
127
+ export function renderGuesses(def: A_FrameDynamicStructureDefinition): void {
128
+ const total = def.containers.length + def.components.length
129
+ + def.fragments.length + def.entities.length;
130
+
131
+ console.log(c('\n' + '━'.repeat(72), S.gray));
132
+ console.log(c(` ╸ AI guesses · ${total} top-level elements`, S.dim));
133
+ console.log(c('━'.repeat(72), S.gray));
134
+
135
+ if (def.containers.length) {
136
+ console.log(c('\n CONTAINERS', S.bold, S.yellow));
137
+ console.log(c(' ' + '─'.repeat(68), S.gray));
138
+ for (const ct of def.containers) {
139
+ console.log();
140
+ renderGuessElement(ct, ' ');
141
+ if (ct.components?.length) {
142
+ console.log(c(' components', S.bold, S.yellow));
143
+ for (const el of ct.components) renderGuessElement(el, ' ');
144
+ }
145
+ if (ct.fragments?.length) {
146
+ console.log(c(' fragments', S.bold, S.yellow));
147
+ for (const el of ct.fragments) renderGuessElement(el, ' ');
148
+ }
149
+ if (ct.entities?.length) {
150
+ console.log(c(' entities', S.bold, S.yellow));
151
+ for (const el of ct.entities) renderGuessElement(el, ' ');
152
+ }
153
+ }
154
+ }
155
+
156
+ if (def.components.length) {
157
+ console.log(c('\n COMPONENTS', S.bold, S.yellow));
158
+ console.log(c(' ' + '─'.repeat(68), S.gray));
159
+ for (const el of def.components) renderGuessElement(el);
160
+ }
161
+ if (def.fragments.length) {
162
+ console.log(c('\n FRAGMENTS', S.bold, S.yellow));
163
+ console.log(c(' ' + '─'.repeat(68), S.gray));
164
+ for (const el of def.fragments) renderGuessElement(el);
165
+ }
166
+ if (def.entities.length) {
167
+ console.log(c('\n ENTITIES', S.bold, S.yellow));
168
+ console.log(c(' ' + '─'.repeat(68), S.gray));
169
+ for (const el of def.entities) renderGuessElement(el);
170
+ }
171
+
172
+ console.log(c('\n' + '━'.repeat(72), S.gray));
173
+ console.log();
174
+ }
175
+
176
+ // ─── Full architecture view ───────────────────────────────────────────────────
177
+
178
+ export function renderStructure(structure: A_FrameDynamicStructure, revision: number): void {
179
+ process.stdout.write(CLEAR);
180
+
181
+ const def = structure.definition;
182
+ const result = structure.mapResult;
183
+
184
+ if (!def) {
185
+ console.log(c(' (no architecture generated yet)', S.dim));
186
+ return;
187
+ }
188
+
189
+ const totalElements =
190
+ def.containers.length +
191
+ def.containers.reduce((n, ct) => n + ct.components.length + ct.fragments.length + ct.entities.length, 0) +
192
+ def.components.length + def.fragments.length + def.entities.length;
193
+
194
+ // Header
195
+ const revLabel = revision === 0 ? 'initial design' : `revision ${revision}`;
196
+ console.log(c(`\n ╸ ${revLabel} · v${structure.version} · ${totalElements} elements`, S.dim));
197
+ console.log(c('━'.repeat(72), S.gray));
198
+ console.log(c(`\n Architecture: ${structure.prompt}`, S.bold, S.bcyan));
199
+
200
+ // Containers
201
+ const containers = result?.containers ?? def.containers.map(ct => ({
202
+ ...asMatchEntry(ct),
203
+ components: ct.components.map(asMatchEntry),
204
+ fragments: ct.fragments.map(asMatchEntry),
205
+ entities: ct.entities.map(asMatchEntry),
206
+ }));
207
+
208
+ if (containers.length) {
209
+ console.log(c(`\n CONTAINERS`, S.bold, S.yellow));
210
+ console.log(c(' ' + '─'.repeat(68), S.gray));
211
+
212
+ for (const ct of containers) {
213
+ const matched = ct.matchedClass !== null;
214
+ const scoreStr = matched
215
+ ? c(`[${ct.matchScore.toFixed(3)}]`, ct.matchScore >= 0.75 ? S.bgreen : S.yellow)
216
+ : c('[?]', S.gray);
217
+ const nameStr = matched
218
+ ? c(ct.matchedClass!, S.bcyan, S.bold)
219
+ : c(ct.class ?? '(unmapped)', S.gray);
220
+
221
+ console.log(`\n ${scoreStr} ${nameStr}`);
222
+ for (const line of wrap(ct.prompt, 66)) {
223
+ console.log(c(` ${line}`, S.dim));
224
+ }
225
+
226
+ const ctComponents = (ct as any).components as ElementWithMatch[] ?? [];
227
+ const ctFragments = (ct as any).fragments as ElementWithMatch[] ?? [];
228
+ const ctEntities = (ct as any).entities as ElementWithMatch[] ?? [];
229
+
230
+ renderSection('components', ctComponents, ' ');
231
+ renderSection('fragments', ctFragments, ' ');
232
+ renderSection('entities', ctEntities, ' ');
233
+ }
234
+ }
235
+
236
+ // Cross-cutting elements
237
+ const components = result?.components ?? def.components.map(asMatchEntry);
238
+ const fragments = result?.fragments ?? def.fragments.map(asMatchEntry);
239
+ const entities = result?.entities ?? def.entities.map(asMatchEntry);
240
+
241
+ renderSection('COMPONENTS', components);
242
+ renderSection('FRAGMENTS', fragments);
243
+ renderSection('ENTITIES', entities);
244
+
245
+ // Stats
246
+ if (result) {
247
+ const allEntries: ElementWithMatch[] = [
248
+ ...result.containers,
249
+ ...result.containers.flatMap(ct => [...ct.components, ...ct.fragments, ...ct.entities]),
250
+ ...result.components,
251
+ ...result.fragments,
252
+ ...result.entities,
253
+ ];
254
+ const matched = allEntries.filter(e => e.matchedClass !== null).length;
255
+ console.log(c(`\n ╸ ${matched}/${allEntries.length} elements matched`, S.dim));
256
+ }
257
+
258
+ console.log(c('\n' + '━'.repeat(72), S.gray));
259
+ }
260
+
261
+ // ─── Raw JSON view ────────────────────────────────────────────────────────────
262
+
263
+ export function renderRaw(structure: A_FrameDynamicStructure): void {
264
+ process.stdout.write(CLEAR);
265
+ console.log(c(' ╸ raw structure JSON\n', S.dim));
266
+ const lines = structure.structure.split('\n');
267
+ for (const line of lines.slice(0, 80)) console.log(c(` ${line}`, S.gray));
268
+ if (lines.length > 80) console.log(c(` … (${lines.length - 80} more lines)`, S.dim));
269
+ }
270
+
271
+ // ─── Welcome banner ───────────────────────────────────────────────────────────
272
+
273
+ export function renderWelcome(componentCount: number): void {
274
+ process.stdout.write(CLEAR);
275
+ console.log(c('\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓', S.bcyan));
276
+ console.log(c(' ┃', S.bcyan) + c(' Architecture Planner ', S.bold) + c('┃', S.bcyan));
277
+ console.log(c(' ┃', S.bcyan) + c(' Generate guesses → Map to classes → Patch ', S.dim) + c('┃', S.bcyan));
278
+ console.log(c(' ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛', S.bcyan));
279
+ console.log(c(`\n Domain: Node.js server application (${componentCount} registered classes)`, S.dim));
280
+ console.log(c(' The AI will guess which containers, components, fragments and entities', S.dim));
281
+ console.log(c(' are needed, then map each guess to the closest registered class.', S.dim));
282
+ console.log(c(' e.g. "build a REST API with JWT auth and scheduled digest emails"', S.dim));
283
+ console.log(c(' "create a multi-tenant SaaS backend with file uploads"', S.dim));
284
+ console.log(c(' "design a WebSocket notification service with rate limiting"\n', S.dim));
285
+ }
286
+
287
+ // ─── Commands help ────────────────────────────────────────────────────────────
288
+
289
+ export function renderHelp(): void {
290
+ console.log(c(' Commands:', S.dim));
291
+ console.log(c(' Type a patch instruction ("add a WebSocket notification layer")', S.dim));
292
+ console.log(c(' "remap" — re-run class matching without regenerating', S.dim));
293
+ console.log(c(' "redraw" — redraw the current architecture', S.dim));
294
+ console.log(c(' "raw" — show the raw structure JSON', S.dim));
295
+ console.log(c(' "done" — exit\n', S.dim));
296
+ }