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,133 @@
1
+ // Type declarations for holosphere
2
+ // This file tells TypeScript to skip type checking the bundled JS files
3
+
4
+ declare module 'holosphere' {
5
+ export class HoloSphere {
6
+ constructor(config?: any);
7
+ init(): Promise<void>;
8
+
9
+ // Core CRUD operations
10
+ get(holonId: string, lens: string, key?: string): Promise<any>;
11
+ getAll(holonId: string, lens: string): Promise<Record<string, any>>;
12
+ put(holonId: string, lens: string, value: any): Promise<void>;
13
+ put(holonId: string, lens: string, key: string, value: any): Promise<void>;
14
+ delete(holonId: string, lens: string, key?: string): Promise<void>;
15
+ read(holonId: string, lens: string, key?: string): Promise<any>;
16
+
17
+ // Subscription
18
+ subscribe(holonId: string, lens: string, callback: (data: any, key: string) => void): Promise<{ unsubscribe: () => void }>;
19
+
20
+ // Profile operations
21
+ getHolonProfile(holonId: string): Promise<any>;
22
+ setHolonProfile(holonId: string, profile: any): Promise<void>;
23
+
24
+ // Federation operations
25
+ federate(sourceHolonId: string, targetHolonId: string, sourceKey?: string | null, targetKey?: string | null, bidirectional?: boolean, permissions?: any): Promise<void>;
26
+ federateHolon(holonId: string, targetHolonId: string, options?: any): Promise<void>;
27
+ getFederation(holonId: string): Promise<any>;
28
+ propagate(holonId: string, lens: string, key: string, value: any): Promise<void>;
29
+ propagateData(holonId: string, lens: string, data: any): Promise<void>;
30
+
31
+ // Global operations
32
+ getGlobal(lens: string, key?: string): Promise<any>;
33
+ getAllGlobal(lens: string): Promise<Record<string, any>>;
34
+ writeGlobal(lens: string, key: string, value: any): Promise<void>;
35
+
36
+ // Internal properties (exposed for advanced use)
37
+ gun?: any;
38
+ client?: any;
39
+ }
40
+
41
+ export class PersistentStorage {
42
+ init(namespace: string): Promise<void>;
43
+ put(key: string, event: any): Promise<void>;
44
+ get(key: string): Promise<any | null>;
45
+ getAll(prefix: string): Promise<any[]>;
46
+ delete(key: string): Promise<void>;
47
+ clear(): Promise<void>;
48
+ close(): Promise<void>;
49
+ }
50
+
51
+ export class IndexedDBStorage extends PersistentStorage {}
52
+ export class MemoryStorage extends PersistentStorage {}
53
+ export class FileSystemStorage extends PersistentStorage {}
54
+
55
+ export class ChainManager {
56
+ constructor(config?: any);
57
+ }
58
+
59
+ export class ContractDeployer {
60
+ constructor(chainManager: ChainManager);
61
+ }
62
+
63
+ export class ContractOperations {
64
+ constructor(chainManager: ChainManager);
65
+ }
66
+
67
+ export class ContractQueries {
68
+ constructor(chainManager: ChainManager);
69
+ }
70
+
71
+ export class EventListener {
72
+ constructor(chainManager: ChainManager);
73
+ }
74
+
75
+ export class HolonContracts {
76
+ constructor(config?: any);
77
+ }
78
+
79
+ export const ContractABIs: any;
80
+ export const NETWORKS: any;
81
+
82
+ export class AuthorizationError extends Error {}
83
+ export class ValidationError extends Error {}
84
+
85
+ export const crypto: any;
86
+ export const federation: any;
87
+ export const handshake: {
88
+ initiateFederationHandshake(holosphere: HoloSphere, privateKey: string, params: any): Promise<any>;
89
+ acceptFederationRequest(holosphere: HoloSphere, privateKey: string, params: any): Promise<any>;
90
+ rejectFederationRequest(holosphere: HoloSphere, privateKey: string, params: any): Promise<any>;
91
+ subscribeToFederationDMs(client: any, privateKey: string, publicKey: string, handlers: any): () => void;
92
+ };
93
+ export const hierarchical: any;
94
+ export const nostrUtils: any;
95
+ export const schema: any;
96
+ export const social: any;
97
+ export const spatial: any;
98
+ export const storage: any;
99
+ export const subscriptions: any;
100
+ export const networks: any;
101
+
102
+ export function createHologram(config?: any): any;
103
+ export function createAIServices(config?: any): any;
104
+ export function getNetwork(name: string): any;
105
+ export function getNetworksByType(type: string): any[];
106
+ export function listNetworks(): string[];
107
+ export function isNetworkSupported(name: string): boolean;
108
+ export function getAddressUrl(network: string, address: string): string;
109
+ export function getTxUrl(network: string, txHash: string): string;
110
+ export function matchScope(scope: string, pattern: string): boolean;
111
+
112
+ // AI-related exports
113
+ export class Classifier {}
114
+ export class Council {}
115
+ export class Embeddings {}
116
+ export class FederationAdvisor {}
117
+ export class H3AI {}
118
+ export class JSONOps {}
119
+ export class LLMService {}
120
+ export class NLQuery {}
121
+ export class RelationshipDiscovery {}
122
+ export class SchemaExtractor {}
123
+ export class SmartAggregation {}
124
+ export class SpatialAnalysis {}
125
+ export class TaskBreakdown {}
126
+ export class TTS {}
127
+
128
+ export const MODELS: any;
129
+ export const VOICES: any;
130
+ export const SANKEY_EVENTS: any;
131
+
132
+ export default HoloSphere;
133
+ }
@@ -0,0 +1,60 @@
1
+ import { defineConfig } from 'vite';
2
+ import { resolve } from 'path';
3
+
4
+ /**
5
+ * CDN Build Configuration
6
+ * Creates a self-contained bundle for browser usage via CDN
7
+ * All dependencies are bundled (no externals)
8
+ */
9
+ export default defineConfig({
10
+ build: {
11
+ target: 'es2020',
12
+ outDir: 'dist/cdn',
13
+ lib: {
14
+ entry: resolve(__dirname, 'src/cdn-entry.js'),
15
+ name: 'HoloSphere',
16
+ formats: ['iife'],
17
+ fileName: () => 'holosphere.min.js',
18
+ },
19
+ rollupOptions: {
20
+ // Bundle all dependencies for CDN
21
+ external: [],
22
+ output: {
23
+ // Use default export so HoloSphere is directly accessible
24
+ exports: 'default',
25
+ // Extend window with all exports
26
+ extend: true,
27
+ // Provide globals for any remaining externals
28
+ globals: {},
29
+ // Inline dynamic imports
30
+ inlineDynamicImports: true,
31
+ },
32
+ },
33
+ sourcemap: true,
34
+ minify: 'terser',
35
+ terserOptions: {
36
+ compress: {
37
+ drop_console: false,
38
+ passes: 2,
39
+ },
40
+ mangle: {
41
+ safari10: true,
42
+ },
43
+ },
44
+ // Increase chunk size warning limit for CDN bundle
45
+ chunkSizeWarningLimit: 2000,
46
+ },
47
+ resolve: {
48
+ alias: [
49
+ {
50
+ find: './filesystem-storage.js',
51
+ replacement: resolve(__dirname, 'src/storage/filesystem-storage-browser.js'),
52
+ },
53
+ ],
54
+ },
55
+ define: {
56
+ 'process.versions.node': JSON.stringify(undefined),
57
+ 'process.env.NODE_ENV': JSON.stringify('production'),
58
+ 'global': 'globalThis',
59
+ },
60
+ });
@@ -1,295 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi } from 'vitest';
2
- import { SmartAggregation } from '../../../src/ai/aggregation.js';
3
-
4
- // Mock h3-js
5
- vi.mock('h3-js', () => ({
6
- getResolution: vi.fn().mockReturnValue(5),
7
- cellToParent: vi.fn().mockReturnValue('parent_holon'),
8
- cellToChildren: vi.fn().mockReturnValue(['child1', 'child2', 'child3'])
9
- }));
10
-
11
- describe('Unit: SmartAggregation', () => {
12
- let aggregation;
13
- let mockLLM;
14
- let mockHolosphere;
15
-
16
- beforeEach(() => {
17
- vi.clearAllMocks();
18
-
19
- mockLLM = {
20
- getJSON: vi.fn()
21
- };
22
-
23
- mockHolosphere = {
24
- getAll: vi.fn().mockResolvedValue([]),
25
- put: vi.fn().mockResolvedValue({ success: true })
26
- };
27
-
28
- aggregation = new SmartAggregation(mockLLM, mockHolosphere);
29
- });
30
-
31
- describe('Constructor', () => {
32
- it('should initialize with LLM service', () => {
33
- const a = new SmartAggregation(mockLLM);
34
- expect(a.llm).toBe(mockLLM);
35
- expect(a.holosphere).toBeNull();
36
- });
37
-
38
- it('should accept optional HoloSphere instance', () => {
39
- expect(aggregation.holosphere).toBe(mockHolosphere);
40
- });
41
- });
42
-
43
- describe('setHoloSphere', () => {
44
- it('should set HoloSphere instance', () => {
45
- const a = new SmartAggregation(mockLLM);
46
- a.setHoloSphere(mockHolosphere);
47
- expect(a.holosphere).toBe(mockHolosphere);
48
- });
49
- });
50
-
51
- describe('smartUpcast', () => {
52
- it('should generate summary and upcast to parent', async () => {
53
- mockHolosphere.getAll.mockResolvedValue([
54
- { id: 1, title: 'Item 1' },
55
- { id: 2, title: 'Item 2' }
56
- ]);
57
-
58
- mockLLM.getJSON.mockResolvedValue({
59
- text: 'Two items in region',
60
- stats: { count: 2 },
61
- notable: ['Item 1'],
62
- themes: ['development']
63
- });
64
-
65
- const result = await aggregation.smartUpcast('holon1', 'projects');
66
-
67
- expect(result.holon).toBe('holon1');
68
- expect(result.lens).toBe('projects');
69
- expect(result.summary).toBeDefined();
70
- expect(result.dataCount).toBe(2);
71
- expect(result.parent).toBeDefined();
72
- });
73
-
74
- it('should throw error if HoloSphere not available', async () => {
75
- const a = new SmartAggregation(mockLLM);
76
-
77
- await expect(a.smartUpcast('holon', 'lens'))
78
- .rejects.toThrow('HoloSphere instance required');
79
- });
80
-
81
- it('should store summary at parent level when storeResults is true', async () => {
82
- mockHolosphere.getAll.mockResolvedValue([{ id: 1 }]);
83
- mockLLM.getJSON.mockResolvedValue({ text: 'Summary' });
84
-
85
- await aggregation.smartUpcast('holon1', 'projects', { storeResults: true });
86
-
87
- expect(mockHolosphere.put).toHaveBeenCalledWith(
88
- 'parent_holon',
89
- 'projects_summaries',
90
- expect.objectContaining({
91
- childHolon: 'holon1',
92
- summary: expect.any(Object)
93
- })
94
- );
95
- });
96
-
97
- it('should respect maxLevels option', async () => {
98
- mockHolosphere.getAll.mockResolvedValue([{ id: 1 }]);
99
- mockLLM.getJSON.mockResolvedValue({ text: 'Summary' });
100
-
101
- const result = await aggregation.smartUpcast('holon1', 'projects', { maxLevels: 1 });
102
-
103
- // Should only go up one level
104
- expect(result.parent).toBeDefined();
105
- });
106
- });
107
-
108
- describe('_generateSummary', () => {
109
- it('should generate summary for data', async () => {
110
- mockLLM.getJSON.mockResolvedValue({
111
- text: 'Active region',
112
- stats: { count: 5 },
113
- notable: ['Project A'],
114
- themes: ['sustainability']
115
- });
116
-
117
- const data = [{ id: 1 }, { id: 2 }];
118
- const result = await aggregation._generateSummary(data, 'holon1', 'projects');
119
-
120
- expect(result.text).toBe('Active region');
121
- expect(result.stats.count).toBe(5);
122
- });
123
-
124
- it('should return empty summary for empty data', async () => {
125
- const result = await aggregation._generateSummary([], 'holon1', 'lens');
126
-
127
- expect(result.text).toBe('No data in this region');
128
- expect(result.stats.count).toBe(0);
129
- });
130
- });
131
-
132
- describe('generateHolonSummary', () => {
133
- it('should generate comprehensive holon summary', async () => {
134
- mockHolosphere.getAll
135
- .mockResolvedValueOnce([{ id: 1 }]) // projects
136
- .mockResolvedValueOnce([{ id: 2 }]) // quests
137
- .mockResolvedValueOnce([]) // events
138
- .mockResolvedValueOnce([]) // resources
139
- .mockResolvedValueOnce([{ id: 3 }]); // default
140
-
141
- mockLLM.getJSON.mockResolvedValue({
142
- title: 'Region Summary',
143
- executive_summary: 'Active region',
144
- highlights: ['Growth'],
145
- activities: { count: 2, summary: 'Various activities' },
146
- community: { engagement_level: 'high', notes: 'Active community' },
147
- resources: ['Local resources'],
148
- challenges: ['Coordination'],
149
- opportunities: ['Expansion'],
150
- health_score: 0.8,
151
- recommendations: ['Focus on coordination']
152
- });
153
-
154
- const result = await aggregation.generateHolonSummary('holon1');
155
-
156
- expect(result.holon).toBe('holon1');
157
- expect(result.summary.title).toBe('Region Summary');
158
- expect(result.lensesAnalyzed).toBeDefined();
159
- expect(result.totalItems).toBeGreaterThan(0);
160
- });
161
-
162
- it('should throw error if HoloSphere not available', async () => {
163
- const a = new SmartAggregation(mockLLM);
164
-
165
- await expect(a.generateHolonSummary('holon'))
166
- .rejects.toThrow('HoloSphere instance required');
167
- });
168
-
169
- it('should skip unavailable lenses', async () => {
170
- mockHolosphere.getAll
171
- .mockResolvedValueOnce([{ id: 1 }])
172
- .mockRejectedValueOnce(new Error('Lens not found'))
173
- .mockResolvedValueOnce([])
174
- .mockResolvedValueOnce([])
175
- .mockResolvedValueOnce([]);
176
-
177
- mockLLM.getJSON.mockResolvedValue({ title: 'Summary' });
178
-
179
- const result = await aggregation.generateHolonSummary('holon1');
180
-
181
- expect(result).toBeDefined();
182
- });
183
- });
184
-
185
- describe('aggregateChildren', () => {
186
- it('should aggregate summaries from child holons', async () => {
187
- mockHolosphere.getAll
188
- .mockResolvedValueOnce([{ id: 1 }])
189
- .mockResolvedValueOnce([{ id: 2 }])
190
- .mockResolvedValueOnce([{ id: 3 }]);
191
-
192
- mockLLM.getJSON.mockResolvedValue({
193
- text: 'Summary',
194
- stats: { count: 1 }
195
- });
196
-
197
- const result = await aggregation.aggregateChildren('parent_holon', 'projects');
198
-
199
- expect(result.holon).toBe('parent_holon');
200
- expect(result.lens).toBe('projects');
201
- expect(result.childCount).toBeGreaterThan(0);
202
- });
203
-
204
- it('should throw error if HoloSphere not available', async () => {
205
- const a = new SmartAggregation(mockLLM);
206
-
207
- await expect(a.aggregateChildren('parent', 'lens'))
208
- .rejects.toThrow('HoloSphere instance required');
209
- });
210
-
211
- it('should return message when no child data found', async () => {
212
- mockHolosphere.getAll.mockResolvedValue([]);
213
-
214
- const result = await aggregation.aggregateChildren('parent_holon', 'projects');
215
-
216
- expect(result.message).toBe('No child data found');
217
- expect(result.summary).toBeNull();
218
- });
219
- });
220
-
221
- describe('comparePeriods', () => {
222
- it('should compare data across time periods', async () => {
223
- mockHolosphere.getAll.mockResolvedValue([
224
- { id: 1, timestamp: '2024-01-15' },
225
- { id: 2, timestamp: '2024-06-15' },
226
- { id: 3, timestamp: '2024-08-15' }
227
- ]);
228
-
229
- mockLLM.getJSON.mockResolvedValue({
230
- growth_rate: 50,
231
- direction: 'growth',
232
- new_themes: ['sustainability'],
233
- disappeared: ['legacy'],
234
- key_changes: ['Focus shift'],
235
- summary: 'Growing activity'
236
- });
237
-
238
- const result = await aggregation.comparePeriods(
239
- 'holon1',
240
- 'projects',
241
- { start: '2024-01-01', end: '2024-03-31' },
242
- { start: '2024-07-01', end: '2024-09-30' }
243
- );
244
-
245
- expect(result.growth_rate).toBe(50);
246
- expect(result.direction).toBe('growth');
247
- });
248
-
249
- it('should throw error if HoloSphere not available', async () => {
250
- const a = new SmartAggregation(mockLLM);
251
-
252
- await expect(a.comparePeriods('h', 'l', {}, {}))
253
- .rejects.toThrow('HoloSphere instance required');
254
- });
255
-
256
- it('should filter items by period', async () => {
257
- mockHolosphere.getAll.mockResolvedValue([
258
- { id: 1, timestamp: '2024-01-15' },
259
- { id: 2, timestamp: '2024-02-15' },
260
- { id: 3, timestamp: '2024-06-15' }
261
- ]);
262
-
263
- mockLLM.getJSON.mockResolvedValue({ growth_rate: 0 });
264
-
265
- await aggregation.comparePeriods(
266
- 'holon1',
267
- 'lens',
268
- { start: '2024-01-01', end: '2024-03-31' },
269
- { start: '2024-06-01', end: '2024-06-30' }
270
- );
271
-
272
- const call = mockLLM.getJSON.mock.calls[0];
273
- expect(call[1]).toContain('Period 1 data');
274
- expect(call[1]).toContain('Period 2 data');
275
- });
276
-
277
- it('should handle items with created_at field', async () => {
278
- mockHolosphere.getAll.mockResolvedValue([
279
- { id: 1, created_at: '2024-01-15' },
280
- { id: 2, created_at: '2024-06-15' }
281
- ]);
282
-
283
- mockLLM.getJSON.mockResolvedValue({ growth_rate: 100 });
284
-
285
- await aggregation.comparePeriods(
286
- 'holon1',
287
- 'lens',
288
- { start: '2024-01-01', end: '2024-03-31' },
289
- { start: '2024-06-01', end: '2024-06-30' }
290
- );
291
-
292
- expect(mockLLM.getJSON).toHaveBeenCalled();
293
- });
294
- });
295
- });