holosphere 2.0.0-alpha1 → 2.0.0-alpha10

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 (418) hide show
  1. package/CHANGELOG.md +473 -0
  2. package/FEATURES.md +431 -0
  3. package/LICENSE +29 -166
  4. package/LICENSE-AGPL.md +180 -0
  5. package/README.md +97 -16
  6. package/dist/2019-D2OG2idw.js +6680 -0
  7. package/dist/2019-D2OG2idw.js.map +1 -0
  8. package/dist/2019-EION3wKo.cjs +8 -0
  9. package/dist/2019-EION3wKo.cjs.map +1 -0
  10. package/dist/_commonjsHelpers-C37NGDzP.cjs +2 -0
  11. package/dist/_commonjsHelpers-C37NGDzP.cjs.map +1 -0
  12. package/dist/_commonjsHelpers-CUmg6egw.js +7 -0
  13. package/dist/_commonjsHelpers-CUmg6egw.js.map +1 -0
  14. package/dist/browser-BSniCNqO.js +3058 -0
  15. package/dist/browser-BSniCNqO.js.map +1 -0
  16. package/dist/browser-Cq59Ij19.cjs +2 -0
  17. package/dist/browser-Cq59Ij19.cjs.map +1 -0
  18. package/dist/cdn/holosphere.min.js +55 -0
  19. package/dist/cdn/holosphere.min.js.map +1 -0
  20. package/dist/cjs/holosphere.cjs +2 -0
  21. package/dist/cjs/holosphere.cjs.map +1 -0
  22. package/dist/esm/holosphere.js +53 -0
  23. package/dist/esm/holosphere.js.map +1 -0
  24. package/dist/index-DDGt_V9o.cjs +12 -0
  25. package/dist/index-DDGt_V9o.cjs.map +1 -0
  26. package/dist/index-DJXftyvB.js +39841 -0
  27. package/dist/index-DJXftyvB.js.map +1 -0
  28. package/dist/index-DMbdcMtK.cjs +18 -0
  29. package/dist/index-DMbdcMtK.cjs.map +1 -0
  30. package/dist/index-DeZ1xz_s.js +15104 -0
  31. package/dist/index-DeZ1xz_s.js.map +1 -0
  32. package/dist/indexeddb-storage-BFt6hMeF.js +176 -0
  33. package/dist/indexeddb-storage-BFt6hMeF.js.map +1 -0
  34. package/dist/indexeddb-storage-BK5tv4Sh.cjs +2 -0
  35. package/dist/indexeddb-storage-BK5tv4Sh.cjs.map +1 -0
  36. package/dist/memory-storage-C9HuoL2E.js +91 -0
  37. package/dist/memory-storage-C9HuoL2E.js.map +1 -0
  38. package/dist/memory-storage-Dao7jfYG.cjs +2 -0
  39. package/dist/memory-storage-Dao7jfYG.cjs.map +1 -0
  40. package/dist/secp256k1-BbKzbLtD.cjs +12 -0
  41. package/dist/secp256k1-BbKzbLtD.cjs.map +1 -0
  42. package/dist/secp256k1-CreY7Pcl.js +1890 -0
  43. package/dist/secp256k1-CreY7Pcl.js.map +1 -0
  44. package/docs/CONTRACTS.md +797 -0
  45. package/docs/FOSDEM_PROPOSAL.md +388 -0
  46. package/docs/LOCALFIRST.md +266 -0
  47. package/docs/api/ai_aggregation.js.html +333 -0
  48. package/docs/api/ai_breakdown.js.html +524 -0
  49. package/docs/api/ai_classifier.js.html +231 -0
  50. package/docs/api/ai_council.js.html +246 -0
  51. package/docs/api/ai_embeddings.js.html +304 -0
  52. package/docs/api/ai_federation-ai.js.html +338 -0
  53. package/docs/api/ai_h3-ai.js.html +970 -0
  54. package/docs/api/ai_index.js.html +124 -0
  55. package/docs/api/ai_json-ops.js.html +241 -0
  56. package/docs/api/ai_llm-service.js.html +239 -0
  57. package/docs/api/ai_nl-query.js.html +236 -0
  58. package/docs/api/ai_relationships.js.html +367 -0
  59. package/docs/api/ai_schema-extractor.js.html +235 -0
  60. package/docs/api/ai_spatial.js.html +307 -0
  61. package/docs/api/ai_tts.js.html +214 -0
  62. package/docs/api/content_social-protocols.js.html +180 -0
  63. package/docs/api/core_holosphere.js.html +757 -0
  64. package/docs/api/crypto_nostr-utils.js.html +306 -0
  65. package/docs/api/crypto_secp256k1.js.html +267 -0
  66. package/docs/api/data/search.json +1 -0
  67. package/docs/api/federation_discovery.js.html +337 -0
  68. package/docs/api/federation_handshake.js.html +478 -0
  69. package/docs/api/federation_hologram.js.html +1053 -0
  70. package/docs/api/federation_registry.js.html +389 -0
  71. package/docs/api/fonts/Inconsolata-Regular.ttf +0 -0
  72. package/docs/api/fonts/OpenSans-Regular.ttf +0 -0
  73. package/docs/api/fonts/WorkSans-Bold.ttf +0 -0
  74. package/docs/api/global.html +3 -0
  75. package/docs/api/hierarchical_upcast.js.html +128 -0
  76. package/docs/api/index.html +265 -0
  77. package/docs/api/index.js.html +1868 -0
  78. package/docs/api/lib_ai-methods.js.html +660 -0
  79. package/docs/api/lib_contract-methods.js.html +445 -0
  80. package/docs/api/lib_errors.js.html +56 -0
  81. package/docs/api/lib_federation-methods.js.html +348 -0
  82. package/docs/api/lib_index.js.html +33 -0
  83. package/docs/api/module-ai.html +5 -0
  84. package/docs/api/module-ai_aggregation-SmartAggregation.html +6 -0
  85. package/docs/api/module-ai_aggregation.SmartAggregation.html +3 -0
  86. package/docs/api/module-ai_aggregation.html +3 -0
  87. package/docs/api/module-ai_breakdown-TaskBreakdown.html +5 -0
  88. package/docs/api/module-ai_breakdown.TaskBreakdown.html +3 -0
  89. package/docs/api/module-ai_breakdown.html +3 -0
  90. package/docs/api/module-ai_classifier-Classifier.html +6 -0
  91. package/docs/api/module-ai_classifier.Classifier.html +3 -0
  92. package/docs/api/module-ai_classifier.html +3 -0
  93. package/docs/api/module-ai_council-Council.html +6 -0
  94. package/docs/api/module-ai_council.Council.html +3 -0
  95. package/docs/api/module-ai_council.html +3 -0
  96. package/docs/api/module-ai_embeddings-Embeddings.html +5 -0
  97. package/docs/api/module-ai_embeddings.Embeddings.html +3 -0
  98. package/docs/api/module-ai_embeddings.html +3 -0
  99. package/docs/api/module-ai_federation-ai-FederationAdvisor.html +6 -0
  100. package/docs/api/module-ai_federation-ai.FederationAdvisor.html +3 -0
  101. package/docs/api/module-ai_federation-ai.html +3 -0
  102. package/docs/api/module-ai_h3-ai-H3AI.html +6 -0
  103. package/docs/api/module-ai_h3-ai.H3AI.html +3 -0
  104. package/docs/api/module-ai_h3-ai.html +3 -0
  105. package/docs/api/module-ai_json-ops-JSONOps.html +5 -0
  106. package/docs/api/module-ai_json-ops.JSONOps.html +3 -0
  107. package/docs/api/module-ai_json-ops.html +3 -0
  108. package/docs/api/module-ai_llm-service-LLMService.html +5 -0
  109. package/docs/api/module-ai_llm-service.LLMService.html +3 -0
  110. package/docs/api/module-ai_llm-service.html +3 -0
  111. package/docs/api/module-ai_nl-query-NLQuery.html +5 -0
  112. package/docs/api/module-ai_nl-query.NLQuery.html +3 -0
  113. package/docs/api/module-ai_nl-query.html +3 -0
  114. package/docs/api/module-ai_relationships-RelationshipDiscovery.html +6 -0
  115. package/docs/api/module-ai_relationships.RelationshipDiscovery.html +3 -0
  116. package/docs/api/module-ai_relationships.html +3 -0
  117. package/docs/api/module-ai_schema-extractor-SchemaExtractor.html +5 -0
  118. package/docs/api/module-ai_schema-extractor.SchemaExtractor.html +3 -0
  119. package/docs/api/module-ai_schema-extractor.html +3 -0
  120. package/docs/api/module-ai_spatial-SpatialAnalysis.html +6 -0
  121. package/docs/api/module-ai_spatial.SpatialAnalysis.html +3 -0
  122. package/docs/api/module-ai_spatial.html +3 -0
  123. package/docs/api/module-ai_tts-TTS.html +5 -0
  124. package/docs/api/module-ai_tts.TTS.html +3 -0
  125. package/docs/api/module-ai_tts.html +3 -0
  126. package/docs/api/module-content_social-protocols.html +3 -0
  127. package/docs/api/module-core_holosphere-HoloSphere.html +6 -0
  128. package/docs/api/module-core_holosphere.HoloSphere.html +3 -0
  129. package/docs/api/module-core_holosphere.html +3 -0
  130. package/docs/api/module-crypto_nostr-utils.html +3 -0
  131. package/docs/api/module-crypto_secp256k1.html +3 -0
  132. package/docs/api/module-federation_hologram.html +3 -0
  133. package/docs/api/module-hierarchical_upcast.html +3 -0
  134. package/docs/api/module-holosphere-HoloSphereBase.html +3 -0
  135. package/docs/api/module-holosphere.html +3 -0
  136. package/docs/api/module-lib_ai-methods.html +3 -0
  137. package/docs/api/module-lib_contract-methods.html +3 -0
  138. package/docs/api/module-lib_errors-AuthorizationError.html +3 -0
  139. package/docs/api/module-lib_errors-ValidationError.html +3 -0
  140. package/docs/api/module-lib_errors.AuthorizationError.html +3 -0
  141. package/docs/api/module-lib_errors.ValidationError.html +3 -0
  142. package/docs/api/module-lib_errors.html +3 -0
  143. package/docs/api/module-lib_federation-methods.html +3 -0
  144. package/docs/api/module-lib_index.html +3 -0
  145. package/docs/api/module-schema_validator-ValidationError.html +3 -0
  146. package/docs/api/module-schema_validator.ValidationError.html +3 -0
  147. package/docs/api/module-schema_validator.html +3 -0
  148. package/docs/api/module-spatial_h3-operations.html +4 -0
  149. package/docs/api/module-storage_backend-factory.BackendFactory.html +3 -0
  150. package/docs/api/module-storage_backend-factory.html +3 -0
  151. package/docs/api/module-storage_backend-interface-StorageBackend.html +3 -0
  152. package/docs/api/module-storage_backend-interface.StorageBackend.html +3 -0
  153. package/docs/api/module-storage_backend-interface.html +3 -0
  154. package/docs/api/module-storage_backends_activitypub-backend-ActivityPubBackend.html +7 -0
  155. package/docs/api/module-storage_backends_activitypub-backend.ActivityPubBackend.html +3 -0
  156. package/docs/api/module-storage_backends_activitypub-backend.html +3 -0
  157. package/docs/api/module-storage_backends_activitypub_server-ActivityPubServer.html +8 -0
  158. package/docs/api/module-storage_backends_activitypub_server.ActivityPubServer.html +3 -0
  159. package/docs/api/module-storage_backends_activitypub_server.html +3 -0
  160. package/docs/api/module-storage_backends_gundb-backend-GunDBBackend.html +7 -0
  161. package/docs/api/module-storage_backends_gundb-backend.GunDBBackend.html +3 -0
  162. package/docs/api/module-storage_backends_gundb-backend.html +3 -0
  163. package/docs/api/module-storage_backends_nostr-backend-NostrBackend.html +8 -0
  164. package/docs/api/module-storage_backends_nostr-backend.NostrBackend.html +3 -0
  165. package/docs/api/module-storage_backends_nostr-backend.html +3 -0
  166. package/docs/api/module-storage_filesystem-storage-FileSystemStorage.html +5 -0
  167. package/docs/api/module-storage_filesystem-storage-browser-FileSystemStorage.html +3 -0
  168. package/docs/api/module-storage_filesystem-storage-browser.FileSystemStorage.html +3 -0
  169. package/docs/api/module-storage_filesystem-storage-browser.html +3 -0
  170. package/docs/api/module-storage_filesystem-storage.FileSystemStorage.html +3 -0
  171. package/docs/api/module-storage_filesystem-storage.html +3 -0
  172. package/docs/api/module-storage_global-tables.html +3 -0
  173. package/docs/api/module-storage_gun-async.html +3 -0
  174. package/docs/api/module-storage_gun-auth-GunAuth.html +5 -0
  175. package/docs/api/module-storage_gun-auth.GunAuth.html +3 -0
  176. package/docs/api/module-storage_gun-auth.html +3 -0
  177. package/docs/api/module-storage_gun-federation.html +3 -0
  178. package/docs/api/module-storage_gun-references-GunReferenceHandler.html +5 -0
  179. package/docs/api/module-storage_gun-references.GunReferenceHandler.html +3 -0
  180. package/docs/api/module-storage_gun-references.html +3 -0
  181. package/docs/api/module-storage_gun-schema-GunSchemaValidator.html +5 -0
  182. package/docs/api/module-storage_gun-schema.GunSchemaValidator.html +3 -0
  183. package/docs/api/module-storage_gun-schema.html +3 -0
  184. package/docs/api/module-storage_gun-wrapper.html +11 -0
  185. package/docs/api/module-storage_indexeddb-storage-IndexedDBStorage.html +5 -0
  186. package/docs/api/module-storage_indexeddb-storage.IndexedDBStorage.html +3 -0
  187. package/docs/api/module-storage_indexeddb-storage.html +3 -0
  188. package/docs/api/module-storage_key-storage-simple.html +3 -0
  189. package/docs/api/module-storage_key-storage.html +4 -0
  190. package/docs/api/module-storage_memory-storage-MemoryStorage.html +5 -0
  191. package/docs/api/module-storage_memory-storage.MemoryStorage.html +3 -0
  192. package/docs/api/module-storage_memory-storage.html +3 -0
  193. package/docs/api/module-storage_migration-MigrationTool.html +6 -0
  194. package/docs/api/module-storage_migration.MigrationTool.html +3 -0
  195. package/docs/api/module-storage_migration.html +3 -0
  196. package/docs/api/module-storage_nostr-async.html +18 -0
  197. package/docs/api/module-storage_nostr-client-LRUCache.html +3 -0
  198. package/docs/api/module-storage_nostr-client-NostrClient.html +7 -0
  199. package/docs/api/module-storage_nostr-client.NostrClient.html +15 -0
  200. package/docs/api/module-storage_nostr-client.html +6 -0
  201. package/docs/api/module-storage_nostr-wrapper.html +3 -0
  202. package/docs/api/module-storage_outbox-queue-OutboxQueue.html +4 -0
  203. package/docs/api/module-storage_outbox-queue.OutboxQueue.html +3 -0
  204. package/docs/api/module-storage_outbox-queue.html +3 -0
  205. package/docs/api/module-storage_persistent-storage-PersistentStorage.html +3 -0
  206. package/docs/api/module-storage_persistent-storage.html +4 -0
  207. package/docs/api/module-storage_sync-service-SyncService.html +5 -0
  208. package/docs/api/module-storage_sync-service.SyncService.html +3 -0
  209. package/docs/api/module-storage_sync-service.html +3 -0
  210. package/docs/api/module-storage_unified-storage.html +3 -0
  211. package/docs/api/module-subscriptions_manager.SubscriptionRegistry.html +3 -0
  212. package/docs/api/module-subscriptions_manager.html +3 -0
  213. package/docs/api/schema_validator.js.html +113 -0
  214. package/docs/api/scripts/core.js +726 -0
  215. package/docs/api/scripts/core.min.js +23 -0
  216. package/docs/api/scripts/resize.js +90 -0
  217. package/docs/api/scripts/search.js +265 -0
  218. package/docs/api/scripts/search.min.js +6 -0
  219. package/docs/api/scripts/third-party/Apache-License-2.0.txt +202 -0
  220. package/docs/api/scripts/third-party/fuse.js +9 -0
  221. package/docs/api/scripts/third-party/hljs-line-num-original.js +369 -0
  222. package/docs/api/scripts/third-party/hljs-line-num.js +1 -0
  223. package/docs/api/scripts/third-party/hljs-original.js +5171 -0
  224. package/docs/api/scripts/third-party/hljs.js +1 -0
  225. package/docs/api/scripts/third-party/popper.js +5 -0
  226. package/docs/api/scripts/third-party/tippy.js +1 -0
  227. package/docs/api/scripts/third-party/tocbot.js +672 -0
  228. package/docs/api/scripts/third-party/tocbot.min.js +1 -0
  229. package/docs/api/spatial_h3-operations.js.html +129 -0
  230. package/docs/api/storage_backend-factory.js.html +133 -0
  231. package/docs/api/storage_backend-interface.js.html +164 -0
  232. package/docs/api/storage_backends_activitypub-backend.js.html +298 -0
  233. package/docs/api/storage_backends_activitypub_server.js.html +678 -0
  234. package/docs/api/storage_backends_gundb-backend.js.html +878 -0
  235. package/docs/api/storage_backends_nostr-backend.js.html +254 -0
  236. package/docs/api/storage_filesystem-storage-browser.js.html +83 -0
  237. package/docs/api/storage_filesystem-storage.js.html +207 -0
  238. package/docs/api/storage_global-tables.js.html +116 -0
  239. package/docs/api/storage_gun-async.js.html +344 -0
  240. package/docs/api/storage_gun-auth.js.html +376 -0
  241. package/docs/api/storage_gun-federation.js.html +788 -0
  242. package/docs/api/storage_gun-references.js.html +212 -0
  243. package/docs/api/storage_gun-schema.js.html +309 -0
  244. package/docs/api/storage_gun-wrapper.js.html +645 -0
  245. package/docs/api/storage_indexeddb-storage.js.html +224 -0
  246. package/docs/api/storage_key-storage-simple.js.html +102 -0
  247. package/docs/api/storage_key-storage.js.html +171 -0
  248. package/docs/api/storage_memory-storage.js.html +128 -0
  249. package/docs/api/storage_migration.js.html +354 -0
  250. package/docs/api/storage_nostr-async.js.html +1076 -0
  251. package/docs/api/storage_nostr-client.js.html +1598 -0
  252. package/docs/api/storage_nostr-wrapper.js.html +218 -0
  253. package/docs/api/storage_outbox-queue.js.html +248 -0
  254. package/docs/api/storage_persistent-storage.js.html +160 -0
  255. package/docs/api/storage_sync-service.js.html +201 -0
  256. package/docs/api/storage_unified-storage.js.html +157 -0
  257. package/docs/api/styles/clean-jsdoc-theme-base.css +1159 -0
  258. package/docs/api/styles/clean-jsdoc-theme-dark.css +412 -0
  259. package/docs/api/styles/clean-jsdoc-theme-light.css +482 -0
  260. package/docs/api/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  261. package/docs/api/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  262. package/docs/api/styles/clean-jsdoc-theme.min.css +1 -0
  263. package/docs/api/subscriptions_manager.js.html +162 -0
  264. package/docs/contracts/api-interface.md +793 -0
  265. package/docs/data-model.md +476 -0
  266. package/docs/gun-async-usage.md +338 -0
  267. package/docs/plan.md +349 -0
  268. package/docs/quickstart.md +674 -0
  269. package/docs/research.md +362 -0
  270. package/docs/spec.md +244 -0
  271. package/docs/storage-backends.md +326 -0
  272. package/docs/tasks.md +947 -0
  273. package/examples/demo.html +47 -0
  274. package/examples/holosphere-widget.js +1242 -0
  275. package/examples/widget-demo.html +274 -0
  276. package/examples/widget.html +703 -0
  277. package/jsdoc.json +26 -0
  278. package/package.json +25 -7
  279. package/src/ai/aggregation.js +13 -2
  280. package/src/ai/breakdown.js +12 -2
  281. package/src/ai/classifier.js +14 -3
  282. package/src/ai/council.js +22 -7
  283. package/src/ai/embeddings.js +37 -15
  284. package/src/ai/federation-ai.js +13 -2
  285. package/src/ai/h3-ai.js +14 -2
  286. package/src/ai/index.js +16 -7
  287. package/src/ai/json-ops.js +18 -5
  288. package/src/ai/llm-service.js +62 -31
  289. package/src/ai/nl-query.js +12 -2
  290. package/src/ai/relationships.js +13 -2
  291. package/src/ai/schema-extractor.js +24 -10
  292. package/src/ai/spatial.js +13 -2
  293. package/src/ai/tts.js +25 -8
  294. package/src/cdn-entry.js +22 -0
  295. package/src/content/social-protocols.js +34 -25
  296. package/src/contracts/abis/Appreciative.json +1280 -0
  297. package/src/contracts/abis/AppreciativeFactory.json +101 -0
  298. package/src/contracts/abis/Bundle.json +1438 -0
  299. package/src/contracts/abis/BundleFactory.json +106 -0
  300. package/src/contracts/abis/Holon.json +881 -0
  301. package/src/contracts/abis/Holons.json +330 -0
  302. package/src/contracts/abis/Managed.json +1262 -0
  303. package/src/contracts/abis/ManagedFactory.json +149 -0
  304. package/src/contracts/abis/Membrane.json +261 -0
  305. package/src/contracts/abis/Splitter.json +1624 -0
  306. package/src/contracts/abis/SplitterFactory.json +220 -0
  307. package/src/contracts/abis/TestToken.json +321 -0
  308. package/src/contracts/abis/Zoned.json +1461 -0
  309. package/src/contracts/abis/ZonedFactory.json +154 -0
  310. package/src/contracts/chain-manager.js +403 -0
  311. package/src/contracts/deployer.js +500 -0
  312. package/src/contracts/event-listener.js +539 -0
  313. package/src/contracts/holon-contracts.js +359 -0
  314. package/src/contracts/index.js +82 -0
  315. package/src/contracts/networks.js +229 -0
  316. package/src/contracts/operations.js +687 -0
  317. package/src/contracts/queries.js +638 -0
  318. package/src/core/holosphere.js +487 -6
  319. package/src/crypto/nostr-utils.js +303 -0
  320. package/src/crypto/secp256k1.js +7 -2
  321. package/src/federation/handshake.js +475 -0
  322. package/src/federation/hologram.js +117 -3
  323. package/src/hierarchical/upcast.js +40 -25
  324. package/src/index.js +1501 -1909
  325. package/src/lib/ai-methods.js +657 -0
  326. package/src/lib/contract-methods.js +442 -0
  327. package/src/lib/errors.js +53 -0
  328. package/src/lib/federation-methods.js +345 -0
  329. package/src/lib/index.js +30 -0
  330. package/src/schema/validator.js +22 -3
  331. package/src/spatial/h3-operations.js +19 -3
  332. package/src/storage/backend-factory.js +7 -2
  333. package/src/storage/backend-interface.js +21 -2
  334. package/src/storage/backends/activitypub/server.js +25 -3
  335. package/src/storage/backends/activitypub-backend.js +25 -2
  336. package/src/storage/backends/gundb-backend.js +692 -50
  337. package/src/storage/backends/nostr-backend.js +116 -1
  338. package/src/storage/filesystem-storage-browser.js +42 -2
  339. package/src/storage/filesystem-storage.js +72 -5
  340. package/src/storage/global-tables.js +35 -3
  341. package/src/storage/gun-async.js +75 -15
  342. package/src/storage/gun-auth.js +373 -0
  343. package/src/storage/gun-federation.js +785 -0
  344. package/src/storage/gun-references.js +209 -0
  345. package/src/storage/gun-schema.js +306 -0
  346. package/src/storage/gun-wrapper.js +475 -54
  347. package/src/storage/indexeddb-storage.js +112 -13
  348. package/src/storage/key-storage-simple.js +32 -9
  349. package/src/storage/key-storage.js +45 -13
  350. package/src/storage/memory-storage.js +68 -2
  351. package/src/storage/migration.js +20 -7
  352. package/src/storage/nostr-async.js +412 -122
  353. package/src/storage/nostr-client.js +749 -76
  354. package/src/storage/nostr-wrapper.js +6 -2
  355. package/src/storage/outbox-queue.js +55 -18
  356. package/src/storage/persistent-storage.js +62 -14
  357. package/src/storage/sync-service.js +51 -17
  358. package/src/storage/unified-storage.js +154 -0
  359. package/src/subscriptions/manager.js +34 -17
  360. package/types/index.d.ts +133 -0
  361. package/vite.config.cdn.js +60 -0
  362. package/tests/unit/ai/aggregation.test.js +0 -295
  363. package/tests/unit/ai/breakdown.test.js +0 -446
  364. package/tests/unit/ai/classifier.test.js +0 -294
  365. package/tests/unit/ai/council.test.js +0 -262
  366. package/tests/unit/ai/embeddings.test.js +0 -384
  367. package/tests/unit/ai/federation-ai.test.js +0 -344
  368. package/tests/unit/ai/h3-ai.test.js +0 -458
  369. package/tests/unit/ai/index.test.js +0 -304
  370. package/tests/unit/ai/json-ops.test.js +0 -307
  371. package/tests/unit/ai/llm-service.test.js +0 -390
  372. package/tests/unit/ai/nl-query.test.js +0 -383
  373. package/tests/unit/ai/relationships.test.js +0 -311
  374. package/tests/unit/ai/schema-extractor.test.js +0 -384
  375. package/tests/unit/ai/spatial.test.js +0 -279
  376. package/tests/unit/ai/tts.test.js +0 -279
  377. package/tests/unit/content.test.js +0 -332
  378. package/tests/unit/contract/core.test.js +0 -88
  379. package/tests/unit/contract/crypto.test.js +0 -198
  380. package/tests/unit/contract/data.test.js +0 -223
  381. package/tests/unit/contract/federation.test.js +0 -181
  382. package/tests/unit/contract/hierarchical.test.js +0 -113
  383. package/tests/unit/contract/schema.test.js +0 -114
  384. package/tests/unit/contract/social.test.js +0 -217
  385. package/tests/unit/contract/spatial.test.js +0 -110
  386. package/tests/unit/contract/subscriptions.test.js +0 -128
  387. package/tests/unit/contract/utils.test.js +0 -159
  388. package/tests/unit/core.test.js +0 -152
  389. package/tests/unit/crypto.test.js +0 -328
  390. package/tests/unit/federation.test.js +0 -234
  391. package/tests/unit/gun-async.test.js +0 -252
  392. package/tests/unit/hierarchical.test.js +0 -399
  393. package/tests/unit/integration/scenario-01-geographic-storage.test.js +0 -74
  394. package/tests/unit/integration/scenario-02-federation.test.js +0 -76
  395. package/tests/unit/integration/scenario-03-subscriptions.test.js +0 -102
  396. package/tests/unit/integration/scenario-04-validation.test.js +0 -129
  397. package/tests/unit/integration/scenario-05-hierarchy.test.js +0 -125
  398. package/tests/unit/integration/scenario-06-social.test.js +0 -135
  399. package/tests/unit/integration/scenario-07-persistence.test.js +0 -130
  400. package/tests/unit/integration/scenario-08-authorization.test.js +0 -161
  401. package/tests/unit/integration/scenario-09-cross-dimensional.test.js +0 -139
  402. package/tests/unit/integration/scenario-10-cross-holosphere-capabilities.test.js +0 -357
  403. package/tests/unit/integration/scenario-11-cross-holosphere-federation.test.js +0 -410
  404. package/tests/unit/integration/scenario-12-capability-federated-read.test.js +0 -719
  405. package/tests/unit/performance/benchmark.test.js +0 -85
  406. package/tests/unit/schema.test.js +0 -213
  407. package/tests/unit/spatial.test.js +0 -158
  408. package/tests/unit/storage.test.js +0 -195
  409. package/tests/unit/subscriptions.test.js +0 -328
  410. package/tests/unit/test-data-permanence-debug.js +0 -197
  411. package/tests/unit/test-data-permanence.js +0 -340
  412. package/tests/unit/test-key-persistence-fixed.js +0 -148
  413. package/tests/unit/test-key-persistence.js +0 -172
  414. package/tests/unit/test-relay-permanence.js +0 -376
  415. package/tests/unit/test-second-node.js +0 -95
  416. package/tests/unit/test-simple-write.js +0 -89
  417. /package/{cleanup-test-data.js → scripts/cleanup-test-data.js} +0 -0
  418. /package/{test-ai-real-api.js → scripts/test-ai-real-api.js} +0 -0
@@ -0,0 +1,442 @@
1
+ /**
2
+ * @fileoverview Blockchain contract methods mixin for HoloSphere.
3
+ * Provides comprehensive smart contract operations including deployment, member management,
4
+ * fund distribution, and governance features across multiple contract types.
5
+ * @module lib/contract-methods
6
+ */
7
+
8
+ import { ChainManager } from '../contracts/chain-manager.js';
9
+ import { ContractDeployer } from '../contracts/deployer.js';
10
+ import { HolonContracts } from '../contracts/holon-contracts.js';
11
+ import * as networks from '../contracts/networks.js';
12
+
13
+ /**
14
+ * Mixin that adds blockchain contract methods to a HoloSphere class.
15
+ * Provides initialization, deployment, and interaction with Ethereum smart contracts
16
+ * including Splitter, Managed, Zoned, Appreciative, and Bundle contract types.
17
+ * @param {Class} Base - Base class to extend
18
+ * @returns {Class} Extended class with contract methods
19
+ */
20
+ export function withContractMethods(Base) {
21
+ return class extends Base {
22
+ /**
23
+ * Check if contracts are initialized.
24
+ * @returns {boolean} True if contracts initialized
25
+ */
26
+ hasContracts() {
27
+ return this._contracts !== null;
28
+ }
29
+
30
+ /**
31
+ * Ensure contracts are initialized, throw if not.
32
+ * @private
33
+ * @returns {Object} Contracts object
34
+ * @throws {Error} If contracts not initialized
35
+ */
36
+ _requireContracts() {
37
+ if (!this._contracts) {
38
+ throw new Error('Contracts not initialized. Call initContracts() first.');
39
+ }
40
+ return this._contracts;
41
+ }
42
+
43
+ /**
44
+ * Initialize contracts with server-side configuration (Node.js).
45
+ * @param {Object} config - Contract configuration
46
+ * @param {string} config.network - Network name (mainnet, sepolia, hardhat, etc.)
47
+ * @param {string} config.privateKey - Private key for signing transactions
48
+ * @param {string} [config.rpcUrl] - Optional custom RPC URL
49
+ * @returns {Promise<Object>} Connection info with network details and address
50
+ */
51
+ async initContracts(config) {
52
+ const chainManager = new ChainManager(config);
53
+ const connectionInfo = await chainManager.connect(
54
+ config.network,
55
+ config.privateKey,
56
+ config.rpcUrl
57
+ );
58
+
59
+ const deployer = new ContractDeployer(chainManager);
60
+ const holonContracts = new HolonContracts(chainManager, deployer);
61
+
62
+ this._contracts = {
63
+ chainManager,
64
+ deployer,
65
+ holonContracts,
66
+ network: config.network
67
+ };
68
+
69
+ return {
70
+ ...connectionInfo,
71
+ address: config.privateKey ? await chainManager.getAddress() : null
72
+ };
73
+ }
74
+
75
+ /**
76
+ * Initialize contracts with browser wallet (MetaMask, etc.).
77
+ * @param {string} network - Network name to connect to
78
+ * @returns {Promise<Object>} Connection info with network details
79
+ */
80
+ async initContractsBrowser(network) {
81
+ const chainManager = new ChainManager();
82
+ const connectionInfo = await chainManager.connectBrowser(network);
83
+
84
+ const deployer = new ContractDeployer(chainManager);
85
+ const holonContracts = new HolonContracts(chainManager, deployer);
86
+
87
+ this._contracts = {
88
+ chainManager,
89
+ deployer,
90
+ holonContracts,
91
+ network: chainManager.networkName
92
+ };
93
+
94
+ return connectionInfo;
95
+ }
96
+
97
+ /**
98
+ * Deploy all core contracts (factory, templates, etc.).
99
+ * @param {Object} [options={}] - Deployment options
100
+ * @returns {Promise<Object>} Deployment result with addresses
101
+ */
102
+ async deployContracts(options = {}) {
103
+ const { deployer } = this._requireContracts();
104
+ return deployer.deployAll(options);
105
+ }
106
+
107
+ /**
108
+ * Load previously deployed contract addresses.
109
+ * @param {Object} addresses - Map of contract names to addresses
110
+ */
111
+ loadDeployedContracts(addresses) {
112
+ const { deployer } = this._requireContracts();
113
+ deployer.loadDeployedAddresses(addresses);
114
+ }
115
+
116
+ /**
117
+ * Get all deployed contract addresses.
118
+ * @returns {Object} Map of contract names to addresses
119
+ */
120
+ getDeployedContracts() {
121
+ const { deployer } = this._requireContracts();
122
+ return deployer.getDeployedAddresses();
123
+ }
124
+
125
+ /**
126
+ * Deploy a new contract for a holon.
127
+ * @param {string} holonId - Holon ID to deploy contract for
128
+ * @param {string} [type='Splitter'] - Contract type (Splitter, Managed, Zoned, Appreciative, Bundle)
129
+ * @param {Object} [options={}] - Deployment options
130
+ * @returns {Promise<Object>} Deployment result with contract address
131
+ */
132
+ async deployHolonContract(holonId, type = 'Splitter', options = {}) {
133
+ const { holonContracts } = this._requireContracts();
134
+ return holonContracts.deploy(holonId, type, options);
135
+ }
136
+
137
+ /**
138
+ * Link an existing contract to a holon.
139
+ * @param {string} holonId - Holon ID to link
140
+ * @param {string} contractAddress - Contract address to link
141
+ * @param {string} [type='Splitter'] - Contract type
142
+ * @returns {Promise<void>}
143
+ */
144
+ async linkHolonContract(holonId, contractAddress, type = 'Splitter') {
145
+ const { holonContracts } = this._requireContracts();
146
+ return holonContracts.link(holonId, contractAddress, type);
147
+ }
148
+
149
+ /**
150
+ * Unlink contract from a holon.
151
+ * @param {string} holonId - Holon ID to unlink
152
+ * @returns {Promise<void>}
153
+ */
154
+ async unlinkHolonContract(holonId) {
155
+ const { holonContracts } = this._requireContracts();
156
+ return holonContracts.unlink(holonId);
157
+ }
158
+
159
+ /**
160
+ * Get contract instance for a holon.
161
+ * @param {string} holonId - Holon ID
162
+ * @returns {Object|null} Contract instance or null if not found
163
+ */
164
+ getHolonContract(holonId) {
165
+ if (!this._contracts) return null;
166
+ return this._contracts.holonContracts.getContract(holonId);
167
+ }
168
+
169
+ /**
170
+ * Get contract address for a holon.
171
+ * @param {string} holonId - Holon ID
172
+ * @returns {string|null} Contract address or null if not found
173
+ */
174
+ getHolonContractAddress(holonId) {
175
+ if (!this._contracts) return null;
176
+ return this._contracts.holonContracts.getAddress(holonId);
177
+ }
178
+
179
+ /**
180
+ * Check if holon has a linked contract.
181
+ * @param {string} holonId - Holon ID to check
182
+ * @returns {boolean} True if contract exists
183
+ */
184
+ hasHolonContract(holonId) {
185
+ if (!this._contracts) return false;
186
+ return this._contracts.holonContracts.hasContract(holonId);
187
+ }
188
+
189
+ /**
190
+ * List all holon contracts.
191
+ * @returns {Array<{holonId: string, address: string, type: string}>} Array of holon contract info
192
+ */
193
+ listHolonContracts() {
194
+ if (!this._contracts) return [];
195
+ return this._contracts.holonContracts.listAll();
196
+ }
197
+
198
+ /**
199
+ * Get operations interface for a holon contract.
200
+ * @param {string} holonId - Holon ID
201
+ * @returns {Object} Operations object with contract methods
202
+ * @throws {Error} If holon has no contract
203
+ */
204
+ getHolonOperations(holonId) {
205
+ const { holonContracts } = this._requireContracts();
206
+ return holonContracts.requireOperations(holonId);
207
+ }
208
+
209
+ // ========== MEMBER MANAGEMENT ==========
210
+
211
+ /**
212
+ * Add a member to holon contract.
213
+ * @param {string} holonId - Holon ID
214
+ * @param {string} userId - User ID to add
215
+ * @returns {Promise<Object>} Transaction result
216
+ */
217
+ async contractAddMember(holonId, userId) {
218
+ return this.getHolonOperations(holonId).addMember(userId);
219
+ }
220
+
221
+ /**
222
+ * Add multiple members to holon contract.
223
+ * @param {string} holonId - Holon ID
224
+ * @param {string[]} userIds - Array of user IDs to add
225
+ * @returns {Promise<Object>} Transaction result
226
+ */
227
+ async contractAddMembers(holonId, userIds) {
228
+ return this.getHolonOperations(holonId).addMembers(userIds);
229
+ }
230
+
231
+ /**
232
+ * Check if user is a member of holon contract.
233
+ * @param {string} holonId - Holon ID
234
+ * @param {string} userId - User ID to check
235
+ * @returns {Promise<boolean>} True if user is member
236
+ */
237
+ async contractIsMember(holonId, userId) {
238
+ return this.getHolonOperations(holonId).isMember(userId);
239
+ }
240
+
241
+ // ========== FUND DISTRIBUTION ==========
242
+
243
+ /**
244
+ * Distribute ERC20 token rewards to contract members.
245
+ * @param {string} holonId - Holon ID
246
+ * @param {string} tokenAddress - ERC20 token contract address
247
+ * @param {string|number} amount - Amount to distribute
248
+ * @returns {Promise<Object>} Transaction result
249
+ */
250
+ async contractReward(holonId, tokenAddress, amount) {
251
+ return this.getHolonOperations(holonId).reward(tokenAddress, amount);
252
+ }
253
+
254
+ /**
255
+ * Distribute ETH rewards to contract members.
256
+ * @param {string} holonId - Holon ID
257
+ * @param {string|number} amount - Amount of ETH to distribute (in wei)
258
+ * @returns {Promise<Object>} Transaction result
259
+ */
260
+ async contractRewardEth(holonId, amount) {
261
+ return this.getHolonOperations(holonId).rewardEth(amount);
262
+ }
263
+
264
+ /**
265
+ * Send ETH to holon contract.
266
+ * @param {string} holonId - Holon ID
267
+ * @param {string|number} amount - Amount of ETH to send (in wei)
268
+ * @returns {Promise<Object>} Transaction result
269
+ */
270
+ async contractSendEth(holonId, amount) {
271
+ return this.getHolonOperations(holonId).sendEth(amount);
272
+ }
273
+
274
+ /**
275
+ * Claim user's share of distributed funds.
276
+ * @param {string} holonId - Holon ID
277
+ * @param {string} userId - User ID claiming funds
278
+ * @param {string} beneficiaryAddress - Address to send claimed funds to
279
+ * @returns {Promise<Object>} Transaction result
280
+ */
281
+ async contractClaim(holonId, userId, beneficiaryAddress) {
282
+ return this.getHolonOperations(holonId).claim(userId, beneficiaryAddress);
283
+ }
284
+
285
+ /**
286
+ * Get user's claimable ETH balance.
287
+ * @param {string} holonId - Holon ID
288
+ * @param {string} userId - User ID to check
289
+ * @returns {Promise<string>} ETH balance in wei
290
+ */
291
+ async contractGetEthBalance(holonId, userId) {
292
+ return this.getHolonOperations(holonId).getEthBalance(userId);
293
+ }
294
+
295
+ /**
296
+ * Get user's claimable token balance.
297
+ * @param {string} holonId - Holon ID
298
+ * @param {string} userId - User ID to check
299
+ * @param {string} tokenAddress - Token contract address
300
+ * @returns {Promise<string>} Token balance
301
+ */
302
+ async contractGetTokenBalance(holonId, userId, tokenAddress) {
303
+ return this.getHolonOperations(holonId).getTokenBalance(userId, tokenAddress);
304
+ }
305
+
306
+ // ========== SPLITTER OPERATIONS ==========
307
+
308
+ async contractSetSplit(holonId, internalPct, externalPct) {
309
+ return this.getHolonOperations(holonId).setContractSplit(internalPct, externalPct);
310
+ }
311
+
312
+ async contractGetSplit(holonId) {
313
+ return this.getHolonOperations(holonId).getContractSplit();
314
+ }
315
+
316
+ async contractCreateManaged(holonId, creatorUserId, name) {
317
+ return this.getHolonOperations(holonId).createManagedContract(creatorUserId, name);
318
+ }
319
+
320
+ async contractCreateZoned(holonId, creatorUserId, name, nZones = 6) {
321
+ return this.getHolonOperations(holonId).createZonedContract(creatorUserId, name, nZones);
322
+ }
323
+
324
+ async contractGetChildContracts(holonId) {
325
+ return this.getHolonOperations(holonId).getChildContracts();
326
+ }
327
+
328
+ // ========== MANAGED OPERATIONS ==========
329
+
330
+ async contractSetAppreciation(holonId, userIds, amounts) {
331
+ return this.getHolonOperations(holonId).setAppreciation(userIds, amounts);
332
+ }
333
+
334
+ async contractGetAppreciation(holonId, userId) {
335
+ return this.getHolonOperations(holonId).getAppreciation(userId);
336
+ }
337
+
338
+ async contractGetTotalAppreciation(holonId) {
339
+ return this.getHolonOperations(holonId).getTotalAppreciation();
340
+ }
341
+
342
+ // ========== ZONED OPERATIONS ==========
343
+
344
+ async contractAddToZone(holonId, senderUserId, userId, zone) {
345
+ return this.getHolonOperations(holonId).addToZone(senderUserId, userId, zone);
346
+ }
347
+
348
+ async contractRemoveFromZone(holonId, senderUserId, userId) {
349
+ return this.getHolonOperations(holonId).removeFromZone(senderUserId, userId);
350
+ }
351
+
352
+ async contractGetZone(holonId, userId) {
353
+ return this.getHolonOperations(holonId).getZone(userId);
354
+ }
355
+
356
+ async contractSetZoneParams(holonId, senderUserId, a, b, c) {
357
+ return this.getHolonOperations(holonId).setZoneParameters(senderUserId, a, b, c);
358
+ }
359
+
360
+ // ========== APPRECIATIVE OPERATIONS ==========
361
+
362
+ async contractAppreciate(holonId, fromUserId, toUserId, amount) {
363
+ return this.getHolonOperations(holonId).appreciate(fromUserId, toUserId, amount);
364
+ }
365
+
366
+ async contractGetAppreciationGiven(holonId, userId) {
367
+ return this.getHolonOperations(holonId).getAppreciationGiven(userId);
368
+ }
369
+
370
+ async contractGetAppreciationReceived(holonId, userId) {
371
+ return this.getHolonOperations(holonId).getAppreciationReceived(userId);
372
+ }
373
+
374
+ // ========== BUNDLE OPERATIONS ==========
375
+
376
+ async contractSetSteepness(holonId, steepness) {
377
+ return this.getHolonOperations(holonId).setSteepness(steepness);
378
+ }
379
+
380
+ async contractGetSteepness(holonId) {
381
+ return this.getHolonOperations(holonId).getSteepness();
382
+ }
383
+
384
+ async contractSetInteriorSplit(holonId, userIds, percentages) {
385
+ return this.getHolonOperations(holonId).setInteriorSplit(userIds, percentages);
386
+ }
387
+
388
+ // ========== GOVERNANCE ==========
389
+
390
+ async contractStartElection(holonId) {
391
+ return this.getHolonOperations(holonId).startElection();
392
+ }
393
+
394
+ async contractNominate(holonId) {
395
+ return this.getHolonOperations(holonId).nominateSelf();
396
+ }
397
+
398
+ async contractVote(holonId, nomineeAddress) {
399
+ return this.getHolonOperations(holonId).vote(nomineeAddress);
400
+ }
401
+
402
+ async contractFinalizeElection(holonId) {
403
+ return this.getHolonOperations(holonId).finalizeElection();
404
+ }
405
+
406
+ // ========== READ-ONLY QUERIES ==========
407
+
408
+ async contractGetName(holonId) {
409
+ return this.getHolonOperations(holonId).getName();
410
+ }
411
+
412
+ async contractGetOwner(holonId) {
413
+ return this.getHolonOperations(holonId).getOwner();
414
+ }
415
+
416
+ async contractGetBotAddress(holonId) {
417
+ return this.getHolonOperations(holonId).getBotAddress();
418
+ }
419
+
420
+ async contractGetTotalDeposited(holonId, tokenAddress) {
421
+ return this.getHolonOperations(holonId).getTotalDeposited(tokenAddress);
422
+ }
423
+
424
+ /**
425
+ * Get network utility functions.
426
+ * @returns {Object} Network utilities module
427
+ */
428
+ getNetworkUtils() {
429
+ return networks;
430
+ }
431
+
432
+ /**
433
+ * Get the chain manager instance.
434
+ * @returns {Object|null} ChainManager instance or null if not initialized
435
+ */
436
+ getChainManager() {
437
+ return this._contracts?.chainManager || null;
438
+ }
439
+ };
440
+ }
441
+
442
+ export default withContractMethods;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview HoloSphere Custom Error Classes.
3
+ *
4
+ * Provides specialized error types for authorization and validation failures.
5
+ *
6
+ * @module lib/errors
7
+ */
8
+
9
+ /**
10
+ * Error thrown when an operation fails due to insufficient permissions.
11
+ *
12
+ * @class AuthorizationError
13
+ * @extends Error
14
+ */
15
+ export class AuthorizationError extends Error {
16
+ /**
17
+ * Creates a new AuthorizationError.
18
+ *
19
+ * @param {string} message - Error message describing the authorization failure
20
+ * @param {string|null} [requiredPermission=null] - The permission that was required
21
+ */
22
+ constructor(message, requiredPermission = null) {
23
+ super(message);
24
+ /** @type {string} */
25
+ this.name = 'AuthorizationError';
26
+ /** @type {string|null} */
27
+ this.requiredPermission = requiredPermission;
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Error thrown when data validation fails.
33
+ *
34
+ * @class ValidationError
35
+ * @extends Error
36
+ */
37
+ export class ValidationError extends Error {
38
+ /**
39
+ * Creates a new ValidationError.
40
+ *
41
+ * @param {string} message - Error message describing the validation failure
42
+ */
43
+ constructor(message) {
44
+ super(message);
45
+ /** @type {string} */
46
+ this.name = 'ValidationError';
47
+ }
48
+ }
49
+
50
+ export default {
51
+ AuthorizationError,
52
+ ValidationError
53
+ };