holosphere 2.0.0-alpha1 → 2.0.0-alpha11

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 (416) 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/cjs/holosphere.cjs +2 -0
  19. package/dist/cjs/holosphere.cjs.map +1 -0
  20. package/dist/esm/holosphere.js +53 -0
  21. package/dist/esm/holosphere.js.map +1 -0
  22. package/dist/index-Bl6rM1NW.js +15104 -0
  23. package/dist/index-Bl6rM1NW.js.map +1 -0
  24. package/dist/index-Bwg3OzRM.cjs +12 -0
  25. package/dist/index-Bwg3OzRM.cjs.map +1 -0
  26. package/dist/index-D-jZhliX.js +40274 -0
  27. package/dist/index-D-jZhliX.js.map +1 -0
  28. package/dist/index-Dc6Z8Aob.cjs +18 -0
  29. package/dist/index-Dc6Z8Aob.cjs.map +1 -0
  30. package/dist/indexeddb-storage-5eiUNsHC.js +176 -0
  31. package/dist/indexeddb-storage-5eiUNsHC.js.map +1 -0
  32. package/dist/indexeddb-storage-FNFUVvTJ.cjs +2 -0
  33. package/dist/indexeddb-storage-FNFUVvTJ.cjs.map +1 -0
  34. package/dist/memory-storage-CI-gfmuG.js +91 -0
  35. package/dist/memory-storage-CI-gfmuG.js.map +1 -0
  36. package/dist/memory-storage-DMt36uZO.cjs +2 -0
  37. package/dist/memory-storage-DMt36uZO.cjs.map +1 -0
  38. package/dist/secp256k1-CEwJNcfV.js +1890 -0
  39. package/dist/secp256k1-CEwJNcfV.js.map +1 -0
  40. package/dist/secp256k1-CiEONUnj.cjs +12 -0
  41. package/dist/secp256k1-CiEONUnj.cjs.map +1 -0
  42. package/docs/CONTRACTS.md +797 -0
  43. package/docs/FOSDEM_PROPOSAL.md +388 -0
  44. package/docs/LOCALFIRST.md +266 -0
  45. package/docs/api/ai_aggregation.js.html +333 -0
  46. package/docs/api/ai_breakdown.js.html +524 -0
  47. package/docs/api/ai_classifier.js.html +231 -0
  48. package/docs/api/ai_council.js.html +246 -0
  49. package/docs/api/ai_embeddings.js.html +304 -0
  50. package/docs/api/ai_federation-ai.js.html +338 -0
  51. package/docs/api/ai_h3-ai.js.html +970 -0
  52. package/docs/api/ai_index.js.html +124 -0
  53. package/docs/api/ai_json-ops.js.html +241 -0
  54. package/docs/api/ai_llm-service.js.html +239 -0
  55. package/docs/api/ai_nl-query.js.html +236 -0
  56. package/docs/api/ai_relationships.js.html +367 -0
  57. package/docs/api/ai_schema-extractor.js.html +235 -0
  58. package/docs/api/ai_spatial.js.html +307 -0
  59. package/docs/api/ai_tts.js.html +214 -0
  60. package/docs/api/content_social-protocols.js.html +180 -0
  61. package/docs/api/core_holosphere.js.html +757 -0
  62. package/docs/api/crypto_nostr-utils.js.html +306 -0
  63. package/docs/api/crypto_secp256k1.js.html +267 -0
  64. package/docs/api/data/search.json +1 -0
  65. package/docs/api/federation_discovery.js.html +337 -0
  66. package/docs/api/federation_handshake.js.html +478 -0
  67. package/docs/api/federation_hologram.js.html +1053 -0
  68. package/docs/api/federation_registry.js.html +389 -0
  69. package/docs/api/fonts/Inconsolata-Regular.ttf +0 -0
  70. package/docs/api/fonts/OpenSans-Regular.ttf +0 -0
  71. package/docs/api/fonts/WorkSans-Bold.ttf +0 -0
  72. package/docs/api/global.html +3 -0
  73. package/docs/api/hierarchical_upcast.js.html +128 -0
  74. package/docs/api/index.html +265 -0
  75. package/docs/api/index.js.html +1868 -0
  76. package/docs/api/lib_ai-methods.js.html +660 -0
  77. package/docs/api/lib_contract-methods.js.html +445 -0
  78. package/docs/api/lib_errors.js.html +56 -0
  79. package/docs/api/lib_federation-methods.js.html +348 -0
  80. package/docs/api/lib_index.js.html +33 -0
  81. package/docs/api/module-ai.html +5 -0
  82. package/docs/api/module-ai_aggregation-SmartAggregation.html +6 -0
  83. package/docs/api/module-ai_aggregation.SmartAggregation.html +3 -0
  84. package/docs/api/module-ai_aggregation.html +3 -0
  85. package/docs/api/module-ai_breakdown-TaskBreakdown.html +5 -0
  86. package/docs/api/module-ai_breakdown.TaskBreakdown.html +3 -0
  87. package/docs/api/module-ai_breakdown.html +3 -0
  88. package/docs/api/module-ai_classifier-Classifier.html +6 -0
  89. package/docs/api/module-ai_classifier.Classifier.html +3 -0
  90. package/docs/api/module-ai_classifier.html +3 -0
  91. package/docs/api/module-ai_council-Council.html +6 -0
  92. package/docs/api/module-ai_council.Council.html +3 -0
  93. package/docs/api/module-ai_council.html +3 -0
  94. package/docs/api/module-ai_embeddings-Embeddings.html +5 -0
  95. package/docs/api/module-ai_embeddings.Embeddings.html +3 -0
  96. package/docs/api/module-ai_embeddings.html +3 -0
  97. package/docs/api/module-ai_federation-ai-FederationAdvisor.html +6 -0
  98. package/docs/api/module-ai_federation-ai.FederationAdvisor.html +3 -0
  99. package/docs/api/module-ai_federation-ai.html +3 -0
  100. package/docs/api/module-ai_h3-ai-H3AI.html +6 -0
  101. package/docs/api/module-ai_h3-ai.H3AI.html +3 -0
  102. package/docs/api/module-ai_h3-ai.html +3 -0
  103. package/docs/api/module-ai_json-ops-JSONOps.html +5 -0
  104. package/docs/api/module-ai_json-ops.JSONOps.html +3 -0
  105. package/docs/api/module-ai_json-ops.html +3 -0
  106. package/docs/api/module-ai_llm-service-LLMService.html +5 -0
  107. package/docs/api/module-ai_llm-service.LLMService.html +3 -0
  108. package/docs/api/module-ai_llm-service.html +3 -0
  109. package/docs/api/module-ai_nl-query-NLQuery.html +5 -0
  110. package/docs/api/module-ai_nl-query.NLQuery.html +3 -0
  111. package/docs/api/module-ai_nl-query.html +3 -0
  112. package/docs/api/module-ai_relationships-RelationshipDiscovery.html +6 -0
  113. package/docs/api/module-ai_relationships.RelationshipDiscovery.html +3 -0
  114. package/docs/api/module-ai_relationships.html +3 -0
  115. package/docs/api/module-ai_schema-extractor-SchemaExtractor.html +5 -0
  116. package/docs/api/module-ai_schema-extractor.SchemaExtractor.html +3 -0
  117. package/docs/api/module-ai_schema-extractor.html +3 -0
  118. package/docs/api/module-ai_spatial-SpatialAnalysis.html +6 -0
  119. package/docs/api/module-ai_spatial.SpatialAnalysis.html +3 -0
  120. package/docs/api/module-ai_spatial.html +3 -0
  121. package/docs/api/module-ai_tts-TTS.html +5 -0
  122. package/docs/api/module-ai_tts.TTS.html +3 -0
  123. package/docs/api/module-ai_tts.html +3 -0
  124. package/docs/api/module-content_social-protocols.html +3 -0
  125. package/docs/api/module-core_holosphere-HoloSphere.html +6 -0
  126. package/docs/api/module-core_holosphere.HoloSphere.html +3 -0
  127. package/docs/api/module-core_holosphere.html +3 -0
  128. package/docs/api/module-crypto_nostr-utils.html +3 -0
  129. package/docs/api/module-crypto_secp256k1.html +3 -0
  130. package/docs/api/module-federation_hologram.html +3 -0
  131. package/docs/api/module-hierarchical_upcast.html +3 -0
  132. package/docs/api/module-holosphere-HoloSphereBase.html +3 -0
  133. package/docs/api/module-holosphere.html +3 -0
  134. package/docs/api/module-lib_ai-methods.html +3 -0
  135. package/docs/api/module-lib_contract-methods.html +3 -0
  136. package/docs/api/module-lib_errors-AuthorizationError.html +3 -0
  137. package/docs/api/module-lib_errors-ValidationError.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.html +3 -0
  141. package/docs/api/module-lib_federation-methods.html +3 -0
  142. package/docs/api/module-lib_index.html +3 -0
  143. package/docs/api/module-schema_validator-ValidationError.html +3 -0
  144. package/docs/api/module-schema_validator.ValidationError.html +3 -0
  145. package/docs/api/module-schema_validator.html +3 -0
  146. package/docs/api/module-spatial_h3-operations.html +4 -0
  147. package/docs/api/module-storage_backend-factory.BackendFactory.html +3 -0
  148. package/docs/api/module-storage_backend-factory.html +3 -0
  149. package/docs/api/module-storage_backend-interface-StorageBackend.html +3 -0
  150. package/docs/api/module-storage_backend-interface.StorageBackend.html +3 -0
  151. package/docs/api/module-storage_backend-interface.html +3 -0
  152. package/docs/api/module-storage_backends_activitypub-backend-ActivityPubBackend.html +7 -0
  153. package/docs/api/module-storage_backends_activitypub-backend.ActivityPubBackend.html +3 -0
  154. package/docs/api/module-storage_backends_activitypub-backend.html +3 -0
  155. package/docs/api/module-storage_backends_activitypub_server-ActivityPubServer.html +8 -0
  156. package/docs/api/module-storage_backends_activitypub_server.ActivityPubServer.html +3 -0
  157. package/docs/api/module-storage_backends_activitypub_server.html +3 -0
  158. package/docs/api/module-storage_backends_gundb-backend-GunDBBackend.html +7 -0
  159. package/docs/api/module-storage_backends_gundb-backend.GunDBBackend.html +3 -0
  160. package/docs/api/module-storage_backends_gundb-backend.html +3 -0
  161. package/docs/api/module-storage_backends_nostr-backend-NostrBackend.html +8 -0
  162. package/docs/api/module-storage_backends_nostr-backend.NostrBackend.html +3 -0
  163. package/docs/api/module-storage_backends_nostr-backend.html +3 -0
  164. package/docs/api/module-storage_filesystem-storage-FileSystemStorage.html +5 -0
  165. package/docs/api/module-storage_filesystem-storage-browser-FileSystemStorage.html +3 -0
  166. package/docs/api/module-storage_filesystem-storage-browser.FileSystemStorage.html +3 -0
  167. package/docs/api/module-storage_filesystem-storage-browser.html +3 -0
  168. package/docs/api/module-storage_filesystem-storage.FileSystemStorage.html +3 -0
  169. package/docs/api/module-storage_filesystem-storage.html +3 -0
  170. package/docs/api/module-storage_global-tables.html +3 -0
  171. package/docs/api/module-storage_gun-async.html +3 -0
  172. package/docs/api/module-storage_gun-auth-GunAuth.html +5 -0
  173. package/docs/api/module-storage_gun-auth.GunAuth.html +3 -0
  174. package/docs/api/module-storage_gun-auth.html +3 -0
  175. package/docs/api/module-storage_gun-federation.html +3 -0
  176. package/docs/api/module-storage_gun-references-GunReferenceHandler.html +5 -0
  177. package/docs/api/module-storage_gun-references.GunReferenceHandler.html +3 -0
  178. package/docs/api/module-storage_gun-references.html +3 -0
  179. package/docs/api/module-storage_gun-schema-GunSchemaValidator.html +5 -0
  180. package/docs/api/module-storage_gun-schema.GunSchemaValidator.html +3 -0
  181. package/docs/api/module-storage_gun-schema.html +3 -0
  182. package/docs/api/module-storage_gun-wrapper.html +11 -0
  183. package/docs/api/module-storage_indexeddb-storage-IndexedDBStorage.html +5 -0
  184. package/docs/api/module-storage_indexeddb-storage.IndexedDBStorage.html +3 -0
  185. package/docs/api/module-storage_indexeddb-storage.html +3 -0
  186. package/docs/api/module-storage_key-storage-simple.html +3 -0
  187. package/docs/api/module-storage_key-storage.html +4 -0
  188. package/docs/api/module-storage_memory-storage-MemoryStorage.html +5 -0
  189. package/docs/api/module-storage_memory-storage.MemoryStorage.html +3 -0
  190. package/docs/api/module-storage_memory-storage.html +3 -0
  191. package/docs/api/module-storage_migration-MigrationTool.html +6 -0
  192. package/docs/api/module-storage_migration.MigrationTool.html +3 -0
  193. package/docs/api/module-storage_migration.html +3 -0
  194. package/docs/api/module-storage_nostr-async.html +18 -0
  195. package/docs/api/module-storage_nostr-client-LRUCache.html +3 -0
  196. package/docs/api/module-storage_nostr-client-NostrClient.html +7 -0
  197. package/docs/api/module-storage_nostr-client.NostrClient.html +15 -0
  198. package/docs/api/module-storage_nostr-client.html +6 -0
  199. package/docs/api/module-storage_nostr-wrapper.html +3 -0
  200. package/docs/api/module-storage_outbox-queue-OutboxQueue.html +4 -0
  201. package/docs/api/module-storage_outbox-queue.OutboxQueue.html +3 -0
  202. package/docs/api/module-storage_outbox-queue.html +3 -0
  203. package/docs/api/module-storage_persistent-storage-PersistentStorage.html +3 -0
  204. package/docs/api/module-storage_persistent-storage.html +4 -0
  205. package/docs/api/module-storage_sync-service-SyncService.html +5 -0
  206. package/docs/api/module-storage_sync-service.SyncService.html +3 -0
  207. package/docs/api/module-storage_sync-service.html +3 -0
  208. package/docs/api/module-storage_unified-storage.html +3 -0
  209. package/docs/api/module-subscriptions_manager.SubscriptionRegistry.html +3 -0
  210. package/docs/api/module-subscriptions_manager.html +3 -0
  211. package/docs/api/schema_validator.js.html +113 -0
  212. package/docs/api/scripts/core.js +726 -0
  213. package/docs/api/scripts/core.min.js +23 -0
  214. package/docs/api/scripts/resize.js +90 -0
  215. package/docs/api/scripts/search.js +265 -0
  216. package/docs/api/scripts/search.min.js +6 -0
  217. package/docs/api/scripts/third-party/Apache-License-2.0.txt +202 -0
  218. package/docs/api/scripts/third-party/fuse.js +9 -0
  219. package/docs/api/scripts/third-party/hljs-line-num-original.js +369 -0
  220. package/docs/api/scripts/third-party/hljs-line-num.js +1 -0
  221. package/docs/api/scripts/third-party/hljs-original.js +5171 -0
  222. package/docs/api/scripts/third-party/hljs.js +1 -0
  223. package/docs/api/scripts/third-party/popper.js +5 -0
  224. package/docs/api/scripts/third-party/tippy.js +1 -0
  225. package/docs/api/scripts/third-party/tocbot.js +672 -0
  226. package/docs/api/scripts/third-party/tocbot.min.js +1 -0
  227. package/docs/api/spatial_h3-operations.js.html +129 -0
  228. package/docs/api/storage_backend-factory.js.html +133 -0
  229. package/docs/api/storage_backend-interface.js.html +164 -0
  230. package/docs/api/storage_backends_activitypub-backend.js.html +298 -0
  231. package/docs/api/storage_backends_activitypub_server.js.html +678 -0
  232. package/docs/api/storage_backends_gundb-backend.js.html +878 -0
  233. package/docs/api/storage_backends_nostr-backend.js.html +254 -0
  234. package/docs/api/storage_filesystem-storage-browser.js.html +83 -0
  235. package/docs/api/storage_filesystem-storage.js.html +207 -0
  236. package/docs/api/storage_global-tables.js.html +116 -0
  237. package/docs/api/storage_gun-async.js.html +344 -0
  238. package/docs/api/storage_gun-auth.js.html +376 -0
  239. package/docs/api/storage_gun-federation.js.html +788 -0
  240. package/docs/api/storage_gun-references.js.html +212 -0
  241. package/docs/api/storage_gun-schema.js.html +309 -0
  242. package/docs/api/storage_gun-wrapper.js.html +645 -0
  243. package/docs/api/storage_indexeddb-storage.js.html +224 -0
  244. package/docs/api/storage_key-storage-simple.js.html +102 -0
  245. package/docs/api/storage_key-storage.js.html +171 -0
  246. package/docs/api/storage_memory-storage.js.html +128 -0
  247. package/docs/api/storage_migration.js.html +354 -0
  248. package/docs/api/storage_nostr-async.js.html +1076 -0
  249. package/docs/api/storage_nostr-client.js.html +1598 -0
  250. package/docs/api/storage_nostr-wrapper.js.html +218 -0
  251. package/docs/api/storage_outbox-queue.js.html +248 -0
  252. package/docs/api/storage_persistent-storage.js.html +160 -0
  253. package/docs/api/storage_sync-service.js.html +201 -0
  254. package/docs/api/storage_unified-storage.js.html +157 -0
  255. package/docs/api/styles/clean-jsdoc-theme-base.css +1159 -0
  256. package/docs/api/styles/clean-jsdoc-theme-dark.css +412 -0
  257. package/docs/api/styles/clean-jsdoc-theme-light.css +482 -0
  258. package/docs/api/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  259. package/docs/api/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  260. package/docs/api/styles/clean-jsdoc-theme.min.css +1 -0
  261. package/docs/api/subscriptions_manager.js.html +162 -0
  262. package/docs/contracts/api-interface.md +793 -0
  263. package/docs/data-model.md +476 -0
  264. package/docs/gun-async-usage.md +338 -0
  265. package/docs/plan.md +349 -0
  266. package/docs/quickstart.md +674 -0
  267. package/docs/research.md +362 -0
  268. package/docs/spec.md +244 -0
  269. package/docs/storage-backends.md +326 -0
  270. package/docs/tasks.md +947 -0
  271. package/examples/demo.html +47 -0
  272. package/examples/holosphere-widget.js +1242 -0
  273. package/examples/widget-demo.html +274 -0
  274. package/examples/widget.html +703 -0
  275. package/jsdoc.json +26 -0
  276. package/package.json +25 -7
  277. package/src/ai/aggregation.js +13 -2
  278. package/src/ai/breakdown.js +12 -2
  279. package/src/ai/classifier.js +14 -3
  280. package/src/ai/council.js +22 -7
  281. package/src/ai/embeddings.js +37 -15
  282. package/src/ai/federation-ai.js +13 -2
  283. package/src/ai/h3-ai.js +14 -2
  284. package/src/ai/index.js +16 -7
  285. package/src/ai/json-ops.js +18 -5
  286. package/src/ai/llm-service.js +62 -31
  287. package/src/ai/nl-query.js +12 -2
  288. package/src/ai/relationships.js +13 -2
  289. package/src/ai/schema-extractor.js +24 -10
  290. package/src/ai/spatial.js +13 -2
  291. package/src/ai/tts.js +25 -8
  292. package/src/cdn-entry.js +22 -0
  293. package/src/content/social-protocols.js +34 -25
  294. package/src/contracts/abis/Appreciative.json +1280 -0
  295. package/src/contracts/abis/AppreciativeFactory.json +101 -0
  296. package/src/contracts/abis/Bundle.json +1438 -0
  297. package/src/contracts/abis/BundleFactory.json +106 -0
  298. package/src/contracts/abis/Holon.json +881 -0
  299. package/src/contracts/abis/Holons.json +330 -0
  300. package/src/contracts/abis/Managed.json +1262 -0
  301. package/src/contracts/abis/ManagedFactory.json +149 -0
  302. package/src/contracts/abis/Membrane.json +261 -0
  303. package/src/contracts/abis/Splitter.json +1624 -0
  304. package/src/contracts/abis/SplitterFactory.json +220 -0
  305. package/src/contracts/abis/TestToken.json +321 -0
  306. package/src/contracts/abis/Zoned.json +1461 -0
  307. package/src/contracts/abis/ZonedFactory.json +154 -0
  308. package/src/contracts/chain-manager.js +403 -0
  309. package/src/contracts/deployer.js +500 -0
  310. package/src/contracts/event-listener.js +539 -0
  311. package/src/contracts/holon-contracts.js +359 -0
  312. package/src/contracts/index.js +82 -0
  313. package/src/contracts/networks.js +229 -0
  314. package/src/contracts/operations.js +687 -0
  315. package/src/contracts/queries.js +638 -0
  316. package/src/core/holosphere.js +487 -6
  317. package/src/crypto/nostr-utils.js +303 -0
  318. package/src/crypto/secp256k1.js +7 -2
  319. package/src/federation/handshake.js +475 -0
  320. package/src/federation/hologram.js +117 -3
  321. package/src/hierarchical/upcast.js +40 -25
  322. package/src/index.js +1547 -1912
  323. package/src/lib/ai-methods.js +657 -0
  324. package/src/lib/contract-methods.js +442 -0
  325. package/src/lib/errors.js +53 -0
  326. package/src/lib/federation-methods.js +345 -0
  327. package/src/lib/index.js +30 -0
  328. package/src/schema/validator.js +22 -3
  329. package/src/spatial/h3-operations.js +19 -3
  330. package/src/storage/backend-factory.js +7 -2
  331. package/src/storage/backend-interface.js +21 -2
  332. package/src/storage/backends/activitypub/server.js +25 -3
  333. package/src/storage/backends/activitypub-backend.js +25 -2
  334. package/src/storage/backends/gundb-backend.js +692 -50
  335. package/src/storage/backends/nostr-backend.js +116 -1
  336. package/src/storage/filesystem-storage-browser.js +42 -2
  337. package/src/storage/filesystem-storage.js +72 -5
  338. package/src/storage/global-tables.js +35 -3
  339. package/src/storage/gun-async.js +75 -15
  340. package/src/storage/gun-auth.js +373 -0
  341. package/src/storage/gun-federation.js +785 -0
  342. package/src/storage/gun-references.js +209 -0
  343. package/src/storage/gun-schema.js +306 -0
  344. package/src/storage/gun-wrapper.js +475 -54
  345. package/src/storage/indexeddb-storage.js +112 -13
  346. package/src/storage/key-storage-simple.js +32 -9
  347. package/src/storage/key-storage.js +45 -13
  348. package/src/storage/memory-storage.js +68 -2
  349. package/src/storage/migration.js +20 -7
  350. package/src/storage/nostr-async.js +412 -122
  351. package/src/storage/nostr-client.js +749 -76
  352. package/src/storage/nostr-wrapper.js +6 -2
  353. package/src/storage/outbox-queue.js +55 -18
  354. package/src/storage/persistent-storage.js +62 -14
  355. package/src/storage/sync-service.js +51 -17
  356. package/src/storage/unified-storage.js +154 -0
  357. package/src/subscriptions/manager.js +34 -17
  358. package/types/index.d.ts +133 -0
  359. package/vite.config.cdn.js +60 -0
  360. package/tests/unit/ai/aggregation.test.js +0 -295
  361. package/tests/unit/ai/breakdown.test.js +0 -446
  362. package/tests/unit/ai/classifier.test.js +0 -294
  363. package/tests/unit/ai/council.test.js +0 -262
  364. package/tests/unit/ai/embeddings.test.js +0 -384
  365. package/tests/unit/ai/federation-ai.test.js +0 -344
  366. package/tests/unit/ai/h3-ai.test.js +0 -458
  367. package/tests/unit/ai/index.test.js +0 -304
  368. package/tests/unit/ai/json-ops.test.js +0 -307
  369. package/tests/unit/ai/llm-service.test.js +0 -390
  370. package/tests/unit/ai/nl-query.test.js +0 -383
  371. package/tests/unit/ai/relationships.test.js +0 -311
  372. package/tests/unit/ai/schema-extractor.test.js +0 -384
  373. package/tests/unit/ai/spatial.test.js +0 -279
  374. package/tests/unit/ai/tts.test.js +0 -279
  375. package/tests/unit/content.test.js +0 -332
  376. package/tests/unit/contract/core.test.js +0 -88
  377. package/tests/unit/contract/crypto.test.js +0 -198
  378. package/tests/unit/contract/data.test.js +0 -223
  379. package/tests/unit/contract/federation.test.js +0 -181
  380. package/tests/unit/contract/hierarchical.test.js +0 -113
  381. package/tests/unit/contract/schema.test.js +0 -114
  382. package/tests/unit/contract/social.test.js +0 -217
  383. package/tests/unit/contract/spatial.test.js +0 -110
  384. package/tests/unit/contract/subscriptions.test.js +0 -128
  385. package/tests/unit/contract/utils.test.js +0 -159
  386. package/tests/unit/core.test.js +0 -152
  387. package/tests/unit/crypto.test.js +0 -328
  388. package/tests/unit/federation.test.js +0 -234
  389. package/tests/unit/gun-async.test.js +0 -252
  390. package/tests/unit/hierarchical.test.js +0 -399
  391. package/tests/unit/integration/scenario-01-geographic-storage.test.js +0 -74
  392. package/tests/unit/integration/scenario-02-federation.test.js +0 -76
  393. package/tests/unit/integration/scenario-03-subscriptions.test.js +0 -102
  394. package/tests/unit/integration/scenario-04-validation.test.js +0 -129
  395. package/tests/unit/integration/scenario-05-hierarchy.test.js +0 -125
  396. package/tests/unit/integration/scenario-06-social.test.js +0 -135
  397. package/tests/unit/integration/scenario-07-persistence.test.js +0 -130
  398. package/tests/unit/integration/scenario-08-authorization.test.js +0 -161
  399. package/tests/unit/integration/scenario-09-cross-dimensional.test.js +0 -139
  400. package/tests/unit/integration/scenario-10-cross-holosphere-capabilities.test.js +0 -357
  401. package/tests/unit/integration/scenario-11-cross-holosphere-federation.test.js +0 -410
  402. package/tests/unit/integration/scenario-12-capability-federated-read.test.js +0 -719
  403. package/tests/unit/performance/benchmark.test.js +0 -85
  404. package/tests/unit/schema.test.js +0 -213
  405. package/tests/unit/spatial.test.js +0 -158
  406. package/tests/unit/storage.test.js +0 -195
  407. package/tests/unit/subscriptions.test.js +0 -328
  408. package/tests/unit/test-data-permanence-debug.js +0 -197
  409. package/tests/unit/test-data-permanence.js +0 -340
  410. package/tests/unit/test-key-persistence-fixed.js +0 -148
  411. package/tests/unit/test-key-persistence.js +0 -172
  412. package/tests/unit/test-relay-permanence.js +0 -376
  413. package/tests/unit/test-second-node.js +0 -95
  414. package/tests/unit/test-simple-write.js +0 -89
  415. /package/{cleanup-test-data.js → scripts/cleanup-test-data.js} +0 -0
  416. /package/{test-ai-real-api.js → scripts/test-ai-real-api.js} +0 -0
@@ -0,0 +1,326 @@
1
+ # HoloSphere Storage Backends
2
+
3
+ HoloSphere supports multiple storage backends, allowing you to choose the best option for your deployment requirements. All backends expose the same API, ensuring your application code works identically regardless of which backend you use.
4
+
5
+ ## Available Backends
6
+
7
+ | Backend | Description | Best For |
8
+ |---------|-------------|----------|
9
+ | **Nostr** (default) | Decentralized relay network | Censorship-resistant, public data |
10
+ | **GunDB** | Real-time P2P database | Offline-first, real-time sync |
11
+ | **ActivityPub** | Fediverse federation | Integration with Mastodon, Pleroma |
12
+
13
+ ---
14
+
15
+ ## Nostr Backend (Default)
16
+
17
+ The Nostr backend uses the Nostr protocol for decentralized data storage across relay servers.
18
+
19
+ ### Configuration
20
+
21
+ ```javascript
22
+ import HoloSphere from 'holosphere';
23
+
24
+ const hs = new HoloSphere({
25
+ appName: 'myapp',
26
+ backend: 'nostr', // Optional - this is the default
27
+ relays: [
28
+ 'wss://relay.damus.io',
29
+ 'wss://relay.nostr.band',
30
+ 'wss://nos.lol'
31
+ ],
32
+ privateKey: 'hex-encoded-private-key', // Optional - auto-generated if not provided
33
+ persistence: true, // Enable local caching (default: true)
34
+ dataDir: './data' // Custom data directory
35
+ });
36
+ ```
37
+
38
+ ### Features
39
+ - Decentralized storage across multiple relays
40
+ - Cryptographic identity via secp256k1 keys
41
+ - Built-in event caching for performance
42
+ - Offline support with guaranteed delivery queue
43
+ - NIP-09 compliant deletion
44
+
45
+ ### When to Use
46
+ - Public, censorship-resistant applications
47
+ - Applications requiring cryptographic verification
48
+ - Social features compatible with Nostr ecosystem
49
+
50
+ ---
51
+
52
+ ## GunDB Backend
53
+
54
+ The GunDB backend provides real-time P2P synchronization with offline-first capabilities.
55
+
56
+ ### Installation
57
+
58
+ GunDB is an optional dependency. Install it before using this backend:
59
+
60
+ ```bash
61
+ npm install gun
62
+ ```
63
+
64
+ ### Configuration
65
+
66
+ ```javascript
67
+ import HoloSphere from 'holosphere';
68
+
69
+ const hs = new HoloSphere({
70
+ appName: 'myapp',
71
+ backend: 'gundb',
72
+ gundb: {
73
+ peers: [
74
+ 'https://gun-us.example.com/gun',
75
+ 'https://gun-eu.example.com/gun'
76
+ ],
77
+ radisk: true, // Persistent storage (default: true)
78
+ localStorage: true // Browser localStorage (default: true)
79
+ },
80
+ dataDir: './gun-data'
81
+ });
82
+
83
+ // Wait for backend initialization
84
+ await hs.ready();
85
+ ```
86
+
87
+ ### Features
88
+ - Real-time P2P synchronization
89
+ - Offline-first with automatic sync
90
+ - Built-in conflict resolution (CRDT)
91
+ - Works without central server
92
+
93
+ ### When to Use
94
+ - Real-time collaborative applications
95
+ - Offline-first mobile/desktop apps
96
+ - Applications requiring P2P sync without relays
97
+
98
+ ---
99
+
100
+ ## ActivityPub Backend
101
+
102
+ The ActivityPub backend enables federation with the Fediverse (Mastodon, Pleroma, etc.).
103
+
104
+ ### Architecture
105
+
106
+ The ActivityPub backend requires a separate server process:
107
+
108
+ ```
109
+ ┌─────────────────┐ HTTP ┌─────────────────────┐
110
+ │ Your App │◄────────────►│ ActivityPub Server │
111
+ │ (HoloSphere) │ │ (holosphere-ap) │
112
+ └─────────────────┘ └─────────────────────┘
113
+
114
+ │ ActivityPub
115
+
116
+ ┌─────────────────┐
117
+ │ Mastodon/ │
118
+ │ Pleroma/etc │
119
+ └─────────────────┘
120
+ ```
121
+
122
+ ### Starting the Server
123
+
124
+ ```bash
125
+ # Start with default settings
126
+ holosphere-activitypub
127
+
128
+ # Start with custom configuration
129
+ holosphere-activitypub \
130
+ --port 3000 \
131
+ --domain myholosphere.example.com \
132
+ --data-dir ./ap-data \
133
+ --protocol https
134
+
135
+ # Or use environment variables
136
+ export HOLOSPHERE_AP_PORT=3000
137
+ export HOLOSPHERE_AP_DOMAIN=myholosphere.example.com
138
+ export HOLOSPHERE_AP_DATADIR=./ap-data
139
+ export HOLOSPHERE_AP_PROTOCOL=https
140
+ holosphere-activitypub
141
+ ```
142
+
143
+ ### Server Endpoints
144
+
145
+ | Endpoint | Description |
146
+ |----------|-------------|
147
+ | `/.well-known/webfinger` | Actor discovery (required for federation) |
148
+ | `/actor/:name` | Actor profile |
149
+ | `/actor/:name/inbox` | Receive activities from federated servers |
150
+ | `/actor/:name/outbox` | Published activities |
151
+ | `/api/data` | HoloSphere data API |
152
+ | `/subscribe` | Server-Sent Events for real-time updates |
153
+ | `/health` | Health check |
154
+
155
+ ### Client Configuration
156
+
157
+ ```javascript
158
+ import HoloSphere from 'holosphere';
159
+
160
+ const hs = new HoloSphere({
161
+ appName: 'myapp',
162
+ backend: 'activitypub',
163
+ activitypub: {
164
+ serverUrl: 'http://localhost:3000',
165
+ apiKey: 'optional-api-key' // For authentication
166
+ }
167
+ });
168
+
169
+ // Wait for connection to server
170
+ await hs.ready();
171
+ ```
172
+
173
+ ### Federation with Mastodon
174
+
175
+ 1. Deploy your ActivityPub server with a public domain
176
+ 2. Configure HTTPS (required for federation)
177
+ 3. Set up DNS records
178
+ 4. Users can follow your actors from Mastodon: `@myapp@myholosphere.example.com`
179
+
180
+ ### When to Use
181
+ - Integration with existing Fediverse communities
182
+ - Building social features compatible with Mastodon
183
+ - Applications requiring W3C ActivityPub compliance
184
+
185
+ ---
186
+
187
+ ## Data Migration
188
+
189
+ HoloSphere provides tools to migrate data between backends.
190
+
191
+ ### Using the Migration Tool
192
+
193
+ ```javascript
194
+ import { MigrationTool, quickMigrate } from 'holosphere/storage/migration';
195
+
196
+ // Option 1: Full control
197
+ const migration = new MigrationTool();
198
+
199
+ // Configure source
200
+ await migration.setSource('nostr', {
201
+ appName: 'myapp',
202
+ relays: ['wss://relay.damus.io']
203
+ });
204
+
205
+ // Configure target
206
+ await migration.setTarget('gundb', {
207
+ appName: 'myapp',
208
+ gundb: { peers: [] }
209
+ });
210
+
211
+ // Run migration
212
+ const results = await migration.migrate('myapp/');
213
+ console.log(`Migrated ${results.success} records`);
214
+
215
+ // Validate
216
+ const validation = await migration.validate('myapp/');
217
+ if (!validation.valid) {
218
+ console.error('Missing records:', validation.missing);
219
+ }
220
+
221
+ migration.close();
222
+
223
+ // Option 2: Quick migrate
224
+ await quickMigrate(
225
+ { type: 'nostr', appName: 'myapp', relays: ['wss://relay.damus.io'] },
226
+ { type: 'activitypub', appName: 'myapp', activitypub: { serverUrl: 'http://localhost:3000' } }
227
+ );
228
+ ```
229
+
230
+ ### Export/Import for Backup
231
+
232
+ ```javascript
233
+ const migration = new MigrationTool();
234
+ await migration.setSource('nostr', { appName: 'myapp', relays: [] });
235
+
236
+ // Export to file
237
+ const bundle = await migration.export();
238
+ await migration.exportToFile(bundle, './backup.json');
239
+
240
+ // Later: Import from file
241
+ const loadedBundle = await migration.importFromFile('./backup.json');
242
+ await migration.setTarget('gundb', { appName: 'myapp', gundb: {} });
243
+ await migration.import(loadedBundle);
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Choosing a Backend
249
+
250
+ | Requirement | Recommended Backend |
251
+ |-------------|---------------------|
252
+ | Censorship resistance | Nostr |
253
+ | Real-time collaboration | GunDB |
254
+ | Fediverse integration | ActivityPub |
255
+ | Offline-first | GunDB or Nostr |
256
+ | Cryptographic identity | Nostr |
257
+ | Self-hosted | Any (Nostr relays, Gun peers, or AP server) |
258
+
259
+ ---
260
+
261
+ ## Custom Backends
262
+
263
+ You can implement custom storage backends by extending the `StorageBackend` interface:
264
+
265
+ ```javascript
266
+ import { StorageBackend, BackendFactory } from 'holosphere/storage';
267
+
268
+ class MyCustomBackend extends StorageBackend {
269
+ async init() { /* ... */ }
270
+ buildPath(appName, holonId, lensName, key) { /* ... */ }
271
+ async write(path, data, options) { /* ... */ }
272
+ async read(path, options) { /* ... */ }
273
+ async readAll(path, options) { /* ... */ }
274
+ async update(path, updates) { /* ... */ }
275
+ async delete(path) { /* ... */ }
276
+ async deleteAll(path) { /* ... */ }
277
+ async subscribe(path, callback, options) { /* ... */ }
278
+ async exportData(pathPrefix) { /* ... */ }
279
+ async importData(records, options) { /* ... */ }
280
+ close() { /* ... */ }
281
+ getStatus() { /* ... */ }
282
+ }
283
+
284
+ // Register custom backend
285
+ BackendFactory.register('custom', MyCustomBackend);
286
+
287
+ // Use it
288
+ const hs = new HoloSphere({
289
+ appName: 'myapp',
290
+ backend: 'custom',
291
+ // ... custom config
292
+ });
293
+ ```
294
+
295
+ ---
296
+
297
+ ## Backend API Reference
298
+
299
+ All backends implement the `StorageBackend` interface:
300
+
301
+ ```typescript
302
+ interface StorageBackend {
303
+ // Initialization
304
+ init(): Promise<void>;
305
+ close(): void;
306
+ getStatus(): BackendStatus;
307
+
308
+ // Path building
309
+ buildPath(appName: string, holonId: string, lensName: string, key?: string): string;
310
+
311
+ // CRUD operations
312
+ write(path: string, data: object, options?: WriteOptions): Promise<boolean>;
313
+ read(path: string, options?: ReadOptions): Promise<object | null>;
314
+ readAll(path: string, options?: ReadOptions): Promise<object[]>;
315
+ update(path: string, updates: object): Promise<boolean>;
316
+ delete(path: string): Promise<boolean>;
317
+ deleteAll(path: string): Promise<{ success: boolean; count: number }>;
318
+
319
+ // Subscriptions
320
+ subscribe(path: string, callback: Function, options?: SubOptions): Promise<Subscription>;
321
+
322
+ // Migration
323
+ exportData(pathPrefix?: string): Promise<ExportRecord[]>;
324
+ importData(records: ExportRecord[], options?: ImportOptions): Promise<ImportResults>;
325
+ }
326
+ ```