@adaas/a-frame 0.0.23 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) 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-GOADBDTE.mjs +2 -0
  71. package/dist/browser/chunk-GOADBDTE.mjs.map +1 -0
  72. package/dist/browser/chunk-GOMJPGVB.mjs +3 -0
  73. package/dist/browser/chunk-GOMJPGVB.mjs.map +1 -0
  74. package/dist/browser/chunk-INQV5UZA.mjs +2 -0
  75. package/dist/browser/chunk-INQV5UZA.mjs.map +1 -0
  76. package/dist/browser/chunk-INXPVBTZ.mjs +2 -0
  77. package/dist/browser/chunk-INXPVBTZ.mjs.map +1 -0
  78. package/dist/browser/chunk-KFMVTZ7T.mjs +2 -0
  79. package/dist/browser/chunk-KFMVTZ7T.mjs.map +1 -0
  80. package/dist/browser/chunk-LK6C7C3S.mjs +2 -0
  81. package/dist/browser/chunk-LK6C7C3S.mjs.map +1 -0
  82. package/dist/browser/chunk-LOGRQOWP.mjs +3 -0
  83. package/dist/browser/chunk-LOGRQOWP.mjs.map +1 -0
  84. package/dist/browser/chunk-LZACYSUC.mjs +3 -0
  85. package/dist/browser/chunk-LZACYSUC.mjs.map +1 -0
  86. package/dist/browser/chunk-NTOIVRX3.mjs +2 -0
  87. package/dist/browser/chunk-NTOIVRX3.mjs.map +1 -0
  88. package/dist/browser/chunk-OES2N3X7.mjs +3 -0
  89. package/dist/browser/chunk-OES2N3X7.mjs.map +1 -0
  90. package/dist/browser/chunk-OFKV5GNB.mjs +1 -1
  91. package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -1
  92. package/dist/browser/chunk-OVLM5A32.mjs +3 -0
  93. package/dist/browser/chunk-OVLM5A32.mjs.map +1 -0
  94. package/dist/browser/chunk-QATIN7CO.mjs +1 -1
  95. package/dist/browser/chunk-QATIN7CO.mjs.map +1 -1
  96. package/dist/browser/chunk-QOL7CAUZ.mjs +2 -0
  97. package/dist/browser/chunk-QOL7CAUZ.mjs.map +1 -0
  98. package/dist/browser/chunk-RCB3PX4V.mjs +2 -0
  99. package/dist/browser/chunk-RCB3PX4V.mjs.map +1 -0
  100. package/dist/browser/chunk-RWQSCROK.mjs +3 -0
  101. package/dist/browser/chunk-RWQSCROK.mjs.map +1 -0
  102. package/dist/browser/chunk-TIAUMK2X.mjs +2 -0
  103. package/dist/browser/chunk-TIAUMK2X.mjs.map +1 -0
  104. package/dist/browser/chunk-TQPC5MYM.mjs +3 -0
  105. package/dist/browser/chunk-TQPC5MYM.mjs.map +1 -0
  106. package/dist/browser/chunk-UNIKTCXL.mjs +3 -0
  107. package/dist/browser/chunk-UNIKTCXL.mjs.map +1 -0
  108. package/dist/browser/chunk-UULJJ5C5.mjs +3 -0
  109. package/dist/browser/chunk-UULJJ5C5.mjs.map +1 -0
  110. package/dist/browser/chunk-VSSANMPF.mjs +2 -0
  111. package/dist/browser/chunk-VSSANMPF.mjs.map +1 -0
  112. package/dist/browser/chunk-VW2BZYNY.mjs +2 -0
  113. package/dist/browser/chunk-VW2BZYNY.mjs.map +1 -0
  114. package/dist/browser/chunk-WAXBOWM6.mjs +3 -0
  115. package/dist/browser/chunk-WAXBOWM6.mjs.map +1 -0
  116. package/dist/browser/chunk-WXCQCHAX.mjs +2 -0
  117. package/dist/browser/chunk-WXCQCHAX.mjs.map +1 -0
  118. package/dist/browser/chunk-XKKBIIZG.mjs +3 -0
  119. package/dist/browser/chunk-XKKBIIZG.mjs.map +1 -0
  120. package/dist/browser/chunk-XR7FVA5M.mjs +3 -0
  121. package/dist/browser/chunk-XR7FVA5M.mjs.map +1 -0
  122. package/dist/browser/chunk-YQJFTBGV.mjs +3 -0
  123. package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -0
  124. package/dist/browser/chunk-YTAMZDWC.mjs +3 -0
  125. package/dist/browser/chunk-YTAMZDWC.mjs.map +1 -0
  126. package/dist/browser/chunk-ZEONOTRL.mjs +2 -0
  127. package/dist/browser/chunk-ZEONOTRL.mjs.map +1 -0
  128. package/dist/browser/completion.d.mts +10 -0
  129. package/dist/browser/completion.mjs +2 -0
  130. package/dist/browser/completion.mjs.map +1 -0
  131. package/dist/browser/core.d.mts +8 -7
  132. package/dist/browser/core.mjs +1 -1
  133. package/dist/browser/core.mjs.map +1 -1
  134. package/dist/browser/credentials.d.mts +74 -0
  135. package/dist/browser/credentials.mjs +2 -0
  136. package/dist/browser/credentials.mjs.map +1 -0
  137. package/dist/browser/definition.d.mts +3 -2
  138. package/dist/browser/definition.mjs +1 -1
  139. package/dist/browser/dynamic-content.d.mts +13 -0
  140. package/dist/browser/dynamic-content.mjs +2 -0
  141. package/dist/browser/dynamic-content.mjs.map +1 -0
  142. package/dist/browser/dynamic-feature.d.mts +66 -6
  143. package/dist/browser/dynamic-feature.mjs +3 -1
  144. package/dist/browser/dynamic-feature.mjs.map +1 -1
  145. package/dist/browser/dynamic-structure.d.mts +77 -3
  146. package/dist/browser/dynamic-structure.mjs +1 -1
  147. package/dist/browser/dynamic-structure.mjs.map +1 -1
  148. package/dist/browser/env.d.mts +16 -2
  149. package/dist/browser/env.mjs +1 -1
  150. package/dist/browser/frame-index.d.mts +70 -9
  151. package/dist/browser/frame-index.mjs +1 -1
  152. package/dist/browser/models.d.mts +64 -0
  153. package/dist/browser/models.mjs +2 -0
  154. package/dist/browser/models.mjs.map +1 -0
  155. package/dist/browser/namespace.d.mts +1 -1
  156. package/dist/browser/namespace.mjs +1 -1
  157. package/dist/browser/schema.d.mts +10 -0
  158. package/dist/browser/schema.mjs +2 -0
  159. package/dist/browser/schema.mjs.map +1 -0
  160. package/dist/browser/segment.d.mts +13 -0
  161. package/dist/browser/segment.mjs +2 -0
  162. package/dist/browser/segment.mjs.map +1 -0
  163. package/dist/browser/storage.d.mts +13 -7
  164. package/dist/browser/storage.mjs +1 -1
  165. package/dist/browser/vector.d.mts +7 -0
  166. package/dist/browser/vector.mjs +1 -1
  167. package/dist/cli.cjs +5593 -0
  168. package/dist/cli.cjs.map +1 -0
  169. package/dist/node/A-FrameChannel.component--YErPxf4.d.mts +97 -0
  170. package/dist/node/A-FrameChannel.component-BjgqMh1B.d.ts +97 -0
  171. package/dist/node/A-FrameChannel.component-C0O3TaRD.d.ts +679 -0
  172. package/dist/node/A-FrameChannel.component-CgBZYBz0.d.mts +379 -0
  173. package/dist/node/A-FrameChannel.component-CkZserv3.d.ts +97 -0
  174. package/dist/node/A-FrameChannel.component-DMA-3sUB.d.mts +679 -0
  175. package/dist/node/A-FrameChannel.component-DYV8omYR.d.ts +379 -0
  176. package/dist/node/A-FrameChannel.component-DwgYNfFn.d.mts +97 -0
  177. package/dist/node/A-FrameChannel.types-B3_xWKEO.d.mts +151 -0
  178. package/dist/node/A-FrameChannel.types-BGcVXTqa.d.ts +205 -0
  179. package/dist/node/A-FrameChannel.types-Boi8QqDK.d.mts +205 -0
  180. package/dist/node/A-FrameChannel.types-BsE6bNky.d.mts +205 -0
  181. package/dist/node/A-FrameChannel.types-C-gxXl8m.d.ts +151 -0
  182. package/dist/node/A-FrameChannel.types-DD2B11rf.d.ts +205 -0
  183. package/dist/node/A-FrameChannel.types-DYMgRiCF.d.mts +205 -0
  184. package/dist/node/A-FrameChannel.types-DwyZRsOy.d.ts +205 -0
  185. package/dist/node/A-FrameCompletion.entity-Brx11JMp.d.ts +72 -0
  186. package/dist/node/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
  187. package/dist/node/A-FrameDefinition.entity-BIF0sclD.d.ts +370 -0
  188. package/dist/node/A-FrameDefinition.entity-Bt9ua6cn.d.ts +358 -0
  189. package/dist/node/A-FrameDefinition.entity-C0kzaGJ0.d.ts +143 -0
  190. package/dist/node/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
  191. package/dist/node/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
  192. package/dist/node/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
  193. package/dist/node/A-FrameDefinition.types-BA_pLGpo.d.ts +232 -0
  194. package/dist/node/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
  195. package/dist/node/A-FrameDynamicContentOperation.context-C_aH1gEn.d.ts +297 -0
  196. package/dist/node/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
  197. package/dist/node/A-FrameDynamicContentOperation.context-DRqH2c3o.d.ts +266 -0
  198. package/dist/node/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
  199. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
  200. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.ts +29 -0
  201. package/dist/node/A-FrameDynamicStructure.entity-BVCbolMd.d.ts +210 -0
  202. package/dist/node/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
  203. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
  204. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.ts +235 -0
  205. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.mts +114 -0
  206. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.ts +114 -0
  207. package/dist/node/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
  208. package/dist/node/A-FrameNamespace.entity-HDXcLGcS.d.ts +136 -0
  209. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
  210. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.ts +141 -0
  211. package/dist/node/A-FrameSegment.entity-C0izuOmC.d.ts +161 -0
  212. package/dist/node/A-FrameSegment.entity-CMCgFCWU.d.ts +146 -0
  213. package/dist/node/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
  214. package/dist/node/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
  215. package/dist/node/A-FrameStorage.component-BnNKzvpY.d.mts +107 -0
  216. package/dist/node/A-FrameStorage.component-CDztogHV.d.mts +107 -0
  217. package/dist/node/A-FrameStorage.component-CW0YgKDI.d.mts +107 -0
  218. package/dist/node/A-FrameStorage.component-D4UEkIBx.d.mts +107 -0
  219. package/dist/node/A-FrameStorage.component-DV_jwK6r.d.ts +107 -0
  220. package/dist/node/A-FrameStorage.component-Di4EvbtC.d.ts +107 -0
  221. package/dist/node/A-FrameStorage.component-emIH1a1M.d.ts +107 -0
  222. package/dist/node/A-FrameStorage.component-y-JPiIQ4.d.ts +107 -0
  223. package/dist/node/bundle.cjs +66 -21
  224. package/dist/node/bundle.cjs.map +1 -1
  225. package/dist/node/bundle.d.mts +88 -24
  226. package/dist/node/bundle.d.ts +88 -24
  227. package/dist/node/bundle.mjs +65 -20
  228. package/dist/node/bundle.mjs.map +1 -1
  229. package/dist/node/channel.cjs +33 -26
  230. package/dist/node/channel.d.mts +10 -6
  231. package/dist/node/channel.d.ts +10 -6
  232. package/dist/node/channel.mjs +13 -6
  233. package/dist/node/chunk-2HUSP34L.mjs +55 -0
  234. package/dist/node/chunk-2HUSP34L.mjs.map +1 -0
  235. package/dist/node/chunk-2KXGI2E5.cjs +474 -0
  236. package/dist/node/chunk-2KXGI2E5.cjs.map +1 -0
  237. package/dist/node/chunk-2OQMOIR5.mjs +170 -0
  238. package/dist/node/chunk-2OQMOIR5.mjs.map +1 -0
  239. package/dist/node/chunk-2UI7RJ4Q.mjs +207 -0
  240. package/dist/node/chunk-2UI7RJ4Q.mjs.map +1 -0
  241. package/dist/node/chunk-3SLICJ3L.cjs +265 -0
  242. package/dist/node/chunk-3SLICJ3L.cjs.map +1 -0
  243. package/dist/node/chunk-3ZDHQOIU.cjs +92 -0
  244. package/dist/node/chunk-3ZDHQOIU.cjs.map +1 -0
  245. package/dist/node/chunk-5BKCX2RO.mjs +33 -0
  246. package/dist/node/chunk-5BKCX2RO.mjs.map +1 -0
  247. package/dist/node/chunk-5NCGXLP2.mjs +6 -0
  248. package/dist/node/chunk-5NCGXLP2.mjs.map +1 -0
  249. package/dist/node/chunk-5OTXZ7BB.mjs +53 -0
  250. package/dist/node/chunk-5OTXZ7BB.mjs.map +1 -0
  251. package/dist/node/chunk-5PYIATGT.mjs +469 -0
  252. package/dist/node/chunk-5PYIATGT.mjs.map +1 -0
  253. package/dist/node/chunk-64QCZG53.cjs +57 -0
  254. package/dist/node/chunk-64QCZG53.cjs.map +1 -0
  255. package/dist/node/chunk-652OEICJ.cjs +4 -0
  256. package/dist/node/chunk-652OEICJ.cjs.map +1 -0
  257. package/dist/node/chunk-674ZX6XJ.mjs +187 -0
  258. package/dist/node/chunk-674ZX6XJ.mjs.map +1 -0
  259. package/dist/node/chunk-6ID2IXYX.mjs +6 -0
  260. package/dist/node/chunk-6ID2IXYX.mjs.map +1 -0
  261. package/dist/node/chunk-6KAGWGTE.mjs +529 -0
  262. package/dist/node/chunk-6KAGWGTE.mjs.map +1 -0
  263. package/dist/node/chunk-7EM3Q7HA.mjs +655 -0
  264. package/dist/node/chunk-7EM3Q7HA.mjs.map +1 -0
  265. package/dist/node/chunk-7MVVMISA.cjs +293 -0
  266. package/dist/node/chunk-7MVVMISA.cjs.map +1 -0
  267. package/dist/node/chunk-7NSLGCAZ.mjs +1395 -0
  268. package/dist/node/chunk-7NSLGCAZ.mjs.map +1 -0
  269. package/dist/node/chunk-7OLLATCC.mjs +1289 -0
  270. package/dist/node/chunk-7OLLATCC.mjs.map +1 -0
  271. package/dist/node/chunk-7SEZMRLI.cjs +183 -0
  272. package/dist/node/chunk-7SEZMRLI.cjs.map +1 -0
  273. package/dist/node/chunk-A4CVDMSV.mjs +608 -0
  274. package/dist/node/chunk-A4CVDMSV.mjs.map +1 -0
  275. package/dist/node/chunk-A7CJIUYY.cjs +4 -0
  276. package/dist/node/chunk-A7CJIUYY.cjs.map +1 -0
  277. package/dist/node/chunk-ALFFUJ2J.mjs +163 -0
  278. package/dist/node/chunk-ALFFUJ2J.mjs.map +1 -0
  279. package/dist/node/chunk-AMMQ76RJ.mjs +179 -0
  280. package/dist/node/chunk-AMMQ76RJ.mjs.map +1 -0
  281. package/dist/node/chunk-AUKWKGVA.cjs +688 -0
  282. package/dist/node/chunk-AUKWKGVA.cjs.map +1 -0
  283. package/dist/node/chunk-AY6UMDWD.cjs +270 -0
  284. package/dist/node/chunk-AY6UMDWD.cjs.map +1 -0
  285. package/dist/node/chunk-B7ZDJXD3.cjs +1 -1
  286. package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -1
  287. package/dist/node/chunk-BBYOL3LM.cjs +1308 -0
  288. package/dist/node/chunk-BBYOL3LM.cjs.map +1 -0
  289. package/dist/node/chunk-BINGAHFW.cjs +1308 -0
  290. package/dist/node/chunk-BINGAHFW.cjs.map +1 -0
  291. package/dist/node/chunk-BSBY37MG.cjs +55 -0
  292. package/dist/node/chunk-BSBY37MG.cjs.map +1 -0
  293. package/dist/node/chunk-BWX7HFTH.cjs +209 -0
  294. package/dist/node/chunk-BWX7HFTH.cjs.map +1 -0
  295. package/dist/node/chunk-C37B34MH.cjs +188 -0
  296. package/dist/node/chunk-C37B34MH.cjs.map +1 -0
  297. package/dist/node/chunk-C6BBKHQG.cjs +250 -0
  298. package/dist/node/chunk-C6BBKHQG.cjs.map +1 -0
  299. package/dist/node/chunk-CLCAS67N.cjs +8 -0
  300. package/dist/node/chunk-CLCAS67N.cjs.map +1 -0
  301. package/dist/node/chunk-CNU3CRTR.mjs +43 -0
  302. package/dist/node/chunk-CNU3CRTR.mjs.map +1 -0
  303. package/dist/node/chunk-CV5FPKU6.mjs +6 -0
  304. package/dist/node/chunk-CV5FPKU6.mjs.map +1 -0
  305. package/dist/node/chunk-CZYOAFIR.mjs +129 -0
  306. package/dist/node/chunk-CZYOAFIR.mjs.map +1 -0
  307. package/dist/node/chunk-D2HTYEJZ.cjs +209 -0
  308. package/dist/node/chunk-D2HTYEJZ.cjs.map +1 -0
  309. package/dist/node/chunk-EMLZZPOT.cjs +1446 -0
  310. package/dist/node/chunk-EMLZZPOT.cjs.map +1 -0
  311. package/dist/node/chunk-EOIXXXBV.cjs +55 -0
  312. package/dist/node/chunk-EOIXXXBV.cjs.map +1 -0
  313. package/dist/node/chunk-F46TSY2K.cjs +541 -0
  314. package/dist/node/chunk-F46TSY2K.cjs.map +1 -0
  315. package/dist/node/chunk-F4UCOZW5.mjs +1 -1
  316. package/dist/node/chunk-F4UCOZW5.mjs.map +1 -1
  317. package/dist/node/chunk-F64CK4NI.mjs +53 -0
  318. package/dist/node/chunk-F64CK4NI.mjs.map +1 -0
  319. package/dist/node/chunk-FAV62EUG.cjs +35 -0
  320. package/dist/node/chunk-FAV62EUG.cjs.map +1 -0
  321. package/dist/node/chunk-GHSPKZUN.mjs +529 -0
  322. package/dist/node/chunk-GHSPKZUN.mjs.map +1 -0
  323. package/dist/node/chunk-GRNVK7DW.mjs +97 -0
  324. package/dist/node/chunk-GRNVK7DW.mjs.map +1 -0
  325. package/dist/node/chunk-GRR6NNWY.cjs +688 -0
  326. package/dist/node/chunk-GRR6NNWY.cjs.map +1 -0
  327. package/dist/node/chunk-H5VGRPD5.cjs +8 -0
  328. package/dist/node/chunk-H5VGRPD5.cjs.map +1 -0
  329. package/dist/node/chunk-HAMDDCPS.cjs +8 -0
  330. package/dist/node/chunk-HAMDDCPS.cjs.map +1 -0
  331. package/dist/node/chunk-HAORARSB.cjs +75 -0
  332. package/dist/node/chunk-HAORARSB.cjs.map +1 -0
  333. package/dist/node/chunk-HELNAM5Y.cjs +8 -0
  334. package/dist/node/chunk-HELNAM5Y.cjs.map +1 -0
  335. package/dist/node/chunk-HET6L5PD.mjs +530 -0
  336. package/dist/node/chunk-HET6L5PD.mjs.map +1 -0
  337. package/dist/node/chunk-HI5SEX53.mjs +264 -0
  338. package/dist/node/chunk-HI5SEX53.mjs.map +1 -0
  339. package/dist/node/chunk-HZGFXE4Q.mjs +6 -0
  340. package/dist/node/chunk-HZGFXE4Q.mjs.map +1 -0
  341. package/dist/node/chunk-IAL2NK2V.mjs +73 -0
  342. package/dist/node/chunk-IAL2NK2V.mjs.map +1 -0
  343. package/dist/node/chunk-IHELFDCW.mjs +327 -0
  344. package/dist/node/chunk-IHELFDCW.mjs.map +1 -0
  345. package/dist/node/chunk-ILD6OSYW.mjs +966 -0
  346. package/dist/node/chunk-ILD6OSYW.mjs.map +1 -0
  347. package/dist/node/chunk-IP6DFAO7.mjs +264 -0
  348. package/dist/node/chunk-IP6DFAO7.mjs.map +1 -0
  349. package/dist/node/chunk-IYEDO7OQ.cjs +276 -0
  350. package/dist/node/chunk-IYEDO7OQ.cjs.map +1 -0
  351. package/dist/node/chunk-JFPGFPQD.mjs +1413 -0
  352. package/dist/node/chunk-JFPGFPQD.mjs.map +1 -0
  353. package/dist/node/chunk-JHZGTVYF.cjs +999 -0
  354. package/dist/node/chunk-JHZGTVYF.cjs.map +1 -0
  355. package/dist/node/chunk-JN3UJBUH.mjs +608 -0
  356. package/dist/node/chunk-JN3UJBUH.mjs.map +1 -0
  357. package/dist/node/chunk-JNPDXCCN.mjs +530 -0
  358. package/dist/node/chunk-JNPDXCCN.mjs.map +1 -0
  359. package/dist/node/chunk-JQBYDEMW.mjs +1 -1
  360. package/dist/node/chunk-JQBYDEMW.mjs.map +1 -1
  361. package/dist/node/chunk-JQJ7N4NL.cjs +267 -0
  362. package/dist/node/chunk-JQJ7N4NL.cjs.map +1 -0
  363. package/dist/node/chunk-K4AJBPPY.cjs +174 -0
  364. package/dist/node/chunk-K4AJBPPY.cjs.map +1 -0
  365. package/dist/node/chunk-K7SXPJPK.cjs +131 -0
  366. package/dist/node/chunk-K7SXPJPK.cjs.map +1 -0
  367. package/dist/node/chunk-KFW4GE7H.mjs +1289 -0
  368. package/dist/node/chunk-KFW4GE7H.mjs.map +1 -0
  369. package/dist/node/chunk-KKL2DF2D.cjs +518 -0
  370. package/dist/node/chunk-KKL2DF2D.cjs.map +1 -0
  371. package/dist/node/chunk-KKMKQGTR.cjs +620 -0
  372. package/dist/node/chunk-KKMKQGTR.cjs.map +1 -0
  373. package/dist/node/chunk-KNTO7FCZ.mjs +207 -0
  374. package/dist/node/chunk-KNTO7FCZ.mjs.map +1 -0
  375. package/dist/node/chunk-KTKVW3PH.mjs +286 -0
  376. package/dist/node/chunk-KTKVW3PH.mjs.map +1 -0
  377. package/dist/node/chunk-KZPSF32W.mjs +33 -0
  378. package/dist/node/chunk-KZPSF32W.mjs.map +1 -0
  379. package/dist/node/chunk-LWKFCMA7.mjs +129 -0
  380. package/dist/node/chunk-LWKFCMA7.mjs.map +1 -0
  381. package/dist/node/chunk-M2ZSE6YJ.mjs +512 -0
  382. package/dist/node/chunk-M2ZSE6YJ.mjs.map +1 -0
  383. package/dist/node/chunk-M6DJYGDO.cjs +167 -0
  384. package/dist/node/chunk-M6DJYGDO.cjs.map +1 -0
  385. package/dist/node/chunk-MAHKDTOQ.mjs +3 -0
  386. package/dist/node/chunk-MAHKDTOQ.mjs.map +1 -0
  387. package/dist/node/chunk-MM2R2OM6.cjs +541 -0
  388. package/dist/node/chunk-MM2R2OM6.cjs.map +1 -0
  389. package/dist/node/chunk-MSOD5UQH.cjs +45 -0
  390. package/dist/node/chunk-MSOD5UQH.cjs.map +1 -0
  391. package/dist/node/chunk-MVAWR76Q.cjs +276 -0
  392. package/dist/node/chunk-MVAWR76Q.cjs.map +1 -0
  393. package/dist/node/chunk-MXUO7OR5.cjs +97 -0
  394. package/dist/node/chunk-MXUO7OR5.cjs.map +1 -0
  395. package/dist/node/chunk-N4THTV6P.cjs +131 -0
  396. package/dist/node/chunk-N4THTV6P.cjs.map +1 -0
  397. package/dist/node/chunk-NIXKAQVP.cjs +1 -1
  398. package/dist/node/chunk-NIXKAQVP.cjs.map +1 -1
  399. package/dist/node/chunk-NUPXUUPM.cjs +1428 -0
  400. package/dist/node/chunk-NUPXUUPM.cjs.map +1 -0
  401. package/dist/node/chunk-NWOUVAIS.cjs +45 -0
  402. package/dist/node/chunk-NWOUVAIS.cjs.map +1 -0
  403. package/dist/node/chunk-OK7I5OQ3.mjs +89 -0
  404. package/dist/node/chunk-OK7I5OQ3.mjs.map +1 -0
  405. package/dist/node/chunk-OMGYXCFM.mjs +248 -0
  406. package/dist/node/chunk-OMGYXCFM.mjs.map +1 -0
  407. package/dist/node/chunk-OYC6L5NX.mjs +6 -0
  408. package/dist/node/chunk-OYC6L5NX.mjs.map +1 -0
  409. package/dist/node/chunk-OYZAQMKD.mjs +263 -0
  410. package/dist/node/chunk-OYZAQMKD.mjs.map +1 -0
  411. package/dist/node/chunk-P2LULMNL.cjs +189 -0
  412. package/dist/node/chunk-P2LULMNL.cjs.map +1 -0
  413. package/dist/node/chunk-PABEFHCO.mjs +63 -0
  414. package/dist/node/chunk-PABEFHCO.mjs.map +1 -0
  415. package/dist/node/chunk-Q5NYJQP2.cjs +8 -0
  416. package/dist/node/chunk-Q5NYJQP2.cjs.map +1 -0
  417. package/dist/node/chunk-QCEWWJ3N.cjs +65 -0
  418. package/dist/node/chunk-QCEWWJ3N.cjs.map +1 -0
  419. package/dist/node/chunk-QW4AZ3Z2.cjs +542 -0
  420. package/dist/node/chunk-QW4AZ3Z2.cjs.map +1 -0
  421. package/dist/node/chunk-R2H234YO.cjs +8 -0
  422. package/dist/node/chunk-R2H234YO.cjs.map +1 -0
  423. package/dist/node/chunk-RK5WSZ5J.mjs +43 -0
  424. package/dist/node/chunk-RK5WSZ5J.mjs.map +1 -0
  425. package/dist/node/chunk-RPHYBPXT.mjs +30 -0
  426. package/dist/node/chunk-RPHYBPXT.mjs.map +1 -0
  427. package/dist/node/chunk-RVXASBMQ.mjs +273 -0
  428. package/dist/node/chunk-RVXASBMQ.mjs.map +1 -0
  429. package/dist/node/chunk-RVZTZD32.mjs +187 -0
  430. package/dist/node/chunk-RVZTZD32.mjs.map +1 -0
  431. package/dist/node/chunk-RWLKISZQ.mjs +273 -0
  432. package/dist/node/chunk-RWLKISZQ.mjs.map +1 -0
  433. package/dist/node/chunk-SDKIJDMH.mjs +655 -0
  434. package/dist/node/chunk-SDKIJDMH.mjs.map +1 -0
  435. package/dist/node/chunk-SESXQJDD.cjs +999 -0
  436. package/dist/node/chunk-SESXQJDD.cjs.map +1 -0
  437. package/dist/node/chunk-SKIEPTFS.mjs +6 -0
  438. package/dist/node/chunk-SKIEPTFS.mjs.map +1 -0
  439. package/dist/node/chunk-SL7FT5R5.mjs +94 -0
  440. package/dist/node/chunk-SL7FT5R5.mjs.map +1 -0
  441. package/dist/node/chunk-SXHQW74T.mjs +43 -0
  442. package/dist/node/chunk-SXHQW74T.mjs.map +1 -0
  443. package/dist/node/chunk-TEJKDVNT.cjs +620 -0
  444. package/dist/node/chunk-TEJKDVNT.cjs.map +1 -0
  445. package/dist/node/chunk-TQS5WYND.cjs +352 -0
  446. package/dist/node/chunk-TQS5WYND.cjs.map +1 -0
  447. package/dist/node/chunk-UCAWV2IG.mjs +184 -0
  448. package/dist/node/chunk-UCAWV2IG.mjs.map +1 -0
  449. package/dist/node/chunk-UDUJDEAO.cjs +189 -0
  450. package/dist/node/chunk-UDUJDEAO.cjs.map +1 -0
  451. package/dist/node/chunk-VMJDL4SS.cjs +542 -0
  452. package/dist/node/chunk-VMJDL4SS.cjs.map +1 -0
  453. package/dist/node/chunk-VNOZTB3B.cjs +8 -0
  454. package/dist/node/chunk-VNOZTB3B.cjs.map +1 -0
  455. package/dist/node/chunk-VPMBZGYR.mjs +327 -0
  456. package/dist/node/chunk-VPMBZGYR.mjs.map +1 -0
  457. package/dist/node/chunk-WEPNBKOA.mjs +6 -0
  458. package/dist/node/chunk-WEPNBKOA.mjs.map +1 -0
  459. package/dist/node/chunk-WTBRJXFG.cjs +100 -0
  460. package/dist/node/chunk-WTBRJXFG.cjs.map +1 -0
  461. package/dist/node/chunk-WXCQCHAX.mjs +3 -0
  462. package/dist/node/chunk-WXCQCHAX.mjs.map +1 -0
  463. package/dist/node/chunk-X3TRPYGV.cjs +352 -0
  464. package/dist/node/chunk-X3TRPYGV.cjs.map +1 -0
  465. package/dist/node/chunk-XFUF7SDO.cjs +35 -0
  466. package/dist/node/chunk-XFUF7SDO.cjs.map +1 -0
  467. package/dist/node/chunk-XP2EPEBM.mjs +966 -0
  468. package/dist/node/chunk-XP2EPEBM.mjs.map +1 -0
  469. package/dist/node/chunk-XPIJ6BKP.cjs +45 -0
  470. package/dist/node/chunk-XPIJ6BKP.cjs.map +1 -0
  471. package/dist/node/chunk-YRVBMP7I.cjs +542 -0
  472. package/dist/node/chunk-YRVBMP7I.cjs.map +1 -0
  473. package/dist/node/chunk-ZIHSN5EE.mjs +530 -0
  474. package/dist/node/chunk-ZIHSN5EE.mjs.map +1 -0
  475. package/dist/node/chunk-ZNQMUU7I.cjs +32 -0
  476. package/dist/node/chunk-ZNQMUU7I.cjs.map +1 -0
  477. package/dist/node/completion.cjs +23 -0
  478. package/dist/node/completion.cjs.map +1 -0
  479. package/dist/node/completion.d.mts +10 -0
  480. package/dist/node/completion.d.ts +10 -0
  481. package/dist/node/completion.mjs +6 -0
  482. package/dist/node/completion.mjs.map +1 -0
  483. package/dist/node/core.cjs +69 -42
  484. package/dist/node/core.cjs.map +1 -1
  485. package/dist/node/core.d.mts +14 -9
  486. package/dist/node/core.d.ts +14 -9
  487. package/dist/node/core.mjs +60 -33
  488. package/dist/node/core.mjs.map +1 -1
  489. package/dist/node/credentials.cjs +17 -0
  490. package/dist/node/credentials.cjs.map +1 -0
  491. package/dist/node/credentials.d.mts +74 -0
  492. package/dist/node/credentials.d.ts +74 -0
  493. package/dist/node/credentials.mjs +4 -0
  494. package/dist/node/credentials.mjs.map +1 -0
  495. package/dist/node/definition.cjs +6 -4
  496. package/dist/node/definition.d.mts +3 -2
  497. package/dist/node/definition.d.ts +3 -2
  498. package/dist/node/definition.mjs +4 -2
  499. package/dist/node/dynamic-content.cjs +30 -0
  500. package/dist/node/dynamic-content.cjs.map +1 -0
  501. package/dist/node/dynamic-content.d.mts +13 -0
  502. package/dist/node/dynamic-content.d.ts +13 -0
  503. package/dist/node/dynamic-content.mjs +9 -0
  504. package/dist/node/dynamic-content.mjs.map +1 -0
  505. package/dist/node/dynamic-feature.cjs +41 -7
  506. package/dist/node/dynamic-feature.cjs.map +1 -1
  507. package/dist/node/dynamic-feature.d.mts +66 -6
  508. package/dist/node/dynamic-feature.d.ts +66 -6
  509. package/dist/node/dynamic-feature.mjs +16 -9
  510. package/dist/node/dynamic-feature.mjs.map +1 -1
  511. package/dist/node/dynamic-structure.cjs +45 -136
  512. package/dist/node/dynamic-structure.cjs.map +1 -1
  513. package/dist/node/dynamic-structure.d.mts +77 -3
  514. package/dist/node/dynamic-structure.d.ts +77 -3
  515. package/dist/node/dynamic-structure.mjs +16 -135
  516. package/dist/node/dynamic-structure.mjs.map +1 -1
  517. package/dist/node/env.cjs +3 -3
  518. package/dist/node/env.d.mts +26 -0
  519. package/dist/node/env.d.ts +26 -0
  520. package/dist/node/env.mjs +2 -2
  521. package/dist/node/frame-index.cjs +7 -4
  522. package/dist/node/frame-index.d.mts +70 -9
  523. package/dist/node/frame-index.d.ts +70 -9
  524. package/dist/node/frame-index.mjs +6 -3
  525. package/dist/node/logger.d.mts +4 -113
  526. package/dist/node/logger.d.ts +4 -113
  527. package/dist/node/models.cjs +14 -0
  528. package/dist/node/models.cjs.map +1 -0
  529. package/dist/node/models.d.mts +64 -0
  530. package/dist/node/models.d.ts +64 -0
  531. package/dist/node/models.mjs +5 -0
  532. package/dist/node/models.mjs.map +1 -0
  533. package/dist/node/namespace.cjs +7 -5
  534. package/dist/node/namespace.d.mts +1 -1
  535. package/dist/node/namespace.d.ts +1 -1
  536. package/dist/node/namespace.mjs +4 -2
  537. package/dist/node/schema.cjs +22 -0
  538. package/dist/node/schema.cjs.map +1 -0
  539. package/dist/node/schema.d.mts +10 -0
  540. package/dist/node/schema.d.ts +10 -0
  541. package/dist/node/schema.mjs +5 -0
  542. package/dist/node/schema.mjs.map +1 -0
  543. package/dist/node/segment.cjs +25 -0
  544. package/dist/node/segment.cjs.map +1 -0
  545. package/dist/node/segment.d.mts +13 -0
  546. package/dist/node/segment.d.ts +13 -0
  547. package/dist/node/segment.mjs +8 -0
  548. package/dist/node/segment.mjs.map +1 -0
  549. package/dist/node/storage.cjs +17 -14
  550. package/dist/node/storage.d.mts +18 -6
  551. package/dist/node/storage.d.ts +18 -6
  552. package/dist/node/storage.mjs +11 -8
  553. package/dist/node/vector.cjs +2 -2
  554. package/dist/node/vector.d.mts +7 -0
  555. package/dist/node/vector.d.ts +7 -0
  556. package/dist/node/vector.mjs +1 -1
  557. package/examples/article/main.ts +358 -0
  558. package/examples/components.ts +660 -0
  559. package/examples/feature/file-system.components.ts +211 -0
  560. package/examples/feature/main.ts +374 -0
  561. package/examples/interaction/main.ts +426 -0
  562. package/examples/logger.ts +126 -0
  563. package/examples/structure/main.ts +195 -0
  564. package/examples/structure/renderer.ts +296 -0
  565. package/examples/structure/server-app.components.ts +387 -0
  566. package/jest.config.browser.ts +9 -0
  567. package/jest.config.examples.ts +49 -0
  568. package/jest.config.integration.ts +38 -0
  569. package/jest.config.ts +56 -27
  570. package/jest.config.unit.ts +38 -0
  571. package/package.json +75 -7
  572. package/src/index.ts +13 -0
  573. package/src/lib/A-Frame/A-Frame.component.env-browser.ts +19 -6
  574. package/src/lib/A-Frame/A-Frame.component.env-node.ts +48 -19
  575. package/src/lib/A-Frame/A-Frame.context.ts +9 -8
  576. package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +4 -4
  577. package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -25
  578. package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +1 -1
  579. package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +54 -13
  580. package/src/lib/A-FrameBundle/index.browser.ts +1 -1
  581. package/src/lib/A-FrameBundle/index.ts +1 -1
  582. package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +18 -7
  583. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +0 -2
  584. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +14 -15
  585. package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +542 -7
  586. package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +2 -0
  587. package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +65 -1
  588. package/src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts +112 -0
  589. package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +1 -0
  590. package/src/lib/A-FrameChannel/index.browser.ts +5 -0
  591. package/src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts +3 -0
  592. package/src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts +128 -0
  593. package/src/lib/A-FrameCompletion/A-FrameCompletion.types.ts +40 -0
  594. package/src/lib/A-FrameCompletion/index.ts +3 -0
  595. package/src/lib/A-FrameCredentials/A-FrameCredentials.constants.ts +5 -0
  596. package/src/lib/A-FrameCredentials/A-FrameCredentials.entity.ts +120 -0
  597. package/src/lib/A-FrameCredentials/A-FrameCredentials.types.ts +39 -0
  598. package/src/lib/A-FrameCredentials/index.ts +3 -0
  599. package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +23 -1
  600. package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +34 -1
  601. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts +5 -0
  602. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts +348 -0
  603. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts +10 -0
  604. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.types.ts +116 -0
  605. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts +288 -0
  606. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts +26 -0
  607. package/src/lib/A-FrameDynamicContent/index.ts +5 -0
  608. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.constants.ts +6 -0
  609. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +253 -4
  610. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.error.ts +11 -0
  611. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +188 -4
  612. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context.ts +33 -0
  613. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapIndex.context.ts +99 -0
  614. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapper.component.ts +182 -0
  615. package/src/lib/A-FrameDynamicFeature/index.ts +6 -1
  616. package/src/lib/A-FrameDynamicPatch/index.ts +2 -0
  617. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapIndex.context.ts +99 -0
  618. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapper.component.ts +320 -0
  619. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +2 -1
  620. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +240 -128
  621. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +183 -87
  622. package/src/lib/A-FrameDynamicStructure/index.ts +3 -0
  623. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +5 -1
  624. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +23 -1
  625. package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +12 -0
  626. package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +63 -13
  627. package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +53 -0
  628. package/src/lib/A-FrameModels/A-FrameModels.constants.ts +75 -0
  629. package/src/lib/A-FrameModels/index.ts +1 -0
  630. package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +10 -3
  631. package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +5 -0
  632. package/src/lib/A-FrameSchema/A-FrameSchema.constants.ts +4 -0
  633. package/src/lib/A-FrameSchema/A-FrameSchema.entity.ts +154 -0
  634. package/src/lib/A-FrameSchema/A-FrameSchema.types.ts +88 -0
  635. package/src/lib/A-FrameSchema/index.ts +3 -0
  636. package/src/lib/A-FrameSegment/A-FrameSegment.constants.ts +12 -0
  637. package/src/lib/A-FrameSegment/A-FrameSegment.entity.ts +221 -0
  638. package/src/lib/A-FrameSegment/A-FrameSegment.types.ts +91 -0
  639. package/src/lib/A-FrameSegment/index.ts +3 -0
  640. package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +10 -4
  641. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +21 -0
  642. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +39 -21
  643. package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +124 -42
  644. package/src/lib/A-FrameVector/A-FrameVector.entity.ts +24 -0
  645. package/tests/A-Frame.browser.test.ts +167 -57
  646. package/tests/A-FrameDynamicContent.browser.test.ts +74 -0
  647. package/tests/integration/A-Frame.integration.test.ts +272 -0
  648. package/tests/integration/A-FrameCompletion.integration.test.ts +88 -0
  649. package/tests/integration/A-FrameContentMapping.integration.test.ts +261 -0
  650. package/tests/integration/A-FrameDefinition.integration.test.ts +154 -0
  651. package/tests/integration/A-FrameDynamicContent.integration.test.ts +126 -0
  652. package/tests/integration/A-FrameDynamicFeature.integration.test.ts +337 -0
  653. package/tests/integration/A-FrameDynamicStructure.integration.test.ts +264 -0
  654. package/tests/integration/A-FrameNamespace.integration.test.ts +109 -0
  655. package/tests/integration/A-FrameSchema.integration.test.ts +74 -0
  656. package/tests/integration/A-FrameSegment.integration.test.ts +102 -0
  657. package/tests/integration/A-FrameStorage.integration.test.ts +598 -0
  658. package/tests/jest.setup.browser.ts +1 -1
  659. package/tests/jest.setup.ts +4 -0
  660. package/tests/jest.setup.unit.ts +30 -0
  661. package/tests/unit/A-FrameChannel.unit.test.ts +124 -0
  662. package/tests/unit/A-FrameCompletion.unit.test.ts +25 -0
  663. package/tests/unit/A-FrameDefinition.unit.test.ts +36 -0
  664. package/tests/unit/A-FrameDynamicContent.unit.test.ts +28 -0
  665. package/tests/unit/A-FrameNamespace.unit.test.ts +35 -0
  666. package/tests/unit/A-FrameSchema.unit.test.ts +31 -0
  667. package/tests/unit/A-FrameSegment.unit.test.ts +20 -0
  668. package/tests/unit/mocks/MockA_FrameChannel.ts +112 -0
  669. package/tsconfig.browser.json +2 -0
  670. package/tsconfig.json +6 -0
  671. package/tsup.config.ts +52 -0
  672. package/tests/A-Frame.test.ts +0 -96
@@ -0,0 +1,518 @@
1
+ 'use strict';
2
+
3
+ var chunkC37B34MH_cjs = require('./chunk-C37B34MH.cjs');
4
+ var chunkHAORARSB_cjs = require('./chunk-HAORARSB.cjs');
5
+ var chunk64QCZG53_cjs = require('./chunk-64QCZG53.cjs');
6
+ var aConcept = require('@adaas/a-concept');
7
+
8
+ var A_FrameDynamicPatch = class extends aConcept.A_Entity {
9
+ static get concept() {
10
+ return "a-frame";
11
+ }
12
+ // component count change vs. previous patch
13
+ fromNew(options) {
14
+ this.version = options.version;
15
+ this.timestamp = options.timestamp;
16
+ this.reason = options.reason;
17
+ this.encoded = options.encoded;
18
+ this.delta = options.delta;
19
+ }
20
+ toJSON() {
21
+ return {
22
+ ...super.toJSON(),
23
+ version: this.version,
24
+ timestamp: this.timestamp,
25
+ reason: this.reason,
26
+ encoded: this.encoded,
27
+ delta: this.delta
28
+ };
29
+ }
30
+ };
31
+
32
+ // src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts
33
+ var A_FrameDynamicContentFeatures = {
34
+ Generate: "_A_FRAME_DYNAMIC_CONTENT_GENERATE",
35
+ Patch: "_A_FRAME_DYNAMIC_CONTENT_PATCH"
36
+ };
37
+ var A_FrameDynamicContentOperation = class extends aConcept.A_Fragment {
38
+ constructor(params = {}) {
39
+ super({ name: "a-frame-dynamic-content-operation-context" });
40
+ this._meta = /* @__PURE__ */ new Map();
41
+ this._meta.set("params", params);
42
+ }
43
+ get params() {
44
+ return this._meta.get("params");
45
+ }
46
+ get(key) {
47
+ return this._meta.get(key);
48
+ }
49
+ set(key, value) {
50
+ this._meta.set(key, value);
51
+ }
52
+ };
53
+ var A_FrameDynamicContentError = class extends aConcept.A_Error {
54
+ };
55
+ A_FrameDynamicContentError.GenerationFailed = "GenerationFailed";
56
+ A_FrameDynamicContentError.PatchFailed = "PatchFailed";
57
+ A_FrameDynamicContentError.InvalidPatch = "InvalidPatch";
58
+ A_FrameDynamicContentError.PieceNotFound = "PieceNotFound";
59
+ var _A_FrameDynamicContentIndex = class _A_FrameDynamicContentIndex extends aConcept.A_Fragment {
60
+ constructor() {
61
+ super(...arguments);
62
+ /** Ordered list of segment IDs — defines the canonical reading order. */
63
+ this._order = [];
64
+ /** O(1) lookup by id. */
65
+ this._map = /* @__PURE__ */ new Map();
66
+ }
67
+ // ── Accessors ─────────────────────────────────────────────────────────────
68
+ get count() {
69
+ return this._order.length;
70
+ }
71
+ get size() {
72
+ return this._order.length;
73
+ }
74
+ // ── Basic mutation ────────────────────────────────────────────────────────
75
+ /** Append one or more segments to the end. */
76
+ add(...segments) {
77
+ segments.forEach((seg) => {
78
+ this._map.set(seg.id, seg);
79
+ if (!this._order.includes(seg.id)) {
80
+ this._order.push(seg.id);
81
+ }
82
+ });
83
+ }
84
+ /** Replace the content of an existing segment in-place (position unchanged). */
85
+ update(segment) {
86
+ this._map.set(segment.id, segment);
87
+ if (!this._order.includes(segment.id)) {
88
+ this._order.push(segment.id);
89
+ }
90
+ }
91
+ /** Remove a segment by id. */
92
+ remove(id) {
93
+ this._map.delete(id);
94
+ const idx = this._order.indexOf(id);
95
+ if (idx !== -1) this._order.splice(idx, 1);
96
+ }
97
+ /** Remove all segments. */
98
+ clear() {
99
+ this._map.clear();
100
+ this._order = [];
101
+ }
102
+ // ── Positional insertion ──────────────────────────────────────────────────
103
+ /** Insert `segment` immediately before the segment with `targetId`. */
104
+ insertBefore(targetId, segment) {
105
+ this._map.set(segment.id, segment);
106
+ const targetIdx = this._order.indexOf(targetId);
107
+ if (targetIdx === -1) {
108
+ this._order.push(segment.id);
109
+ } else {
110
+ this._order.splice(targetIdx, 0, segment.id);
111
+ }
112
+ }
113
+ /** Insert `segment` immediately after the segment with `targetId`. */
114
+ insertAfter(targetId, segment) {
115
+ this._map.set(segment.id, segment);
116
+ const targetIdx = this._order.indexOf(targetId);
117
+ if (targetIdx === -1) {
118
+ this._order.push(segment.id);
119
+ } else {
120
+ this._order.splice(targetIdx + 1, 0, segment.id);
121
+ }
122
+ }
123
+ /** Swap the content of `targetId` with `segment`, keeping the same position. */
124
+ replace(targetId, segment) {
125
+ const pos = this._order.indexOf(targetId);
126
+ if (pos === -1) return;
127
+ this._map.delete(targetId);
128
+ this._map.set(segment.id, segment);
129
+ this._order[pos] = segment.id;
130
+ }
131
+ // ── Position management ────────────────────────────────────────────────────
132
+ /** Move the segment with `id` to absolute zero-based `newPosition`. */
133
+ moveTo(id, newPosition) {
134
+ const from = this._order.indexOf(id);
135
+ if (from === -1) return;
136
+ this._order.splice(from, 1);
137
+ const clipped = Math.max(0, Math.min(newPosition, this._order.length));
138
+ this._order.splice(clipped, 0, id);
139
+ }
140
+ /** Move `id` to directly before `targetId`. */
141
+ moveBefore(id, targetId) {
142
+ const from = this._order.indexOf(id);
143
+ if (from === -1) return;
144
+ this._order.splice(from, 1);
145
+ const to = this._order.indexOf(targetId);
146
+ this._order.splice(to === -1 ? 0 : to, 0, id);
147
+ }
148
+ /** Move `id` to directly after `targetId`. */
149
+ moveAfter(id, targetId) {
150
+ const from = this._order.indexOf(id);
151
+ if (from === -1) return;
152
+ this._order.splice(from, 1);
153
+ const to = this._order.indexOf(targetId);
154
+ this._order.splice(to === -1 ? this._order.length : to + 1, 0, id);
155
+ }
156
+ // ── Patch operation dispatch ──────────────────────────────────────────────
157
+ /**
158
+ * Apply a single `A_FrameContentPatchOperation` to the index.
159
+ * For `add` and `replace` the caller must supply the resolved `segment`.
160
+ * For `remove` only the `op` is needed.
161
+ */
162
+ applyOperation(op, segment) {
163
+ switch (op.action) {
164
+ case "remove": {
165
+ if (op.targetId) this.remove(op.targetId);
166
+ break;
167
+ }
168
+ case "replace": {
169
+ if (op.targetId && segment) this.replace(op.targetId, segment);
170
+ break;
171
+ }
172
+ case "add": {
173
+ if (!segment) break;
174
+ if (!op.targetId || op.position === "append") {
175
+ this.add(segment);
176
+ } else if (op.position === "before") {
177
+ this.insertBefore(op.targetId, segment);
178
+ } else {
179
+ this.insertAfter(op.targetId, segment);
180
+ }
181
+ break;
182
+ }
183
+ }
184
+ }
185
+ // ── Lookup ────────────────────────────────────────────────────────────────
186
+ get(id) {
187
+ return this._map.get(id);
188
+ }
189
+ /** Returns all segments in their current canonical order. */
190
+ list() {
191
+ return this._order.map((id) => this._map.get(id)).filter((s) => s !== void 0);
192
+ }
193
+ // ── Search ────────────────────────────────────────────────────────────────
194
+ /**
195
+ * Computes the centroid (element-wise mean) of all embedded segments.
196
+ * Returns `null` when no segments have been embedded yet.
197
+ * The centroid represents the overall semantic "centre of gravity" of this
198
+ * content block and is used by `A_FrameDynamicContent.compareTo()` to
199
+ * measure similarity between two content instances.
200
+ */
201
+ centroid() {
202
+ const embedded = this.list().filter((s) => s.isEmbed && s.vector);
203
+ if (embedded.length === 0) return null;
204
+ const dim = embedded[0].vector.length;
205
+ const sum = new Float32Array(dim);
206
+ for (const seg of embedded) {
207
+ const vals = seg.vector.values;
208
+ for (let i = 0; i < dim; i++) sum[i] += vals[i];
209
+ }
210
+ for (let i = 0; i < dim; i++) sum[i] /= embedded.length;
211
+ return new chunkHAORARSB_cjs.A_FrameVector(sum);
212
+ }
213
+ /**
214
+ * Rank all embedded segments by cosine similarity to the query vector.
215
+ */
216
+ search(vector, topK = _A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT) {
217
+ const queryVec = vector.normalize();
218
+ return this.list().filter((s) => s.isEmbed && s.vector).map((s) => ({
219
+ segment: s,
220
+ score: queryVec.dot(s.vector.normalize())
221
+ })).sort((a, b) => b.score - a.score).slice(0, topK);
222
+ }
223
+ /**
224
+ * Rank segments by how many instruction keywords appear in their content.
225
+ * Words shorter than 4 characters are ignored.
226
+ */
227
+ searchByKeywords(instruction, topK = _A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT) {
228
+ const keywords = instruction.toLowerCase().split(/\W+/).filter((w) => w.length > 3);
229
+ if (keywords.length === 0) return [];
230
+ return this.list().map((segment) => {
231
+ const lower = segment.content.toLowerCase();
232
+ const score = keywords.reduce(
233
+ (acc, kw) => acc + (lower.includes(kw) ? 1 : 0),
234
+ 0
235
+ );
236
+ return { segment, score };
237
+ }).filter((s) => s.score > 0).sort((a, b) => b.score - a.score).slice(0, topK);
238
+ }
239
+ /**
240
+ * Select at most `limit` segments most relevant to a patch instruction.
241
+ *
242
+ * Priority:
243
+ * 1. Vector search — when `vector` is provided and segments carry embeddings.
244
+ * 2. Keyword search — fallback when embeddings are absent or vector is null.
245
+ * 3. Identity — first N segments when neither search finds candidates.
246
+ */
247
+ selectForPatch(vector, instruction, limit = _A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT) {
248
+ const all = this.list();
249
+ if (all.length <= limit) return all;
250
+ if (vector) {
251
+ const hasEmbedded = all.some((s) => s.isEmbed);
252
+ if (hasEmbedded) {
253
+ const results = this.search(vector, limit);
254
+ if (results.length > 0) return results.map((r) => r.segment);
255
+ }
256
+ }
257
+ const kwResults = this.searchByKeywords(instruction, limit);
258
+ if (kwResults.length > 0) return kwResults.map((r) => r.segment);
259
+ return all.slice(0, limit);
260
+ }
261
+ // ── Similarity helpers ────────────────────────────────────────────────────
262
+ cosineSimilarity(a, b) {
263
+ if (!b) return 0;
264
+ const dot = a.dot(b);
265
+ const mag = a.magnitude() * b.magnitude();
266
+ return mag === 0 ? 0 : dot / mag;
267
+ }
268
+ };
269
+ /** Maximum segments forwarded to the server in a single patch request. */
270
+ _A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT = 5;
271
+ var A_FrameDynamicContentIndex = _A_FrameDynamicContentIndex;
272
+
273
+ // src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts
274
+ var A_FrameDynamicContent = class extends aConcept.A_Entity {
275
+ static get concept() {
276
+ return "a-frame";
277
+ }
278
+ /**
279
+ *
280
+ */
281
+ get scope() {
282
+ if (!this._scope) {
283
+ this._scope = aConcept.A_Context.allocate(this, new aConcept.A_Scope({ name: `${this.aseid.id}-scope` }));
284
+ }
285
+ return this._scope;
286
+ }
287
+ get index() {
288
+ const index = this.scope.resolve(A_FrameDynamicContentIndex);
289
+ return index;
290
+ }
291
+ fromNew(options) {
292
+ super.fromNew(options);
293
+ const index = new A_FrameDynamicContentIndex({ name: `${this.aseid.id}` });
294
+ this.scope.register(index);
295
+ this.createdAt = Date.now();
296
+ this.prompt = options.prompt;
297
+ this.model = options.options?.model || chunk64QCZG53_cjs.A_FRAME_MODELS.LYRA;
298
+ this._system = options.options?.system;
299
+ this._patchPieceLimit = options.options?.patchPieceLimit || A_FrameDynamicContentIndex.PATCH_PIECE_LIMIT;
300
+ this._history = [];
301
+ this._version = 0;
302
+ }
303
+ // ── Accessors ────────────────────────────────────────────────────────────
304
+ /** Ordered list of content pieces (output of the last generate or patch). */
305
+ get segments() {
306
+ return this.index.list();
307
+ }
308
+ /** Full content reconstructed from all segments in index order. */
309
+ get content() {
310
+ return this.index.list().map((s) => s.content).join("\n");
311
+ }
312
+ /** Alias for `content` — kept for backward compatibility. */
313
+ get text() {
314
+ return this.content;
315
+ }
316
+ /** Immutable patch history. */
317
+ get history() {
318
+ return this._history;
319
+ }
320
+ /** Current content version (increments with each patch). */
321
+ get version() {
322
+ return this._version;
323
+ }
324
+ /** The AI model name to use for generation / patching. */
325
+ get modelName() {
326
+ return this.model;
327
+ }
328
+ /** Optional system prompt forwarded to the AI for generation and patching. */
329
+ get systemPrompt() {
330
+ return this._system;
331
+ }
332
+ // ── Main pipeline ─────────────────────────────────────────────────────────
333
+ /**
334
+ * Generate content from the entity's prompt.
335
+ * Populates `pieces` and creates the first history entry.
336
+ */
337
+ async generate() {
338
+ const operation = new A_FrameDynamicContentOperation();
339
+ if (!this.scope.isInheritedFrom(aConcept.A_Context.scope(this)))
340
+ this.scope.inherit(aConcept.A_Context.scope(this));
341
+ const executionScope = new aConcept.A_Scope({
342
+ name: "a-frame-dynamic-content-generate",
343
+ fragments: [operation]
344
+ }).inherit(this.scope);
345
+ try {
346
+ await this.call(A_FrameDynamicContentFeatures.Generate, executionScope);
347
+ executionScope.destroy();
348
+ } catch (err) {
349
+ executionScope.destroy();
350
+ throw new A_FrameDynamicContentError({
351
+ title: A_FrameDynamicContentError.GenerationFailed,
352
+ description: `Failed to generate content: ${err instanceof Error ? err.message : String(err)}`
353
+ });
354
+ }
355
+ }
356
+ /**
357
+ * Apply a natural-language patch instruction to the current pieces.
358
+ *
359
+ * When `targetSegments` is provided the caller pins the exact segments to
360
+ * patch — no embedding or semantic search is performed. Every supplied
361
+ * segment must already belong to this content's index; unknown segments
362
+ * are rejected with an error.
363
+ *
364
+ * When omitted, the server identifies which segments to modify using
365
+ * semantic search over segment embeddings (original behaviour).
366
+ */
367
+ async patch(instruction, targetSegments) {
368
+ if (!this.scope.isInheritedFrom(aConcept.A_Context.scope(this)))
369
+ this.scope.inherit(aConcept.A_Context.scope(this));
370
+ const executionScope = new aConcept.A_Scope({
371
+ name: "a-frame-dynamic-content-patch"
372
+ }).inherit(this.scope);
373
+ let segments;
374
+ if (targetSegments !== void 0) {
375
+ const pinned = Array.isArray(targetSegments) ? targetSegments : [targetSegments];
376
+ const unknown = pinned.filter((s) => !this.index.get(s.id));
377
+ if (unknown.length > 0) {
378
+ executionScope.destroy();
379
+ throw new A_FrameDynamicContentError({
380
+ title: A_FrameDynamicContentError.PatchFailed,
381
+ description: `Segment(s) not found in this content's index: ` + unknown.map((s) => `"${s.id}"`).join(", ") + `. Only segments that belong to this DynamicContent instance can be targeted.`
382
+ });
383
+ }
384
+ segments = pinned;
385
+ } else {
386
+ const inputSegment = new chunkC37B34MH_cjs.A_FrameSegment({
387
+ content: instruction,
388
+ options: { task: "query" }
389
+ });
390
+ executionScope.register(inputSegment);
391
+ await inputSegment.embed();
392
+ segments = this.index.selectForPatch(inputSegment.vector ?? null, instruction, this._patchPieceLimit);
393
+ }
394
+ const operation = new A_FrameDynamicContentOperation({
395
+ instruction,
396
+ segments
397
+ });
398
+ executionScope.register(operation);
399
+ try {
400
+ await this.call(A_FrameDynamicContentFeatures.Patch, executionScope);
401
+ executionScope.destroy();
402
+ } catch (err) {
403
+ executionScope.destroy();
404
+ throw new A_FrameDynamicContentError({
405
+ title: A_FrameDynamicContentError.PatchFailed,
406
+ description: `Failed to patch content: ${err instanceof Error ? err.message : String(err)}`
407
+ });
408
+ }
409
+ }
410
+ // ── Comparison ────────────────────────────────────────────────────────────
411
+ /**
412
+ * Returns a cosine similarity score (0–1) between this content and `other`.
413
+ *
414
+ * The score is computed from the centroid of each content's embedded
415
+ * segments — the element-wise mean of all segment vectors. Two contents
416
+ * about the same topic should score close to 1; unrelated contents will
417
+ * score near 0.
418
+ *
419
+ * Returns 0 if either content has no embedded segments.
420
+ *
421
+ * @example
422
+ * const cats1 = new A_FrameDynamicContent({ prompt: 'Article about cats' });
423
+ * const cats2 = new A_FrameDynamicContent({ prompt: 'Article about cats' });
424
+ * const cars = new A_FrameDynamicContent({ prompt: 'Article about cars' });
425
+ * // After generate() on all three:
426
+ * cats1.compareTo(cats2); // ~0.92 — high
427
+ * cats1.compareTo(cars); // ~0.45 — low
428
+ */
429
+ compareTo(other) {
430
+ const centroidA = this.index.centroid();
431
+ const centroidB = other.index.centroid();
432
+ if (!centroidA || !centroidB) return 0;
433
+ return centroidA.cosineSimilarity(centroidB);
434
+ }
435
+ // ── Hydration ─────────────────────────────────────────────────────────────
436
+ /**
437
+ * Populate index from the segments created by the channel after a generate response.
438
+ * Creates the first history entry.
439
+ */
440
+ hydrateFromGeneration(segments, meta) {
441
+ segments.forEach((s) => this.index.add(s));
442
+ this._history.push(new A_FrameDynamicPatch({
443
+ version: this._version,
444
+ timestamp: Date.now(),
445
+ reason: `Generated for: "${this.prompt}"`,
446
+ encoded: Buffer.from(JSON.stringify(this.index.list())).toString("base64"),
447
+ delta: this.index.size
448
+ }));
449
+ }
450
+ /**
451
+ * Apply a patch diff returned by the server to the current piece list.
452
+ * Increments the version and records a history entry.
453
+ */
454
+ hydrateFromPatch(patchResult, meta) {
455
+ const prevCount = this.index.size;
456
+ const normalize = (s) => s.toLowerCase().replace(/[^\w\s]/g, "").replace(/\s+/g, " ").trim();
457
+ const existingNormalized = this.index.list().map((s) => normalize(s.content));
458
+ const isNearDuplicate = (newContent) => {
459
+ const norm = normalize(newContent);
460
+ if (norm.length < 8) return false;
461
+ return existingNormalized.some(
462
+ (existing) => existing === norm || // exact match
463
+ existing.includes(norm)
464
+ // new text is a strict substring of something existing
465
+ // Note: do NOT check norm.includes(existing) — that would block
466
+ // valid extensions where new content starts with an existing phrase.
467
+ );
468
+ };
469
+ for (const op of patchResult.operations) {
470
+ if (!["add", "replace", "remove"].includes(op.action)) continue;
471
+ let segment;
472
+ if (op.segment) {
473
+ const dup = (op.action === "add" || op.action === "replace") && isNearDuplicate(op.segment.content);
474
+ if (dup) continue;
475
+ segment = new chunkC37B34MH_cjs.A_FrameSegment({ content: op.segment.content, options: { task: "document" } });
476
+ if (op.segment.embedding?.length) {
477
+ segment.hydrateFromEmbedding(new Float32Array(op.segment.embedding));
478
+ }
479
+ }
480
+ if (op.action === "add") {
481
+ const validPositions = /* @__PURE__ */ new Set(["before", "after", "append", void 0]);
482
+ if (!validPositions.has(op.position)) {
483
+ op.position = "append";
484
+ op.targetId = void 0;
485
+ }
486
+ }
487
+ this.index.applyOperation(op, segment);
488
+ }
489
+ this._version++;
490
+ this._history.push(new A_FrameDynamicPatch({
491
+ version: this._version,
492
+ timestamp: Date.now(),
493
+ reason: patchResult.patchSummary,
494
+ encoded: Buffer.from(JSON.stringify(this.index.list())).toString("base64"),
495
+ delta: this.index.size - prevCount
496
+ }));
497
+ }
498
+ // ── Serialisation ──────────────────────────────────────────────────────────
499
+ toJSON() {
500
+ return {
501
+ ...super.toJSON(),
502
+ prompt: this.prompt,
503
+ metadata: {
504
+ model: this.model,
505
+ createdAt: this.createdAt
506
+ },
507
+ history: this._history.map((item) => item.toJSON())
508
+ };
509
+ }
510
+ };
511
+
512
+ exports.A_FrameDynamicContent = A_FrameDynamicContent;
513
+ exports.A_FrameDynamicContentError = A_FrameDynamicContentError;
514
+ exports.A_FrameDynamicContentFeatures = A_FrameDynamicContentFeatures;
515
+ exports.A_FrameDynamicContentOperation = A_FrameDynamicContentOperation;
516
+ exports.A_FrameDynamicPatch = A_FrameDynamicPatch;
517
+ //# sourceMappingURL=chunk-KKL2DF2D.cjs.map
518
+ //# sourceMappingURL=chunk-KKL2DF2D.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.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-FrameDynamicContent/A-FrameDynamicContent.entity.ts"],"names":["A_Entity","A_Fragment","A_Error","A_FrameVector","A_Context","A_Scope","A_FRAME_MODELS","A_FrameSegment"],"mappings":"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","file":"chunk-KKL2DF2D.cjs","sourcesContent":["import { A_Entity } from \"@adaas/a-concept\";\nimport { A_FrameDynamicPatch_Init, A_FrameDynamicPatch_Serialized } from \"./A-FrameDynamicPatch.types\";\n\n\nexport class A_FrameDynamicPatch extends A_Entity<A_FrameDynamicPatch_Init, A_FrameDynamicPatch_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n version!: number;\n timestamp!: number;\n reason!: string;\n encoded!: string; // base64-encoded snapshot of components at this version\n delta!: number; // component count change vs. previous patch\n\n\n\n fromNew(options: A_FrameDynamicPatch_Init) {\n this.version = options.version;\n this.timestamp = options.timestamp;\n this.reason = options.reason;\n this.encoded = options.encoded;\n this.delta = options.delta;\n }\n\n\n toJSON(): A_FrameDynamicPatch_Serialized {\n return {\n ...super.toJSON(),\n version: this.version,\n timestamp: this.timestamp,\n reason: this.reason,\n encoded: this.encoded,\n delta: this.delta,\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 * Computes the centroid (element-wise mean) of all embedded segments.\n * Returns `null` when no segments have been embedded yet.\n * The centroid represents the overall semantic \"centre of gravity\" of this\n * content block and is used by `A_FrameDynamicContent.compareTo()` to\n * measure similarity between two content instances.\n */\n centroid(): A_FrameVector | null {\n const embedded = this.list().filter(s => s.isEmbed && s.vector);\n if (embedded.length === 0) return null;\n\n const dim = embedded[0].vector!.length;\n const sum = new Float32Array(dim);\n\n for (const seg of embedded) {\n const vals = seg.vector!.values;\n for (let i = 0; i < dim; i++) sum[i] += vals[i];\n }\n for (let i = 0; i < dim; i++) sum[i] /= embedded.length;\n\n return new A_FrameVector(sum);\n }\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_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\";\nimport { A_FRAME_MODELS } from \"../A-FrameModels/A-FrameModels.constants\";\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 private _system!: string | undefined;\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 || A_FRAME_MODELS.LYRA;\n this._system = options.options?.system;\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 /** Optional system prompt forwarded to the AI for generation and patching. */\n get systemPrompt(): string | undefined {\n return this._system;\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 *\n * When `targetSegments` is provided the caller pins the exact segments to\n * patch — no embedding or semantic search is performed. Every supplied\n * segment must already belong to this content's index; unknown segments\n * are rejected with an error.\n *\n * When omitted, the server identifies which segments to modify using\n * semantic search over segment embeddings (original behaviour).\n */\n async patch(instruction: string, targetSegments?: A_FrameSegment | A_FrameSegment[]): 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 let segments: A_FrameSegment[];\n\n if (targetSegments !== undefined) {\n // ── Pinned segments path ──────────────────────────────────────────\n const pinned = Array.isArray(targetSegments) ? targetSegments : [targetSegments];\n\n // Validate every pinned segment is part of this content's index\n const unknown = pinned.filter(s => !this.index.get(s.id as string));\n if (unknown.length > 0) {\n executionScope.destroy();\n throw new A_FrameDynamicContentError({\n title: A_FrameDynamicContentError.PatchFailed,\n description:\n `Segment(s) not found in this content's index: ` +\n unknown.map(s => `\"${s.id}\"`).join(', ') +\n `. Only segments that belong to this DynamicContent instance can be targeted.`,\n });\n }\n\n segments = pinned;\n } else {\n // ── Semantic search path (original behaviour) ─────────────────────\n const inputSegment = new A_FrameSegment({\n content: instruction,\n options: { task: 'query' },\n });\n\n executionScope.register(inputSegment);\n\n await inputSegment.embed();\n\n segments = this.index.selectForPatch(inputSegment.vector ?? null, instruction, this._patchPieceLimit);\n }\n\n const operation = new A_FrameDynamicContentOperation({\n instruction,\n segments,\n });\n\n executionScope.register(operation);\n\n try {\n await this.call(A_FrameDynamicContentFeatures.Patch, executionScope);\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 // ── Comparison ────────────────────────────────────────────────────────────\n\n /**\n * Returns a cosine similarity score (0–1) between this content and `other`.\n *\n * The score is computed from the centroid of each content's embedded\n * segments — the element-wise mean of all segment vectors. Two contents\n * about the same topic should score close to 1; unrelated contents will\n * score near 0.\n *\n * Returns 0 if either content has no embedded segments.\n *\n * @example\n * const cats1 = new A_FrameDynamicContent({ prompt: 'Article about cats' });\n * const cats2 = new A_FrameDynamicContent({ prompt: 'Article about cats' });\n * const cars = new A_FrameDynamicContent({ prompt: 'Article about cars' });\n * // After generate() on all three:\n * cats1.compareTo(cats2); // ~0.92 — high\n * cats1.compareTo(cars); // ~0.45 — low\n */\n compareTo(other: A_FrameDynamicContent): number {\n const centroidA = this.index.centroid();\n const centroidB = other.index.centroid();\n if (!centroidA || !centroidB) return 0;\n return centroidA.cosineSimilarity(centroidB);\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 // Pre-compute normalized content set for near-duplicate detection.\n // Normalization: lowercase, strip punctuation, collapse whitespace.\n const normalize = (s: string): string =>\n s.toLowerCase().replace(/[^\\w\\s]/g, '').replace(/\\s+/g, ' ').trim();\n\n const existingNormalized = this.index.list().map(s => normalize(s.content));\n const isNearDuplicate = (newContent: string): boolean => {\n const norm = normalize(newContent);\n if (norm.length < 8) return false; // too short to matter\n return existingNormalized.some(existing =>\n existing === norm || // exact match\n existing.includes(norm) // new text is a strict substring of something existing\n // Note: do NOT check norm.includes(existing) — that would block \n // valid extensions where new content starts with an existing phrase.\n );\n };\n\n for (const op of patchResult.operations) {\n // Validate action\n if (!['add', 'replace', 'remove'].includes(op.action)) continue;\n\n let segment: A_FrameSegment | undefined;\n if (op.segment) {\n // Guard: LLM sometimes returns existing (or near-duplicate) content — skip those.\n const dup = (op.action === 'add' || op.action === 'replace') && isNearDuplicate(op.segment.content);\n if (dup) continue;\n\n segment = new A_FrameSegment({ content: op.segment.content, options: { task: 'document' } });\n if (op.segment.embedding?.length) {\n segment.hydrateFromEmbedding(new Float32Array(op.segment.embedding));\n }\n }\n\n // Validate position for 'add' operations — reject composite strings like \"before|after|append\"\n if (op.action === 'add') {\n const validPositions = new Set(['before', 'after', 'append', undefined]);\n if (!validPositions.has(op.position as any)) {\n // Malformed position — treat as append\n (op as any).position = 'append';\n (op as any).targetId = undefined;\n }\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"]}