@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 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameChannel/A-FrameChannel.constants.ts","../../src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts","../../src/lib/A-FrameChannel/A-FrameChannel.error.ts","../../src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts","../../src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts","../../src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts","../../src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts","../../src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts","../../src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts","../../src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts","../../src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts","../../src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts","../../src/lib/A-FrameSegment/A-FrameSegment.constants.ts","../../src/lib/A-FrameSegment/A-FrameSegment.entity.ts","../../src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts","../../src/lib/A-FrameChannel/A-FrameChannel.component.ts","../../src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts"],"names":["A_Fragment","A_Error","A_Entity","A_Feature","A_Context","A_Scope","A_FrameVector","A_FrameIndex","__decorateClass","__decorateParam","A_FrameHashHelper","A_FrameDynamicPatch","A_Component","A_FrameDefinitionFeatures","A_FrameDefinition","A_Inject","A_Caller","A_FrameEnv","A_FrameNamespaceFeatures","A_FrameNamespace","A_FrameDynamicStructureFeatures","A_FrameDynamicStructure","A_FrameDynamicStructureOperation","https","http"],"mappings":"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","file":"chunk-NUPXUUPM.cjs","sourcesContent":["\n\nexport const A_FrameFeatures = {\n Request: '_A_FRAME_REQUEST',\n Socket: '_A_FRAME_SOCKET',\n Stream: '_A_FRAME_STREAM',\n Send: '_A_FRAME_SEND',\n} as const;\n\n\n\nexport const A_FrameChannelStreamStatuses = {\n Open: 'open',\n Closed: 'closed',\n} as const;\n\n\nexport const A_FrameChannelStreamFeatures = {\n open: '_A_FRAME_CHANNEL_STREAM_OPEN',\n send: '_A_FRAME_CHANNEL_STREAM_SEND',\n onEvent: '_A_FRAME_CHANNEL_STREAM_ON_EVENT',\n onError: '_A_FRAME_CHANNEL_STREAM_ON_ERROR',\n onComplete: '_A_FRAME_CHANNEL_STREAM_ON_COMPLETE',\n onClose: '_A_FRAME_CHANNEL_STREAM_ON_CLOSE',\n} as const;\n\n\n// ─── WebSocket socket entity constants ───────────────────────────────────────\n\nexport const A_FrameChannelSocketStatuses = {\n Connecting: 'connecting',\n Open: 'open',\n Closed: 'closed',\n} as const;\n\nexport const A_FrameChannelSocketFeatures = {\n onEvent: '_A_FRAME_CHANNEL_SOCKET_ON_EVENT',\n onError: '_A_FRAME_CHANNEL_SOCKET_ON_ERROR',\n onOpen: '_A_FRAME_CHANNEL_SOCKET_ON_OPEN',\n onClose: '_A_FRAME_CHANNEL_SOCKET_ON_CLOSE',\n} as const;\n","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameChannelRequest<\n _Response = any\n> extends A_Fragment {\n\n protected _response?: _Response;\n\n protected _error?: A_Error;\n\n\n constructor(\n public method: string,\n public path: string,\n public body?: unknown\n ) {\n super({ name: 'a-frame-channel-request' });\n }\n\n complete(response: _Response): void {\n this._response = response;\n }\n\n fail(error: A_Error): void {\n this._error = error;\n }\n\n get response(): _Response | undefined {\n return this._response;\n }\n\n get error(): A_Error | undefined {\n return this._error;\n }\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_FrameChannelError extends A_Error{\n static readonly InvalidRequest = 'InvalidRequest';\n static readonly Timeout = 'Timeout';\n static readonly RequestFailed = 'RequestFailed';\n}\n ","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameChannelEvent<\n T extends Record<string, any> = any,\n> extends A_Fragment {\n\n protected _data?: T;\n protected _eventName!: string;\n\n constructor(\n name: string,\n data?: T\n ) {\n super({ name: 'a-frame-channel-event-' + name });\n this._data = data as T;\n this._eventName = name;\n }\n\n get name(): string {\n return this._eventName;\n }\n\n get data(): T | undefined {\n return this._data;\n }\n\n}\n","import { A_Context, A_Entity, A_Error, A_Feature, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameChannelStream_Init, A_FrameChannelStream_Serialized, A_FrameChannelStreamStatusNames } from \"./A-FrameChannel.types\";\nimport { A_FrameChannelStreamFeatures, A_FrameChannelStreamStatuses } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelEvent } from \"./A-FrameChannelEvent.context\";\n\n\n\nexport class A_FrameChannelStream<\n T extends Record<string, any> = Record<string, any>\n> extends A_Entity<\n A_FrameChannelStream_Init<T>,\n A_FrameChannelStream_Serialized<T>\n> {\n\n\n static onEvent(name?: string) {\n\n const eventName = (name || 'all') + A_FrameChannelStreamFeatures.onEvent;\n\n\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: eventName,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n protected _method!: string;\n protected _path!: string;\n protected _body?: T;\n protected _scope!: A_Scope\n protected _error?: A_Error;\n protected _status!: A_FrameChannelStreamStatusNames;\n protected _initDate!: string;\n\n /**\n * The scope of the session, Will be destroyed after the session is closed.\n */\n get scope(): A_Scope {\n\n if (!this._scope) {\n this._scope = A_Context.allocate(this, new A_Scope({ name: `${this.aseid.id}-scope` }));\n }\n\n return this._scope;\n }\n\n get method(): string {\n return this._method;\n }\n\n get path(): string {\n return this._path;\n }\n\n get body(): T | undefined {\n return this._body;\n }\n\n get status(): A_FrameChannelStreamStatusNames {\n return this._status;\n }\n\n get error(): A_Error | undefined {\n return this._error;\n }\n\n get initDate(): Date {\n return new Date(this._initDate);\n }\n\n complete(): void {\n this._status = A_FrameChannelStreamStatuses.Closed;\n }\n\n fail(error: A_Error): void {\n this._status = A_FrameChannelStreamStatuses.Closed;\n this._error = error;\n }\n\n destroy(): Promise<void> | void {\n this.scope.destroy();\n }\n\n async open(){\n await this.call(A_FrameChannelStreamFeatures.open);\n }\n\n async send(){\n await this.call(A_FrameChannelStreamFeatures.send);\n }\n\n\n async propagate<T extends Record<string, any>>(name: string, data?: T): Promise<void> {\n const request = new A_FrameChannelEvent<T>(name, data);\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannelStream.propagate',\n fragments: [request],\n })\n .inherit(this.scope);\n\n try {\n\n const callName = (name || 'all') + A_FrameChannelStreamFeatures.onEvent;\n\n await this.call(callName, executionScope);\n executionScope.destroy();\n\n } catch {\n executionScope.destroy();\n }\n }\n\n fromNew(newEntity: A_FrameChannelStream_Init<T>): void {\n this.aseid = this.generateASEID();\n this._method = newEntity.method;\n this._path = newEntity.path;\n this._body = newEntity.body;\n this._initDate = new Date().toISOString();\n }\n\n fromJSON(serialized: A_FrameChannelStream_Serialized<T>): void {\n this._method = serialized.method;\n this._path = serialized.path;\n this._body = serialized.body;\n this._initDate = serialized.initDate;\n }\n\n\n toJSON(): A_FrameChannelStream_Serialized<T> {\n return {\n ...super.toJSON(),\n initDate: this._initDate,\n status: this._status,\n error: this._error ? this._error.toJSON() : undefined,\n method: this._method,\n path: this._path,\n body: this._body,\n }\n }\n\n}","\n\n\nexport const A_FrameDynamicSessionFeatures = {\n Init: '_A_FRAME_DYNAMIC_SESSION_INIT',\n Question: '_A_FRAME_DYNAMIC_SESSION_QUESTION',\n Answer: '_A_FRAME_DYNAMIC_SESSION_ANSWER',\n Destroy: '_A_FRAME_DYNAMIC_SESSION_DESTROY',\n} as const;","import { A_Context, A_Entity, A_Scope } from \"@adaas/a-concept\"\nimport { A_FrameDynamicSession_Init, A_FrameDynamicSession_Serialized } from \"./A-FrameDynamicSession.types\";\nimport { A_FrameDynamicSessionFeatures } from \"./A-FrameDynamicSession.constants\";\n\n\nexport class A_FrameDynamicSession extends A_Entity<A_FrameDynamicSession_Init, A_FrameDynamicSession_Serialized> {\n static get concept(): string {\n return 'a-frame';\n }\n\n /**\n * \n */\n protected _scope!: A_Scope\n\n protected _turnsCount!: number;\n protected _currentTurn!: number;\n protected _initDate!: string;\n\n /**\n * \n */\n get scope(): A_Scope {\n\n if (!this._scope) {\n this._scope = A_Context.allocate(this, new A_Scope({ name: `${this.aseid.id}-scope` }));\n }\n\n return this._scope;\n }\n\n get currentTurn(): number {\n return this._currentTurn;\n }\n\n get initDate(): Date {\n return new Date(this._initDate);\n }\n\n\n static onQuestion() {\n return;\n }\n\n static onAnswer() {\n return;\n }\n\n\n fromNew(newEntity: A_FrameDynamicSession_Init): void {\n this._turnsCount = newEntity.turnsCount || 5;\n this._currentTurn = 0;\n this._initDate = new Date().toISOString();\n\n }\n\n fromJSON(serialized: A_FrameDynamicSession_Serialized): void {\n this._turnsCount = serialized.turnsCount;\n this._currentTurn = serialized.currentTurn;\n this._initDate = serialized.initDate;\n }\n\n\n async init() {\n await this.call(A_FrameDynamicSessionFeatures.Init)\n }\n\n async destroy(scope?: A_Scope): Promise<void> {\n await this.call(A_FrameDynamicSessionFeatures.Destroy, scope);\n }\n\n\n async question() {\n this._currentTurn++;\n await this.call(A_FrameDynamicSessionFeatures.Question);\n }\n\n async answer() {\n await this.call(A_FrameDynamicSessionFeatures.Answer);\n }\n\n\n toJSON(): A_FrameDynamicSession_Serialized {\n return {\n ...super.toJSON(),\n turnsCount: this._turnsCount,\n currentTurn: this._currentTurn,\n initDate: this._initDate,\n }\n }\n}","import { A_Inject } from \"@adaas/a-concept\";\nimport { A_FrameChannelStream } from \"./A-FrameChannelStream.entity\";\nimport { A_FrameChannelEvent } from \"./A-FrameChannelEvent.context\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport { A_FrameIndex } from \"../A-FrameIndex/A-FrameIndex.context\";\nimport { A_FrameDynamicStructureResolvedComponent } from \"../A-FrameDynamicStructure/A-FrameDynamicStructure.types\";\n\ntype DsgRespondFn = (requestId: string, data: { component: string | null; score: number }) => Promise<void>;\n\n/**\n * A_FrameChannelDsgStream\n *\n * SSE stream entity used by the SSE-driven dynamic-structure generation\n * pipeline. Handles the following server-pushed events:\n *\n * search_component — server sends an embedded vector and asks the client\n * to find the best matching registered component.\n * structure_complete — server sends the final resolved component list.\n * structure_error — server reports a pipeline error.\n *\n * Usage:\n * const stream = new A_FrameChannelDsgStream({ path: `/api/v1/dsg/stream/${channelId}` });\n * stream.setRespondFn(async (requestId, data) => { ... });\n * // open SSE connection, then retrieve stream.resolvedComponents\n */\nexport class A_FrameChannelDsgStream extends A_FrameChannelStream {\n\n private _respondFn?: DsgRespondFn;\n private _resolvedComponents: A_FrameDynamicStructureResolvedComponent[] = [];\n\n // ── Configuration ──────────────────────────────────────────────────────\n\n /**\n * Provide the callback that sends a component-search response back to the\n * server via HTTP POST. Must be set before the SSE stream is opened.\n */\n setRespondFn(fn: DsgRespondFn): void {\n this._respondFn = fn;\n }\n\n // ── Result accessor ────────────────────────────────────────────────────\n\n /**\n * Contains the resolved components after `structure_complete` is received.\n * Empty until the server pushes the final structure.\n */\n get resolvedComponents(): ReadonlyArray<A_FrameDynamicStructureResolvedComponent> {\n return this._resolvedComponents;\n }\n\n // ── SSE event handlers ─────────────────────────────────────────────────\n\n /**\n * Server requests that the client search its local index for the best\n * component matching the provided pre-embedded vector.\n *\n * Event data: { requestId, vector, type, role, prompt }\n */\n @A_FrameChannelStream.onEvent('search_component')\n async onSearchComponent(\n @A_Inject(A_FrameChannelEvent) event: A_FrameChannelEvent,\n ) {\n if (!this._respondFn) return;\n\n const { requestId, vector } = event.data as {\n requestId: string;\n vector: number[];\n type: string;\n role: string;\n prompt: string;\n };\n\n const queryVector = new A_FrameVector(vector ?? []);\n const results = A_FrameIndex.search(queryVector, { topK: 1 });\n const top = results[0];\n\n await this._respondFn(requestId, {\n component: top?.record?.name ?? null,\n score: top?.score ?? 0,\n });\n }\n\n /**\n * Server pushes the final resolved component list.\n *\n * Event data: { components, prompt }\n */\n @A_FrameChannelStream.onEvent('structure_complete')\n async onStructureComplete(\n @A_Inject(A_FrameChannelEvent) event: A_FrameChannelEvent,\n ) {\n const { components } = event.data as {\n components: A_FrameDynamicStructureResolvedComponent[];\n prompt: string;\n };\n this._resolvedComponents = Array.isArray(components) ? components : [];\n }\n\n /**\n * Server reports a generation error.\n */\n @A_FrameChannelStream.onEvent('structure_error')\n async onStructureError(\n @A_Inject(A_FrameChannelEvent) event: A_FrameChannelEvent,\n ) {\n const { message } = (event.data ?? {}) as { message?: string };\n\n console.error('[A_FrameChannelDsgStream] Server reported structure error:', message ?? 'unknown');\n }\n}\n","\nexport const A_FrameDynamicContentFeatures = {\n Generate: '_A_FRAME_DYNAMIC_CONTENT_GENERATE',\n Patch: '_A_FRAME_DYNAMIC_CONTENT_PATCH',\n} as const;\n","import { A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameDynamicContentOperation<\n _InputParams = any,\n> extends A_Fragment {\n\n protected _meta: Map<string, any> = new Map();\n\n constructor(params: _InputParams = {} as _InputParams) {\n super({ name: 'a-frame-dynamic-content-operation-context' });\n this._meta.set('params', params);\n }\n\n get params(): _InputParams {\n return this._meta.get('params');\n }\n\n get(key: string) {\n return this._meta.get(key);\n }\n\n set(key: string, value: any) {\n this._meta.set(key, value);\n }\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\nexport class A_FrameDynamicContentError extends A_Error {\n\n static readonly GenerationFailed = 'GenerationFailed';\n static readonly PatchFailed = 'PatchFailed';\n static readonly InvalidPatch = 'InvalidPatch';\n static readonly PieceNotFound = 'PieceNotFound';\n}\n","import { A_Fragment } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport { A_FrameContentPatchOperation } from \"./A-FrameDynamicContent.types\";\nimport { A_FrameSegment } from \"../A-FrameSegment\";\n\n\nexport interface A_FrameDynamicContentIndex_SearchResult {\n segment: A_FrameSegment;\n score: number;\n}\n\n\nexport class A_FrameDynamicContentIndex extends A_Fragment {\n\n /** Maximum segments forwarded to the server in a single patch request. */\n static readonly PATCH_PIECE_LIMIT = 5;\n\n /** Ordered list of segment IDs — defines the canonical reading order. */\n private _order: string[] = [];\n\n /** O(1) lookup by id. */\n private _map: Map<string, A_FrameSegment> = new Map();\n\n // ── Accessors ─────────────────────────────────────────────────────────────\n\n get count(): number {\n return this._order.length;\n }\n\n get size(): number {\n return this._order.length;\n }\n\n // ── Basic mutation ────────────────────────────────────────────────────────\n\n /** Append one or more segments to the end. */\n add(...segments: A_FrameSegment[]): void {\n segments.forEach(seg => {\n this._map.set(seg.id as string, seg);\n if (!this._order.includes(seg.id as string)) {\n this._order.push(seg.id as string);\n }\n });\n }\n\n /** Replace the content of an existing segment in-place (position unchanged). */\n update(segment: A_FrameSegment): void {\n this._map.set(segment.id, segment);\n if (!this._order.includes(segment.id)) {\n this._order.push(segment.id);\n }\n }\n\n /** Remove a segment by id. */\n remove(id: string): void {\n this._map.delete(id);\n const idx = this._order.indexOf(id);\n if (idx !== -1) this._order.splice(idx, 1);\n }\n\n /** Remove all segments. */\n clear(): void {\n this._map.clear();\n this._order = [];\n }\n\n // ── Positional insertion ──────────────────────────────────────────────────\n\n /** Insert `segment` immediately before the segment with `targetId`. */\n insertBefore(targetId: string, segment: A_FrameSegment): void {\n this._map.set(segment.id, segment);\n const targetIdx = this._order.indexOf(targetId);\n if (targetIdx === -1) {\n this._order.push(segment.id);\n } else {\n this._order.splice(targetIdx, 0, segment.id);\n }\n }\n\n /** Insert `segment` immediately after the segment with `targetId`. */\n insertAfter(targetId: string, segment: A_FrameSegment): void {\n this._map.set(segment.id, segment);\n const targetIdx = this._order.indexOf(targetId);\n if (targetIdx === -1) {\n this._order.push(segment.id);\n } else {\n this._order.splice(targetIdx + 1, 0, segment.id);\n }\n }\n\n /** Swap the content of `targetId` with `segment`, keeping the same position. */\n replace(targetId: string, segment: A_FrameSegment): void {\n const pos = this._order.indexOf(targetId);\n if (pos === -1) return;\n this._map.delete(targetId);\n this._map.set(segment.id, segment);\n this._order[pos] = segment.id;\n }\n\n // ── Position management ────────────────────────────────────────────────────\n\n /** Move the segment with `id` to absolute zero-based `newPosition`. */\n moveTo(id: string, newPosition: number): void {\n const from = this._order.indexOf(id);\n if (from === -1) return;\n this._order.splice(from, 1);\n const clipped = Math.max(0, Math.min(newPosition, this._order.length));\n this._order.splice(clipped, 0, id);\n }\n\n /** Move `id` to directly before `targetId`. */\n moveBefore(id: string, targetId: string): void {\n const from = this._order.indexOf(id);\n if (from === -1) return;\n this._order.splice(from, 1);\n const to = this._order.indexOf(targetId);\n this._order.splice(to === -1 ? 0 : to, 0, id);\n }\n\n /** Move `id` to directly after `targetId`. */\n moveAfter(id: string, targetId: string): void {\n const from = this._order.indexOf(id);\n if (from === -1) return;\n this._order.splice(from, 1);\n const to = this._order.indexOf(targetId);\n this._order.splice(to === -1 ? this._order.length : to + 1, 0, id);\n }\n\n // ── Patch operation dispatch ──────────────────────────────────────────────\n\n /**\n * Apply a single `A_FrameContentPatchOperation` to the index.\n * For `add` and `replace` the caller must supply the resolved `segment`.\n * For `remove` only the `op` is needed.\n */\n applyOperation(op: A_FrameContentPatchOperation, segment?: A_FrameSegment): void {\n switch (op.action) {\n case 'remove': {\n if (op.targetId) this.remove(op.targetId);\n break;\n }\n case 'replace': {\n if (op.targetId && segment) this.replace(op.targetId, segment);\n break;\n }\n case 'add': {\n if (!segment) break;\n if (!op.targetId || op.position === 'append') {\n this.add(segment);\n } else if (op.position === 'before') {\n this.insertBefore(op.targetId, segment);\n } else {\n // 'after' is the default\n this.insertAfter(op.targetId, segment);\n }\n break;\n }\n }\n }\n\n // ── Lookup ────────────────────────────────────────────────────────────────\n\n get(id: string): A_FrameSegment | undefined {\n return this._map.get(id);\n }\n\n /** Returns all segments in their current canonical order. */\n list(): A_FrameSegment[] {\n return this._order\n .map(id => this._map.get(id))\n .filter((s): s is A_FrameSegment => s !== undefined);\n }\n\n // ── Search ────────────────────────────────────────────────────────────────\n\n /**\n * Rank all embedded segments by cosine similarity to the query vector.\n */\n search(\n vector: A_FrameVector,\n topK: number = A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT,\n ): A_FrameDynamicContentIndex_SearchResult[] {\n const queryVec = vector.normalize();\n\n return this.list()\n .filter(s => s.isEmbed && s.vector)\n .map(s => ({\n segment: s,\n score: queryVec.dot(s.vector!.normalize()),\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, topK);\n }\n\n /**\n * Rank segments by how many instruction keywords appear in their content.\n * Words shorter than 4 characters are ignored.\n */\n searchByKeywords(\n instruction: string,\n topK: number = A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT,\n ): A_FrameDynamicContentIndex_SearchResult[] {\n const keywords = instruction\n .toLowerCase()\n .split(/\\W+/)\n .filter(w => w.length > 3);\n\n if (keywords.length === 0) return [];\n\n return this.list()\n .map(segment => {\n const lower = segment.content.toLowerCase();\n const score = keywords.reduce(\n (acc, kw) => acc + (lower.includes(kw) ? 1 : 0),\n 0,\n );\n return { segment, score };\n })\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, topK);\n }\n\n /**\n * Select at most `limit` segments most relevant to a patch instruction.\n *\n * Priority:\n * 1. Vector search — when `vector` is provided and segments carry embeddings.\n * 2. Keyword search — fallback when embeddings are absent or vector is null.\n * 3. Identity — first N segments when neither search finds candidates.\n */\n selectForPatch(\n vector: A_FrameVector | null,\n instruction: string,\n limit: number = A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT,\n ): A_FrameSegment[] {\n const all = this.list();\n if (all.length <= limit) return all;\n\n // 1. Vector search\n if (vector) {\n const hasEmbedded = all.some(s => s.isEmbed);\n if (hasEmbedded) {\n const results = this.search(vector, limit);\n if (results.length > 0) return results.map(r => r.segment);\n }\n }\n\n // 2. Keyword fallback\n const kwResults = this.searchByKeywords(instruction, limit);\n if (kwResults.length > 0) return kwResults.map(r => r.segment);\n\n // 3. Identity\n return all.slice(0, limit);\n }\n\n // ── Similarity helpers ────────────────────────────────────────────────────\n\n cosineSimilarity(a: A_FrameVector, b?: A_FrameVector): number {\n if (!b) return 0;\n const dot = a.dot(b);\n const mag = a.magnitude() * b.magnitude();\n return mag === 0 ? 0 : dot / mag;\n }\n}\n","import { A_FrameSegment } from \"./A-FrameSegment.entity\";\n\n\nexport const A_FRAME_DEFAULT_SEGMENT_KEY = 'default';\n\n\nexport const A_FrameSegmentFeatures = {\n Load: '_A_FRAME_SEGMENT_LOAD',\n Save: '_A_FRAME_SEGMENT_SAVE',\n Embed: '_A_FRAME_SEGMENT_EMBED',\n Destroy: '_A_FRAME_SEGMENT_DESTROY',\n} as const;","import { A_Context, A_Entity, A_FormatterHelper, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport {\n A_FrameSegment_Init,\n A_FrameSegment_Serialized,\n A_FrameSegment_Record,\n A_FrameSegment_EmbeddingMeta,\n} from \"./A-FrameSegment.types\";\nimport { A_FrameHashHelper } from \"@adaas/a-frame/helpers/Hash.helper\";\nimport { A_FrameSegmentFeatures } from \"./A-FrameSegment.constants\";\n\n\nexport class A_FrameSegment extends A_Entity<A_FrameSegment_Init, A_FrameSegment_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n protected _content!: string;\n protected _hash!: string;\n protected _vector?: A_FrameVector;\n protected _embeddedAt?: string;\n protected _model?: string;\n protected _credentialId?: string;\n protected _aFrameVersion?: string;\n protected _aFrameServerVersion?: string;\n\n\n // ─── Getters ──────────────────────────────────────────────────────────────\n\n get id(): string {\n return this.aseid.id;\n }\n\n get content(): string {\n return this._content;\n }\n\n get hash(): string {\n return this._hash;\n }\n\n get vector(): A_FrameVector | undefined {\n return this._vector;\n }\n\n get embedding(): Float32Array | null {\n return this._vector?.values ?? null;\n }\n\n //-----------------------------------------------------------------------------------------------------\n //--------------------------------------- Computed properties -----------------------------------------\n //-----------------------------------------------------------------------------------------------------\n get aFrameServerVersion(): string | undefined {\n return this._aFrameServerVersion;\n }\n\n get aFrameVersion(): string | undefined {\n return this._aFrameVersion;\n }\n\n get isEmbed(): boolean {\n return this._vector !== undefined;\n }\n /**\n * Saves Segment to storage. The actual implementation of saving is handled by the A_FrameSegmentFeatures.Save feature, which can be implemented by the environment to persist the definition to a database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n save(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameSegmentFeatures.Save, scope);\n }\n /**\n * Deletes the namespace from storage. The actual implementation of deletion is handled by the A_FrameSegmentFeatures.Destroy feature, which can be implemented by the environment to remove the namespace from the database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n destroy(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameSegmentFeatures.Destroy, scope);\n }\n /**\n * Loads the namespace from storage. The actual implementation of loading is handled by the A_FrameSegmentFeatures.Load feature, which can be implemented by the environment to retrieve the namespace from the database, file system, or other storage mechanism and populate the entity's properties accordingly.\n * \n * @param scope \n * @returns \n */\n async load(scope?: A_Scope): Promise<void> {\n return this.call(A_FrameSegmentFeatures.Load, scope);\n }\n /**\n * Updates the definition's properties. This can be used to modify the source code, description, metadata, or namespace of the definition. After updating, you may want to call `embed()` again to refresh the embedding based on the new content.\n * \n * @param updates \n */\n update(updates: Partial<Pick<A_FrameSegment, 'content'>>): void {\n if (updates.content) this._content = updates.content;\n }\n /**\n * Generates an embedding vector for the namespace using the A_FrameSegmentFeatures.Embed feature. This typically involves sending the namespace's content (name + description) to an embedding model and storing the resulting vector in the entity. Once embedded, the namespace can be searched using its vector representation.\n * \n * @param scope \n * @returns \n */\n embed(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameSegmentFeatures.Embed, scope);\n }\n\n // ─── A_Entity lifecycle ───────────────────────────────────────────────────\n\n fromNew(init: A_FrameSegment_Init): void {\n super.fromNew(init);\n\n this._content = init.content;\n\n const hashSource = this._content;\n\n this._hash = A_FrameHashHelper.fnv1a(hashSource);\n }\n\n fromJSON(serialized: A_FrameSegment_Serialized): void {\n this._content = serialized.content;\n this._hash = serialized.hash;\n this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : undefined;\n this._embeddedAt = serialized.embeddedAt;\n this._model = serialized.model;\n this._credentialId = serialized.credentialId;\n this._aFrameVersion = serialized.aFrameVersion;\n this._aFrameServerVersion = serialized.aFrameServerVersion;\n }\n\n\n\n toJSON(): A_FrameSegment_Serialized {\n return {\n ...super.toJSON(),\n hash: this._hash,\n content: this._content,\n embedding: this._vector?.values,\n embeddedAt: this._embeddedAt ?? new Date().toISOString(),\n model: this._model,\n credentialId: this._credentialId,\n aFrameVersion: this._aFrameVersion,\n aFrameServerVersion: this._aFrameServerVersion,\n };\n }\n\n\n // ─── Embedding hydration ──────────────────────────────────────────────────\n\n hydrateFromRecord(record: A_FrameSegment_Record): void {\n if (record.hash !== this._hash) {\n throw new Error(\n `A_FrameSegment.hydrateFromRecord: hash mismatch for \"${this._content}\" ` +\n `(expected ${this._hash}, got ${record.hash})`\n );\n }\n this._vector = new A_FrameVector(record.embedding);\n this._embeddedAt = record.embeddedAt;\n }\n\n /**\n * Populate the embedding vector directly from a raw `Float32Array`.\n * Use this when the vector is obtained externally (e.g. from a server\n * response) without going through the full `embed()` feature pipeline.\n */\n hydrateFromEmbedding(embedding: Float32Array): void {\n this._vector = new A_FrameVector(embedding);\n }\n\n /**\n * Build the text string sent to the embedding model.\n * Uses content so the vector captures semantic intent.\n */\n toString(): string {\n const parts: string[] = [`// content: ${this._content}`];\n return parts.join('\\n');\n }\n}\n\n","import { A_Context, A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport {\n A_FrameContentPatchResponse,\n A_FrameDynamicContent_Init,\n A_FrameDynamicContent_Serialized,\n} from \"./A-FrameDynamicContent.types\";\nimport { A_FrameDynamicContentFeatures } from \"./A-FrameDynamicContent.constants\";\nimport { A_FrameDynamicContentOperation } from \"./A-FrameDynamicContentOperation.context\";\nimport { A_FrameDynamicContentError } from \"./A-FrameDynamicContent.error\";\nimport { A_FrameDynamicPatch } from \"../A-FrameDynamicPatch/A-FrameDynamicPatch.entity\";\nimport { A_FrameDynamicContentIndex } from \"./A-FrameDynamicContentIndex.context\";\nimport { A_FrameSegment } from \"../A-FrameSegment\";\n\n\nexport class A_FrameDynamicContent extends A_Entity<A_FrameDynamicContent_Init, A_FrameDynamicContent_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n // ── Identity ─────────────────────────────────────────────────────────────\n prompt!: string;\n createdAt!: number;\n\n // ── Config ───────────────────────────────────────────────────────────────\n private model!: string;\n\n // ── State ────────────────────────────────────────────────────────────────\n private _history!: A_FrameDynamicPatch[];\n private _version!: number;\n private _patchPieceLimit!: number;\n\n // ── Initialisation ───────────────────────────────────────────────────────\n\n /**\n * The scope of the current Content stores all related data to it \n */\n protected _scope!: A_Scope\n\n /**\n * \n */\n get scope(): A_Scope {\n if (!this._scope) {\n this._scope = A_Context.allocate(this, new A_Scope({ name: `${this.aseid.id}-scope` }));\n }\n\n return this._scope;\n }\n\n get index(): A_FrameDynamicContentIndex {\n const index = this.scope.resolve(A_FrameDynamicContentIndex)!;\n return index;\n }\n\n fromNew(options: A_FrameDynamicContent_Init) {\n\n super.fromNew(options);\n\n const index = new A_FrameDynamicContentIndex({ name: `${this.aseid.id}` });\n this.scope.register(index);\n\n this.createdAt = Date.now();\n\n this.prompt = options.prompt;\n this.model = options.options?.model || 'default-model';\n this._patchPieceLimit = options.options?.patchPieceLimit || A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT;\n\n this._history = [];\n this._version = 0;\n }\n\n // ── Accessors ────────────────────────────────────────────────────────────\n\n /** Ordered list of content pieces (output of the last generate or patch). */\n get segments(): ReadonlyArray<A_FrameSegment> {\n return this.index.list();\n }\n\n /** Full content reconstructed from all segments in index order. */\n get content(): string {\n return this.index.list()\n .map(s => s.content)\n .join('\\n');\n }\n\n /** Alias for `content` — kept for backward compatibility. */\n get text(): string {\n return this.content;\n }\n\n /** Immutable patch history. */\n get history(): ReadonlyArray<A_FrameDynamicPatch> {\n return this._history;\n }\n\n /** Current content version (increments with each patch). */\n get version(): number {\n return this._version;\n }\n\n /** The AI model name to use for generation / patching. */\n get modelName(): string {\n return this.model;\n }\n\n // ── Main pipeline ─────────────────────────────────────────────────────────\n\n /**\n * Generate content from the entity's prompt.\n * Populates `pieces` and creates the first history entry.\n */\n async generate(): Promise<void> {\n const operation = new A_FrameDynamicContentOperation();\n\n if (!this.scope.isInheritedFrom(A_Context.scope(this)))\n this.scope.inherit(A_Context.scope(this));\n\n const executionScope = new A_Scope({\n name: 'a-frame-dynamic-content-generate',\n fragments: [operation],\n }).inherit(this.scope);\n\n try {\n await this.call(A_FrameDynamicContentFeatures.Generate, executionScope);\n executionScope.destroy();\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameDynamicContentError({\n title: A_FrameDynamicContentError.GenerationFailed,\n description: `Failed to generate content: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n /**\n * Apply a natural-language patch instruction to the current pieces.\n * The server identifies which pieces to add, replace, or remove using\n * semantic search over piece embeddings.\n */\n async patch(instruction: string): Promise<void> {\n if (!this.scope.isInheritedFrom(A_Context.scope(this)))\n this.scope.inherit(A_Context.scope(this));\n\n const executionScope = new A_Scope({\n name: 'a-frame-dynamic-content-patch',\n }).inherit(this.scope);\n\n const inputSegment = new A_FrameSegment({\n content: instruction,\n });\n\n executionScope.register(inputSegment);\n\n await inputSegment.embed();\n\n const targetSegments = this.index.selectForPatch(inputSegment.vector ?? null, instruction, this._patchPieceLimit);\n\n const operation = new A_FrameDynamicContentOperation({\n instruction,\n segments: targetSegments\n });\n\n executionScope.register(operation);\n\n try {\n\n await this.call(A_FrameDynamicContentFeatures.Patch, executionScope);\n\n executionScope.destroy();\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameDynamicContentError({\n title: A_FrameDynamicContentError.PatchFailed,\n description: `Failed to patch content: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n // ── Hydration ─────────────────────────────────────────────────────────────\n\n /**\n * Populate index from the segments created by the channel after a generate response.\n * Creates the first history entry.\n */\n hydrateFromGeneration(\n segments: A_FrameSegment[],\n meta: { model: string; serverVersion: string },\n ): void {\n\n segments.forEach(s => this.index.add(s));\n\n this._history.push(new A_FrameDynamicPatch({\n version: this._version,\n timestamp: Date.now(),\n reason: `Generated for: \"${this.prompt}\"`,\n encoded: Buffer.from(JSON.stringify(this.index.list())).toString('base64'),\n delta: this.index.size,\n }));\n }\n\n /**\n * Apply a patch diff returned by the server to the current piece list.\n * Increments the version and records a history entry.\n */\n hydrateFromPatch(\n patchResult: A_FrameContentPatchResponse,\n meta: { model: string; serverVersion: string },\n ): void {\n\n const prevCount = this.index.size;\n\n for (const op of patchResult.operations) {\n let segment: A_FrameSegment | undefined;\n if (op.segment) {\n segment = new A_FrameSegment({ content: op.segment.content });\n if (op.segment.embedding?.length) {\n segment.hydrateFromEmbedding(new Float32Array(op.segment.embedding));\n }\n }\n this.index.applyOperation(op, segment);\n }\n\n this._version++;\n\n this._history.push(new A_FrameDynamicPatch({\n version: this._version,\n timestamp: Date.now(),\n reason: patchResult.patchSummary,\n encoded: Buffer.from(JSON.stringify(this.index.list())).toString('base64'),\n delta: this.index.size - prevCount,\n }));\n }\n\n // ── Serialisation ──────────────────────────────────────────────────────────\n\n toJSON(): A_FrameDynamicContent_Serialized {\n return {\n ...super.toJSON(),\n prompt: this.prompt,\n metadata: {\n model: this.model,\n createdAt: this.createdAt,\n },\n history: this._history.map(item => item.toJSON()),\n };\n }\n\n}\n\n","import { A_Caller, A_Component, A_Context, A_Feature, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { IA_Frame_Channel, A_Frame_EmbedResponse, A_Frame_GenerateResponse, A_Frame_CredentialResponse } from \"./A-FrameChannel.types\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameFeatures } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelRequest } from \"./A-FrameChannelRequest.context\";\nimport { A_FrameChannelError } from \"./A-FrameChannel.error\";\nimport { A_FrameDefinition } from \"../A-FrameDefinition\";\nimport { A_FrameDefinitionFeatures } from \"../A-FrameDefinition/A-FrameDefinition.constants\";\nimport { A_FrameNamespaceFeatures } from \"../A-FrameNamespace/A-FrameNamespace.constants\";\nimport { A_FrameNamespace } from \"../A-FrameNamespace\";\nimport { A_FrameDynamicStructure } from \"../A-FrameDynamicStructure/A-FrameDynamicStructure.entity\";\nimport { A_FrameDynamicSession } from \"../A-FrameDynamicSession/A-FrameDynamicSession.entity\";\nimport { A_FrameDynamicStructureOperation } from \"../A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context\";\nimport { A_FrameDynamicStructureFeatures } from \"../A-FrameDynamicStructure/A-FrameDynamicStructure.constants\";\nimport { A_FrameChannelSocket } from \"./A-FrameChannelSocket.entity\";\nimport { A_FrameChannelDsgStream } from \"./A-FrameChannelDsgStream.entity\";\nimport { A_FrameDynamicContent } from \"../A-FrameDynamicContent/A-FrameDynamicContent.entity\";\nimport { A_FrameDynamicContentOperation } from \"../A-FrameDynamicContent/A-FrameDynamicContentOperation.context\";\nimport { A_FrameDynamicContentFeatures } from \"../A-FrameDynamicContent/A-FrameDynamicContent.constants\";\nimport { A_FrameContentGenerateResponse, A_FrameContentPatchResponse } from \"../A-FrameDynamicContent/A-FrameDynamicContent.types\";\nimport { A_FrameSegment, A_FrameSegmentFeatures } from \"../A-FrameSegment\";\n\n/**\n * A_FrameChannel — Node.js environment\n *\n * HTTP client for the embed-server API.\n * Configuration is resolved from process.env via A_FrameEnv injected at\n * feature execution time — no state is stored on the component itself.\n *\n * Uses the global fetch (available in Node 18+; no extra dependency needed).\n */\nexport class A_FrameChannel extends A_Component implements IA_Frame_Channel {\n\n async generate(prompt: string): Promise<A_FrameChannelRequest<A_Frame_GenerateResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_GenerateResponse>('POST', '/api/v1/completions', { prompt, max_tokens: 512 });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.generate',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to generate completion: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async embed(input: string | string[]): Promise<A_FrameChannelRequest<A_Frame_EmbedResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/embeddings', { input });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embed',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed input: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async getCredentials(): Promise<A_FrameChannelRequest<A_Frame_CredentialResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_CredentialResponse>('GET', '/api/v1/credentials/me');\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.getCredentials',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to get credentials: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async ping(): Promise<A_FrameChannelRequest<boolean>> {\n const request = new A_FrameChannelRequest<boolean>('GET', '/health');\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.ping',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n\n } catch {\n executionScope.destroy();\n\n return request;\n }\n }\n\n\n\n // ─── Feature implementation ───────────────────────────────────────────────\n @A_Feature.Extend({\n name: A_FrameDefinitionFeatures.Embed,\n scope: [A_FrameDefinition],\n })\n async embedDefinition(\n @A_Inject(A_Caller) definition: A_FrameDefinition,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/definition/embed', {\n definition: definition.toJSON(),\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embedDefinition',\n fragments: [request]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;\n executionScope.destroy();\n\n const response = request.response!;\n if (!response.data || !response.data[0] || !response.data[0].embedding) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.InvalidRequest,\n description: `Invalid embedding response for definition \"${definition.name}\"`,\n });\n }\n\n const vector = new Float32Array(response.data[0].embedding);\n\n definition.hydrateFromEmbedding(vector, {\n model: response.model,\n dimensions: response.meta.dimensions,\n inputCount: response.meta.input_count,\n aFrameServerVersion: response.meta.server_version!,\n aFrameVersion: env.A_FRAME_VERSION!,\n credentialId: response.meta.credential_id!,\n date: response.date,\n aFrameMeta: response.aFrameMeta,\n });\n } catch (err) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed definition \"${definition.name}\": ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n\n }\n\n\n\n @A_Feature.Extend({\n name: A_FrameNamespaceFeatures.Embed,\n scope: [A_FrameNamespace],\n })\n async embedNamespace(\n @A_Inject(A_Caller) namespace: A_FrameNamespace,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/namespace/embed', {\n namespace: namespace.toJSON(),\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embedNamespace',\n fragments: [request]\n })\n .inherit(A_Context.scope(this));\n\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;\n executionScope.destroy();\n\n const response = request.response!;\n if (!response.data || !response.data[0] || !response.data[0].embedding) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.InvalidRequest,\n description: `Invalid embedding response for namespace \"${namespace.name}\"`,\n });\n }\n\n const vector = new Float32Array(response.data[0].embedding);\n\n namespace.hydrateFromEmbedding(vector, {\n model: response.model,\n dimensions: response.meta.dimensions,\n inputCount: response.meta.input_count,\n aFrameServerVersion: response.meta.server_version!,\n aFrameVersion: env.A_FRAME_VERSION!,\n credentialId: response.meta.credential_id!,\n date: response.date,\n });\n } catch (err) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed namespace \"${namespace.name}\": ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n\n }\n\n\n @A_Feature.Extend({\n name: A_FrameSegmentFeatures.Embed,\n scope: [A_FrameSegment],\n })\n async embedSegment(\n @A_Inject(A_Caller) segment: A_FrameSegment,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/segment/embed', {\n segment: segment.toJSON(),\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embedNamespace',\n fragments: [request]\n })\n .inherit(A_Context.scope(this));\n\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;\n executionScope.destroy();\n\n const response = request.response!;\n if (!response.data || !response.data[0] || !response.data[0].embedding) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.InvalidRequest,\n description: `Error during embed a segment: ${segment.content}`\n });\n }\n\n const vector = new Float32Array(response.data[0].embedding);\n\n segment.fromJSON({\n aseid: segment.aseid.toString(),\n content: segment.content,\n hash: segment.hash,\n embedding: vector,\n model: response.model,\n // dimensions: response.meta.dimensions,\n // inputCount: response.meta.input_count,\n aFrameServerVersion: response.meta.server_version!,\n aFrameVersion: env.A_FRAME_VERSION!,\n credentialId: response.meta.credential_id!,\n embeddedAt: response.date,\n });\n } catch (err) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed segment with content \"${segment.content}\": ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n\n }\n\n\n\n @A_Feature.Extend({\n name: A_FrameDynamicStructureFeatures.Generate,\n scope: [A_FrameDynamicStructure],\n })\n async generateDynamicStructure(\n @A_Inject(A_Caller) structure: A_FrameDynamicStructure,\n @A_Inject(A_FrameDynamicSession) session: A_FrameDynamicSession,\n @A_Inject(A_FrameDynamicStructureOperation) operation: A_FrameDynamicStructureOperation,\n ) {\n // ── Step 1: open an SSE channel on the server ──────────────────────\n const openRequest = new A_FrameChannelRequest<{ channelId: string }>(\n 'POST',\n '/api/v1/dsg/stream/open',\n );\n\n const openScope = new A_Scope({\n name: 'A_FrameChannel.generateDynamicStructure:open',\n fragments: [openRequest],\n }).inherit(A_Context.scope(this));\n\n await this.call(A_FrameFeatures.Request, openScope);\n openScope.destroy();\n\n const { channelId } = openRequest.response!;\n\n // ── Step 2: create DSG stream entity ──────────────────────────────\n const channel = this;\n const dsgStream = new A_FrameChannelDsgStream({\n method: 'GET',\n path: `/api/v1/dsg/stream/${channelId}`,\n });\n\n // Wire the respond callback so event handlers can push results back.\n dsgStream.setRespondFn(async (requestId, data) => {\n const respondRequest = new A_FrameChannelRequest(\n 'POST',\n '/api/v1/dsg/stream/respond',\n { requestId, data },\n );\n\n const respondScope = new A_Scope({\n name: 'A_FrameChannel.generateDynamicStructure:respond',\n fragments: [respondRequest],\n }).inherit(A_Context.scope(channel));\n\n await channel.call(A_FrameFeatures.Request, respondScope);\n respondScope.destroy();\n });\n\n // ── Step 3: start SSE connection (non-awaited) ────────────────────\n const streamScope = new A_Scope({\n name: 'A_FrameChannel.generateDynamicStructure:stream',\n entities: [dsgStream],\n }).inherit(A_Context.scope(this));\n\n // This promise resolves when the server closes the SSE channel.\n const streamTask = this.call(A_FrameFeatures.Stream, streamScope);\n\n // ── Step 4: trigger server-side generation ────────────────────────\n const generateRequest = new A_FrameChannelRequest(\n 'POST',\n '/api/v1/dsg/structure/generate-stream',\n { channelId, prompt: structure.prompt },\n );\n\n const generateScope = new A_Scope({\n name: 'A_FrameChannel.generateDynamicStructure:generate',\n fragments: [generateRequest],\n }).inherit(A_Context.scope(this));\n\n await this.call(A_FrameFeatures.Request, generateScope);\n generateScope.destroy();\n\n // ── Step 5: wait for the SSE pipeline to complete ─────────────────\n await streamTask;\n streamScope.destroy();\n\n // ── Step 6: hydrate structure from resolved components ────────────\n structure.hydrateFromResolved(\n dsgStream.resolvedComponents as any[],\n { model: 'sse-stream', serverVersion: '0.0.0' },\n );\n }\n\n\n // /**\n // * Open a bidirectional WebSocket connection to the server.\n // *\n // * The method resolves once the connection is closed (server close frame or\n // * transport end). While it is pending, call `socket.send(event)` to push\n // * frames to the server. Incoming frames are dispatched automatically to\n // * any `@A_FrameChannelSocket.onEvent()` handlers registered on `socket`.\n // *\n // * @param socket - Pre-configured socket entity (optionally a subclass with\n // * event handlers pre-registered via `@onEvent` decorators).\n // */\n // async connect(socket: A_FrameChannelSocket): Promise<void> {\n // const executionScope = new A_Scope({\n // name: 'A_FrameChannel.connect',\n // entities: [socket],\n // }).inherit(A_Context.scope(this));\n\n // try {\n // await this.call(A_FrameFeatures.Socket, executionScope);\n // executionScope.destroy();\n // } catch (err) {\n // executionScope.destroy();\n // throw new A_FrameChannelError({\n // title: A_FrameChannelError.RequestFailed,\n // description: `WebSocket connection to ${socket.path} failed: ${err instanceof Error ? err.message : String(err)}`,\n // });\n // }\n // }\n\n\n // ─── Dynamic Content ──────────────────────────────────────────────────────\n\n /**\n * Feature implementation for A_FrameDynamicContent.generate().\n *\n * Calls POST /api/v1/content/generate on the server and hydrates the\n * content entity from the returned piece list.\n */\n @A_Feature.Extend({\n name: A_FrameDynamicContentFeatures.Generate,\n scope: [A_FrameDynamicContent],\n })\n async generateDynamicContent(\n @A_Inject(A_Caller) content: A_FrameDynamicContent,\n @A_Inject(A_FrameDynamicContentOperation) operation: A_FrameDynamicContentOperation,\n ) {\n const request = new A_FrameChannelRequest<A_FrameContentGenerateResponse>(\n 'POST',\n '/api/v1/content/generate',\n { prompt: content.prompt, model: content.modelName },\n );\n\n const requestScope = new A_Scope({\n name: 'A_FrameChannel.generateDynamicContent',\n fragments: [request],\n }).inherit(A_Context.scope(this));\n\n await this.call(A_FrameFeatures.Request, requestScope);\n requestScope.destroy();\n\n const resp = request.response!;\n\n // Convert wire segments to proper A_FrameSegment domain objects.\n // The channel is the adapter layer — it never passes raw serialized\n // objects into the domain; it always constructs instances.\n const segments = (resp.segments ?? []).map(w => {\n const seg = new A_FrameSegment({ content: w.content });\n if (w.embedding?.length) {\n seg.hydrateFromEmbedding(new Float32Array(w.embedding));\n }\n return seg;\n });\n\n content.hydrateFromGeneration(segments, {\n model: resp.model,\n serverVersion: resp.meta?.server_version ?? '0.0.0',\n });\n }\n\n /**\n * Feature implementation for A_FrameDynamicContent.patch().\n *\n * Sends the current piece list and a patch instruction to the server,\n * then applies the returned operations to the content entity.\n */\n @A_Feature.Extend({\n name: A_FrameDynamicContentFeatures.Patch,\n scope: [A_FrameDynamicContent],\n })\n async patchDynamicContent(\n @A_Inject(A_Caller) content: A_FrameDynamicContent,\n @A_Inject(A_FrameDynamicContentOperation) operation: A_FrameDynamicContentOperation,\n ) {\n const { instruction, segments } = operation.params as { instruction: string; segments: A_FrameSegment[] };\n\n // Use short positional wire IDs (s0, s1, …) to maximise LLM reliability\n // when the model echoes them back as targetId values.\n // We keep a reverse map to translate back to the real ASEID ids.\n const wireIdToAseid = new Map<string, string>();\n const wireSegments = segments.map((s, idx) => {\n const wireId = `s${idx}`;\n wireIdToAseid.set(wireId, String(s.id));\n return {\n id: wireId,\n index: idx,\n text: s.content,\n vector: s.vector ? Array.from(s.vector.values) : undefined,\n };\n });\n\n const request = new A_FrameChannelRequest<A_FrameContentPatchResponse>(\n 'POST',\n '/api/v1/content/patch',\n {\n prompt: content.prompt,\n segments: wireSegments,\n instruction,\n model: content.modelName,\n },\n );\n\n const requestScope = new A_Scope({\n name: 'A_FrameChannel.patchDynamicContent',\n fragments: [request],\n }).inherit(A_Context.scope(this));\n\n await this.call(A_FrameFeatures.Request, requestScope);\n requestScope.destroy();\n\n const resp = request.response!;\n\n // Translate wire ids (s0, s1, …) in targetId back to real ASEID ids\n // so that applyOperation can look them up in the index.\n const translatedOperations = resp.operations.map(op => ({\n ...op,\n targetId: op.targetId\n ? (wireIdToAseid.get(op.targetId) ?? op.targetId)\n : op.targetId,\n }));\n\n content.hydrateFromPatch(\n { ...resp, operations: translatedOperations },\n {\n model: resp.model,\n serverVersion: resp.meta?.server_version ?? '0.0.0',\n },\n );\n }\n\n}\n\n\n\n\n","import { A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_FrameFeatures } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelRequest } from \"./A-FrameChannelRequest.context\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameChannelError } from \"./A-FrameChannel.error\";\nimport { A_FrameChannel } from \"./A-FrameChannel.component\";\nimport * as http from \"http\";\nimport * as https from \"https\";\n// import * as crypto from \"crypto\";\n// import * as net from \"net\";\n// import * as tls from \"tls\";\nimport { A_FrameChannelStream } from \"./A-FrameChannelStream.entity\";\nimport { A_FrameChannelEvent } from \"./A-FrameChannelEvent.context\";\n\nexport class A_FrameNodeChannel extends A_FrameChannel {\n\n @A_Feature.Extend({\n name: A_FrameFeatures.Request,\n scope: [A_FrameChannel],\n })\n async request(\n @A_Inject(A_FrameChannelRequest) context: A_FrameChannelRequest,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const url = `${env.A_FRAME_SERVER_URL}${context.path}`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n const payload = context.body !== undefined ? JSON.stringify(context.body) : undefined;\n\n const result = await new Promise<unknown>((resolve, reject) => {\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: context.method,\n headers: {\n ...(payload ? { \"Content-Type\": \"application/json\", \"Content-Length\": Buffer.byteLength(payload) } : {}),\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n },\n },\n (res) => {\n const chunks: Buffer[] = [];\n\n res.on(\"data\", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));\n res.on(\"end\", () => {\n const raw = Buffer.concat(chunks).toString(\"utf8\");\n\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Request to ${context.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n if (!raw) {\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url} (empty)`);\n resolve(undefined);\n return;\n }\n\n try {\n const parsed = JSON.parse(raw);\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url}`);\n resolve(parsed);\n } catch {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url} (invalid JSON)`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Invalid JSON response from ${context.path}`,\n }),\n );\n }\n });\n },\n );\n\n req.setTimeout(env.A_FRAME_REQUEST_TIMEOUT, () => {\n console.error(`[A-FrameChannel] TIMEOUT ${context.method} ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Request to ${context.path} timed out after ${env.A_FRAME_REQUEST_TIMEOUT}ms`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n if (payload) req.write(payload);\n req.end();\n });\n\n context.complete(result);\n\n }\n\n\n\n\n @A_Feature.Extend({\n name: A_FrameFeatures.Stream,\n scope: [A_FrameChannel],\n })\n async stream(\n @A_Inject(A_FrameChannelStream) stream: A_FrameChannelStream,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const url = `${env.A_FRAME_SERVER_URL}${stream.path}`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n const payload = stream.body !== undefined ? JSON.stringify(stream.body) : undefined;\n\n await new Promise<void>((resolve, reject) => {\n\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: stream.method,\n headers: {\n ...(payload ? { \"Content-Type\": \"application/json\" } : {}),\n Accept: \"text/event-stream\",\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n ...(payload ? { \"Content-Length\": Buffer.byteLength(payload) } : {}),\n },\n },\n (res) => {\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${stream.method} ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Stream request to ${stream.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n let buffer = '';\n\n res.on(\"data\", async (chunk) => {\n buffer += Buffer.isBuffer(chunk) ? chunk.toString(\"utf8\") : String(chunk);\n const lines = buffer.split('\\n');\n // Keep the last incomplete line in the buffer for the next chunk\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n // SSE spec: only lines prefixed with \"data: \" carry event payloads\n if (!line.startsWith('data: ')) continue;\n\n const data = line.slice(6).trim();\n\n // SSE end-of-stream sentinel — no payload to process\n if (data === '[DONE]') continue;\n\n // ──────────────────────────────────────────────────\n // SERVER ACTION DISPATCH\n // Each parsed event is expected to carry a `type`\n // field that identifies the action sent by the server.\n //\n // Add new cases here as the server-side action set\n // grows. The raw event is also pushed to `events` so\n // callers receive the full history via context.complete.\n //\n // Example shape: { type: 'some_action', data: { ... } }\n // ──────────────────────────────────────────────────\n try {\n const event = JSON.parse(data);\n\n await stream.propagate(event.type, event.data);\n } catch {\n console.error(`[A-FrameChannel] Invalid SSE payload from ${stream.path}: ${data}`);\n }\n }\n });\n\n res.on(\"end\", () => {\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${stream.method} ${url} (stream complete)`);\n resolve();\n });\n\n res.on(\"error\", (err) => reject(err));\n },\n );\n\n req.setTimeout(300_000, () => {\n console.error(`[A-FrameChannel] TIMEOUT ${stream.method} ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Stream request to ${stream.path} timed out after 300 seconds`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n if (payload) req.write(payload);\n req.end();\n });\n\n stream.complete();\n }\n\n\n @A_Feature.Extend({\n name: A_FrameFeatures.Send,\n scope: [A_FrameChannel],\n })\n async send(\n @A_Inject(A_FrameChannelStream) stream: A_FrameChannelStream,\n @A_Inject(A_FrameChannelEvent) event: A_FrameChannelEvent,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n // SSE is server-to-client only; to push data back to the server\n // during an active stream session we make a separate HTTP POST to\n // a companion endpoint.\n //\n // Convention: same base path as the stream with \"/send\" appended —\n // adjust to match your server-side routing.\n const url = `${env.A_FRAME_SERVER_URL}${stream.path}/send`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n\n // Always serialise as { type, data } so the server can dispatch\n // the same way it dispatches events back to the client.\n const payload = JSON.stringify({ type: event.name, data: event.data });\n\n await new Promise<void>((resolve, reject) => {\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n \"Content-Length\": Buffer.byteLength(payload),\n },\n },\n (res) => {\n // Drain the response so the socket can be freed/reused.\n res.resume();\n\n res.on(\"end\", () => {\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} POST ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Send event \"${event.name}\" to ${stream.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n console.log(`[A-FrameChannel] --> ${res.statusCode} POST ${url} (event: ${event.name})`);\n resolve();\n });\n },\n );\n\n req.setTimeout(15_000, () => {\n console.error(`[A-FrameChannel] TIMEOUT POST ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Send event \"${event.name}\" to ${stream.path} timed out after 15 seconds`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n req.write(payload);\n req.end();\n });\n }\n}\n\n// // ─── WebSocket feature ────────────────────────────────────────────────────\n\n// @A_Feature.Extend({\n// name: A_FrameFeatures.Socket,\n// scope: [A_FrameChannel],\n// })\n// async socket(\n// @A_Inject(A_FrameChannelSocket) socket: A_FrameChannelSocket,\n// @A_Inject(A_FrameEnv) env: A_FrameEnv,\n// ) {\n// const url = `${env.A_FRAME_SERVER_URL}${socket.path}`;\n// const parsedUrl = new URL(url);\n\n// // Both http→ws and https→wss are TLS-detected the same way\n// const isSecure =\n// parsedUrl.protocol === \"https:\" || parsedUrl.protocol === \"wss:\";\n\n// const hostname = parsedUrl.hostname;\n// const port = parsedUrl.port\n// ? parseInt(parsedUrl.port, 10)\n// : isSecure ? 443 : 80;\n// const wsPath = `${parsedUrl.pathname}${parsedUrl.search}`;\n// const hostHeader = parsedUrl.port ? `${hostname}:${parsedUrl.port}` : hostname;\n\n// // ── WebSocket opening handshake (RFC 6455 §4.1) ─────────────────────\n// // Generate a fresh 16-byte random key. The server must echo it back\n// // as SHA-1(\"key\" + magic) in Sec-WebSocket-Accept, which we verify to\n// // guard against accidental plain-HTTP responses being accepted as WS.\n// const wsKey = crypto.randomBytes(16).toString(\"base64\");\n// const expectedAccept = crypto\n// .createHash(\"sha1\")\n// .update(wsKey + \"258EAFA5-E914-47DA-95CA-C5AB0DC85B11\")\n// .digest(\"base64\");\n\n// await new Promise<void>((resolve, reject) => {\n// // Establish raw TCP (or TLS) transport without HTTP machinery\n// const rawSocket: net.Socket = isSecure\n// ? tls.connect({ host: hostname, port, servername: hostname })\n// : net.connect({ host: hostname, port });\n\n// let handshakeDone = false;\n// let frameBuffer = Buffer.alloc(0);\n\n// // ── Send the HTTP/1.1 Upgrade request once transport is ready ────\n// function sendHandshake() {\n// // If the caller provided a body, encode it in a custom header so\n// // it survives the GET-only WebSocket upgrade request.\n// const initHeader = socket.body !== undefined\n// ? [`X-A-Frame-Init: ${Buffer.from(JSON.stringify(socket.body)).toString(\"base64\")}`]\n// : [];\n\n// const lines = [\n// `GET ${wsPath} HTTP/1.1`,\n// `Host: ${hostHeader}`,\n// \"Upgrade: websocket\",\n// \"Connection: Upgrade\",\n// `Sec-WebSocket-Key: ${wsKey}`,\n// \"Sec-WebSocket-Version: 13\",\n// // Auth header — same Bearer token used by all other methods\n// `Authorization: Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n// ...initHeader,\n// \"\", // produces the mandatory blank CRLF line\n// \"\",\n// ];\n\n// rawSocket.write(lines.join(\"\\r\\n\"));\n// }\n\n// // For TLS, wait until the TLS handshake finishes before writing\n// if (isSecure) {\n// (rawSocket as tls.TLSSocket).once(\"secureConnect\", sendHandshake);\n// } else {\n// rawSocket.once(\"connect\", sendHandshake);\n// }\n\n// rawSocket.on(\"data\", async (chunk: Buffer) => {\n// frameBuffer = Buffer.concat([frameBuffer, chunk]);\n\n// // ── Phase 1: wait for the HTTP 101 response header block ─────\n// if (!handshakeDone) {\n// const headEnd = frameBuffer.indexOf(\"\\r\\n\\r\\n\");\n// if (headEnd === -1) return; // headers still arriving\n\n// const statusBlock = frameBuffer.slice(0, headEnd).toString(\"utf8\");\n// frameBuffer = frameBuffer.slice(headEnd + 4);\n\n// // Reject anything that isn't a 101 Switching Protocols\n// const statusLine = statusBlock.split(\"\\r\\n\")[0];\n// if (!statusLine.includes(\"101\")) {\n// rawSocket.destroy();\n// reject(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description: `WebSocket upgrade rejected: ${statusLine}`,\n// }),\n// );\n// return;\n// }\n\n// // ── Sec-WebSocket-Accept verification ────────────────────\n// // Confirms the server is a genuine WebSocket endpoint and not\n// // an HTTP proxy replaying our request unchanged.\n// const acceptMatch = statusBlock.match(/Sec-WebSocket-Accept:\\s*([^\\r\\n]+)/i);\n// if (!acceptMatch || acceptMatch[1].trim() !== expectedAccept) {\n// rawSocket.destroy();\n// reject(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description:\n// \"WebSocket handshake failed: invalid Sec-WebSocket-Accept — possible MITM or non-WS endpoint\",\n// }),\n// );\n// return;\n// }\n\n// handshakeDone = true;\n\n// // Attach the send capability now that the socket is open\n// socket.attachSendFn((data: string) => {\n// rawSocket.write(encodeWebSocketFrame(data));\n// });\n\n// console.log(`[A-FrameChannel] WS OPEN ${url}`);\n// }\n\n// // ── Phase 2: parse and dispatch complete WS frames ───────────\n// while (frameBuffer.length >= 2) {\n// const { frame, consumed } = tryParseWebSocketFrame(frameBuffer);\n// if (!frame || consumed === 0) break; // incomplete frame — wait for more data\n\n// frameBuffer = frameBuffer.slice(consumed);\n\n// switch (frame.opcode) {\n// case 0x8: {\n// // Close frame — echo it back and tear down gracefully\n// rawSocket.write(encodeWebSocketFrame(\"\", 0x8));\n// rawSocket.end();\n// socket.complete();\n// console.log(`[A-FrameChannel] WS CLOSE ${url}`);\n// resolve();\n// return;\n// }\n\n// case 0x9: {\n// // Ping — must reply with Pong carrying the same payload (RFC 6455 §5.5.2)\n// rawSocket.write(encodeWebSocketFrame(frame.payload.toString(\"utf8\"), 0xa));\n// break;\n// }\n\n// case 0x1:\n// case 0x2: {\n// // ──────────────────────────────────────────────────\n// // SERVER ACTION DISPATCH\n// // Each text/binary frame carries a JSON payload shaped\n// // as { type: string, data: any }.\n// //\n// // Add new cases in a subclass via:\n// // @A_FrameChannelSocket.onEvent('type_name')\n// // async onTypeName(@A_Inject(A_FrameChannelEvent) event) { ... }\n// // ──────────────────────────────────────────────────\n// const text = frame.payload.toString(\"utf8\");\n// try {\n// const event = JSON.parse(text);\n// await socket.propagate(event.type, event.data);\n// } catch {\n// console.error(\n// `[A-FrameChannel] Invalid WS payload from ${socket.path}: ${text}`,\n// );\n// }\n// break;\n// }\n// }\n// }\n// });\n\n// rawSocket.on(\"end\", () => {\n// socket.complete();\n// resolve();\n// });\n\n// rawSocket.on(\"error\", (err) => {\n// socket.fail(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description: `WebSocket error on ${socket.path}: ${err.message}`,\n// }),\n// );\n// reject(err);\n// });\n\n// // 60 s idle timeout — same as stream; adjust per use-case\n// rawSocket.setTimeout(60_000, () => {\n// console.error(`[A-FrameChannel] WS TIMEOUT ${url}`);\n// rawSocket.destroy(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.Timeout,\n// description: `WebSocket connection to ${socket.path} timed out after 60 seconds`,\n// }),\n// );\n// });\n// });\n// }\n// }\n\n\n// // =============================================================================\n// // WebSocket frame helpers (RFC 6455)\n// // Module-level pure functions — no external dependencies required.\n// // =============================================================================\n\n// /**\n// * Encode `data` as a masked WebSocket text frame (opcode 0x1).\n// * Client → server frames MUST be masked per RFC 6455 §5.3.\n// * Pass opcode 0x8 for a close frame, 0xa for pong, etc.\n// */\n// function encodeWebSocketFrame(data: string, opcode: number = 0x1): Buffer {\n// const payload = Buffer.from(data, \"utf8\");\n// const len = payload.length;\n\n// // 4-byte random masking key — new key per frame (RFC 6455 §10.3)\n// const mask = crypto.randomBytes(4);\n\n// // Header size: 2 base bytes + 0/2/8 extended length bytes + 4 mask bytes\n// let headerLen = 6;\n// if (len > 65535) headerLen += 8;\n// else if (len > 125) headerLen += 2;\n\n// const frame = Buffer.allocUnsafe(headerLen + len);\n// frame[0] = 0x80 | (opcode & 0x0f); // FIN=1, opcode\n\n// let offset = 1;\n// if (len <= 125) {\n// frame[offset++] = 0x80 | len; // MASK=1, 7-bit length\n// } else if (len <= 65535) {\n// frame[offset++] = 0x80 | 126; // MASK=1, 16-bit extended length\n// frame.writeUInt16BE(len, offset);\n// offset += 2;\n// } else {\n// frame[offset++] = 0x80 | 127; // MASK=1, 64-bit extended length\n// frame.writeBigUInt64BE(BigInt(len), offset);\n// offset += 8;\n// }\n\n// mask.copy(frame, offset);\n// offset += 4;\n\n// for (let i = 0; i < len; i++) {\n// frame[offset + i] = payload[i] ^ mask[i % 4];\n// }\n\n// return frame;\n// }\n\n// /**\n// * Attempt to parse one complete WebSocket frame from `buf`.\n// * Returns `{ frame: null, consumed: 0 }` if the buffer does not yet contain a\n// * complete frame — the caller should buffer more data and retry.\n// *\n// * Server → client frames are never masked, so no unmasking is needed here.\n// * If the server incorrectly sends a masked frame it is unmasked anyway.\n// */\n// function tryParseWebSocketFrame(\n// buf: Buffer,\n// ): { frame: { opcode: number; payload: Buffer; fin: boolean } | null; consumed: number } {\n// if (buf.length < 2) return { frame: null, consumed: 0 };\n\n// const fin = (buf[0] & 0x80) !== 0;\n// const opcode = buf[0] & 0x0f;\n// const masked = (buf[1] & 0x80) !== 0;\n// let payloadLen = buf[1] & 0x7f;\n// let offset = 2;\n\n// if (payloadLen === 126) {\n// if (buf.length < 4) return { frame: null, consumed: 0 };\n// payloadLen = buf.readUInt16BE(2);\n// offset = 4;\n// } else if (payloadLen === 127) {\n// if (buf.length < 10) return { frame: null, consumed: 0 };\n// payloadLen = Number(buf.readBigUInt64BE(2));\n// offset = 10;\n// }\n\n// const maskBytes = masked ? 4 : 0;\n// if (buf.length < offset + maskBytes + payloadLen) {\n// return { frame: null, consumed: 0 };\n// }\n\n// let maskKey: Buffer | null = null;\n// if (masked) {\n// maskKey = buf.slice(offset, offset + 4);\n// offset += 4;\n// }\n\n// const payload = Buffer.from(buf.slice(offset, offset + payloadLen));\n// if (masked && maskKey) {\n// for (let i = 0; i < payload.length; i++) {\n// payload[i] ^= maskKey[i % 4];\n// }\n// }\n\n// return { frame: { opcode, payload, fin }, consumed: offset + payloadLen };\n// }\n"]}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var chunkCLCAS67N_cjs = require('./chunk-CLCAS67N.cjs');
4
+ var aConcept = require('@adaas/a-concept');
5
+
6
+ var A_FrameEnv = class extends aConcept.A_Fragment {
7
+ get A_FRAME_FILE_EXTENSION() {
8
+ return ".aframe";
9
+ }
10
+ get A_FRAME_NAMESPACES_BIN() {
11
+ return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;
12
+ }
13
+ get A_FRAME_SYNC() {
14
+ return process.env.A_FRAME_SYNC === "false" ? false : true;
15
+ }
16
+ get A_FRAME_TOKEN() {
17
+ return process.env.A_FRAME_TOKEN || "";
18
+ }
19
+ get A_FRAME_SERVER_URL() {
20
+ return process.env.A_FRAME_SERVER_URL || "http://localhost:3663";
21
+ }
22
+ get A_FRAME_SERVER_API_KEY() {
23
+ return process.env.A_FRAME_SERVER_API_KEY || "";
24
+ }
25
+ get A_FRAME_STORAGE_DIR() {
26
+ return process.env.A_FRAME_STORAGE_DIR || ".aframe";
27
+ }
28
+ get A_FRAME_VERSION() {
29
+ return chunkCLCAS67N_cjs.version || "0.0.1";
30
+ }
31
+ /**
32
+ * Maximum time (ms) the HTTP client waits for a single response.
33
+ * AI inference can be slow; default is 120 seconds.
34
+ * Override with A_FRAME_REQUEST_TIMEOUT env var.
35
+ */
36
+ get A_FRAME_REQUEST_TIMEOUT() {
37
+ const raw = process.env.A_FRAME_REQUEST_TIMEOUT;
38
+ const parsed = raw ? parseInt(raw, 10) : NaN;
39
+ return isNaN(parsed) ? 12e4 : parsed;
40
+ }
41
+ };
42
+
43
+ exports.A_FrameEnv = A_FrameEnv;
44
+ //# sourceMappingURL=chunk-NWOUVAIS.cjs.map
45
+ //# sourceMappingURL=chunk-NWOUVAIS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts"],"names":["A_Fragment","version"],"mappings":";;;;;AAKO,IAAM,UAAA,GAAN,cAAyBA,mBAAA,CAAkC;AAAA,EAE9D,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,SAAA;AAAA,EACX;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,CAAA,YAAA,EAAe,KAAK,sBAAsB,CAAA,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,YAAA,GAAe;AACf,IAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,YAAA,KAAiB,OAAA,GAAU,KAAA,GAAQ,IAAA;AAAA,EAC1D;AAAA,EAEA,IAAI,aAAA,GAAgB;AAChB,IAAA,OAAO,OAAA,CAAQ,IAAI,aAAA,IAAiB,EAAA;AAAA,EACxC;AAAA,EAEA,IAAI,kBAAA,GAAqB;AACrB,IAAA,OAAO,OAAA,CAAQ,IAAI,kBAAA,IAAsB,uBAAA;AAAA,EAC7C;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,OAAA,CAAQ,IAAI,sBAAA,IAA0B,EAAA;AAAA,EACjD;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACtB,IAAA,OAAO,OAAA,CAAQ,IAAI,mBAAA,IAAuB,YAAA;AAAA,EAC9C;AAAA,EAEA,IAAI,eAAA,GAAkB;AAClB,IAAA,OAAWC,yBAAA,IAAW,OAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,uBAAA,GAAkC;AAClC,IAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,CAAI,uBAAA;AACxB,IAAA,MAAM,MAAA,GAAS,GAAA,GAAM,QAAA,CAAS,GAAA,EAAK,EAAE,CAAA,GAAI,GAAA;AACzC,IAAA,OAAO,KAAA,CAAM,MAAM,CAAA,GAAI,IAAA,GAAU,MAAA;AAAA,EACrC;AACJ","file":"chunk-NWOUVAIS.cjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\";\nimport * as pkg from '../../../package.json';\nimport { IA_FrameEnv } from \"./A-FrameEnv.types\";\n\n\nexport class A_FrameEnv extends A_Fragment implements IA_FrameEnv {\n\n get A_FRAME_FILE_EXTENSION() {\n return '.aframe';\n }\n\n get A_FRAME_NAMESPACES_BIN() {\n return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;\n }\n\n get A_FRAME_SYNC() {\n return process.env.A_FRAME_SYNC === 'false' ? false : true;\n }\n\n get A_FRAME_TOKEN() {\n return process.env.A_FRAME_TOKEN || '';\n }\n\n get A_FRAME_SERVER_URL() {\n return process.env.A_FRAME_SERVER_URL || 'http://localhost:3663';\n }\n\n get A_FRAME_SERVER_API_KEY() {\n return process.env.A_FRAME_SERVER_API_KEY || '';\n }\n\n get A_FRAME_STORAGE_DIR() {\n return process.env.A_FRAME_STORAGE_DIR || '.aframe';\n }\n\n get A_FRAME_VERSION() {\n return pkg.version || '0.0.1';\n }\n\n /**\n * Maximum time (ms) the HTTP client waits for a single response.\n * AI inference can be slow; default is 120 seconds.\n * Override with A_FRAME_REQUEST_TIMEOUT env var.\n */\n get A_FRAME_REQUEST_TIMEOUT(): number {\n const raw = process.env.A_FRAME_REQUEST_TIMEOUT;\n const parsed = raw ? parseInt(raw, 10) : NaN;\n return isNaN(parsed) ? 120_000 : parsed;\n }\n}"]}
@@ -0,0 +1,89 @@
1
+ import { A_FrameVector } from './chunk-IAL2NK2V.mjs';
2
+ import { A_FRAME_MODELS } from './chunk-2HUSP34L.mjs';
3
+ import { A_Entity } from '@adaas/a-concept';
4
+
5
+ // src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts
6
+ var A_FrameCompletionFeatures = {
7
+ Generate: "_A_FRAME_COMPLETION_GENERATE"
8
+ };
9
+
10
+ // src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts
11
+ var A_FrameCompletion = class extends A_Entity {
12
+ static get concept() {
13
+ return "a-frame";
14
+ }
15
+ // ─── Getters ──────────────────────────────────────────────────────────────
16
+ get prompt() {
17
+ return this._prompt;
18
+ }
19
+ get options() {
20
+ return this._options;
21
+ }
22
+ get text() {
23
+ return this._text;
24
+ }
25
+ get vector() {
26
+ return this._vector;
27
+ }
28
+ get embedding() {
29
+ return this._vector?.values ?? null;
30
+ }
31
+ get model() {
32
+ return this._model;
33
+ }
34
+ get date() {
35
+ return this._date;
36
+ }
37
+ get isGenerated() {
38
+ return this._text !== void 0;
39
+ }
40
+ // ─── Lifecycle ────────────────────────────────────────────────────────────
41
+ fromNew(init) {
42
+ super.fromNew(init);
43
+ this._prompt = init.prompt;
44
+ this._options = init.options?.model ? init.options : { model: A_FRAME_MODELS.RIGEL, ...init.options };
45
+ }
46
+ fromJSON(serialized) {
47
+ this._prompt = serialized.prompt;
48
+ this._text = serialized.text;
49
+ this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : void 0;
50
+ this._model = serialized.model;
51
+ this._date = serialized.date;
52
+ this._aFrameVersion = serialized.aFrameVersion;
53
+ this._aFrameServerVersion = serialized.aFrameServerVersion;
54
+ }
55
+ toJSON() {
56
+ return {
57
+ ...super.toJSON(),
58
+ prompt: this._prompt,
59
+ text: this._text,
60
+ embedding: this._vector?.values,
61
+ model: this._model,
62
+ date: this._date,
63
+ aFrameVersion: this._aFrameVersion,
64
+ aFrameServerVersion: this._aFrameServerVersion
65
+ };
66
+ }
67
+ // ─── Operations ──────────────────────────────────────────────────────────
68
+ /**
69
+ * Generates a text completion for the prompt and stores the resulting text
70
+ * along with its embedding vector. The actual implementation is provided by
71
+ * the A_FrameCompletionFeatures.Generate feature (supplied by A_FrameChannel).
72
+ */
73
+ generate(scope) {
74
+ return this.call(A_FrameCompletionFeatures.Generate, scope);
75
+ }
76
+ // ─── Hydration ────────────────────────────────────────────────────────────
77
+ hydrateFromGeneration(result) {
78
+ this._text = result.text;
79
+ this._vector = new A_FrameVector(result.embedding);
80
+ this._model = result.model;
81
+ this._date = result.date;
82
+ this._aFrameVersion = result.aFrameVersion;
83
+ this._aFrameServerVersion = result.aFrameServerVersion;
84
+ }
85
+ };
86
+
87
+ export { A_FrameCompletion, A_FrameCompletionFeatures };
88
+ //# sourceMappingURL=chunk-OK7I5OQ3.mjs.map
89
+ //# sourceMappingURL=chunk-OK7I5OQ3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts","../../src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts"],"names":[],"mappings":"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","file":"chunk-OK7I5OQ3.mjs","sourcesContent":["export const A_FrameCompletionFeatures = {\n Generate: '_A_FRAME_COMPLETION_GENERATE',\n} as const;\n","import { A_Entity, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport {\n A_FrameCompletion_Init,\n A_FrameCompletion_Serialized,\n A_FrameCompletionOptions,\n} from \"./A-FrameCompletion.types\";\nimport { A_FrameCompletionFeatures } from \"./A-FrameCompletion.constants\";\nimport { A_FRAME_MODELS } from \"../A-FrameModels/A-FrameModels.constants\";\n\n\nexport class A_FrameCompletion extends A_Entity<A_FrameCompletion_Init, A_FrameCompletion_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n protected _prompt!: string;\n protected _options?: A_FrameCompletionOptions;\n\n protected _text?: string;\n protected _vector?: A_FrameVector;\n protected _model?: string;\n protected _date?: string;\n protected _aFrameVersion?: string;\n protected _aFrameServerVersion?: string;\n\n\n // ─── Getters ──────────────────────────────────────────────────────────────\n\n get prompt(): string {\n return this._prompt;\n }\n\n get options(): A_FrameCompletionOptions | undefined {\n return this._options;\n }\n\n get text(): string | undefined {\n return this._text;\n }\n\n get vector(): A_FrameVector | undefined {\n return this._vector;\n }\n\n get embedding(): Float32Array | null {\n return this._vector?.values ?? null;\n }\n\n get model(): string | undefined {\n return this._model;\n }\n\n get date(): string | undefined {\n return this._date;\n }\n\n get isGenerated(): boolean {\n return this._text !== undefined;\n }\n\n\n // ─── Lifecycle ────────────────────────────────────────────────────────────\n\n fromNew(init: A_FrameCompletion_Init): void {\n super.fromNew(init);\n this._prompt = init.prompt;\n // Apply Rigel as the default model for code generation when none specified.\n this._options = init.options?.model\n ? init.options\n : { model: A_FRAME_MODELS.RIGEL, ...init.options };\n }\n\n fromJSON(serialized: A_FrameCompletion_Serialized): void {\n this._prompt = serialized.prompt;\n this._text = serialized.text;\n this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : undefined;\n this._model = serialized.model;\n this._date = serialized.date;\n this._aFrameVersion = serialized.aFrameVersion;\n this._aFrameServerVersion = serialized.aFrameServerVersion;\n }\n\n toJSON(): A_FrameCompletion_Serialized {\n return {\n ...super.toJSON(),\n prompt: this._prompt,\n text: this._text,\n embedding: this._vector?.values,\n model: this._model,\n date: this._date,\n aFrameVersion: this._aFrameVersion,\n aFrameServerVersion: this._aFrameServerVersion,\n };\n }\n\n\n // ─── Operations ──────────────────────────────────────────────────────────\n\n /**\n * Generates a text completion for the prompt and stores the resulting text\n * along with its embedding vector. The actual implementation is provided by\n * the A_FrameCompletionFeatures.Generate feature (supplied by A_FrameChannel).\n */\n generate(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameCompletionFeatures.Generate, scope);\n }\n\n\n // ─── Hydration ────────────────────────────────────────────────────────────\n\n hydrateFromGeneration(result: {\n text: string;\n embedding: Float32Array;\n model?: string;\n date?: string;\n aFrameVersion?: string;\n aFrameServerVersion?: string;\n }): void {\n this._text = result.text;\n this._vector = new A_FrameVector(result.embedding);\n this._model = result.model;\n this._date = result.date;\n this._aFrameVersion = result.aFrameVersion;\n this._aFrameServerVersion = result.aFrameServerVersion;\n }\n}\n"]}