holosphere 2.0.0-alpha0 → 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.
- package/CHANGELOG.md +473 -0
- package/FEATURES.md +431 -0
- package/LICENSE +29 -42
- package/LICENSE-AGPL.md +180 -0
- package/README.md +97 -16
- package/dist/2019-D2OG2idw.js +6680 -0
- package/dist/2019-D2OG2idw.js.map +1 -0
- package/dist/2019-EION3wKo.cjs +8 -0
- package/dist/2019-EION3wKo.cjs.map +1 -0
- package/dist/_commonjsHelpers-C37NGDzP.cjs +2 -0
- package/dist/_commonjsHelpers-C37NGDzP.cjs.map +1 -0
- package/dist/_commonjsHelpers-CUmg6egw.js +7 -0
- package/dist/_commonjsHelpers-CUmg6egw.js.map +1 -0
- package/dist/browser-BSniCNqO.js +3058 -0
- package/dist/browser-BSniCNqO.js.map +1 -0
- package/dist/browser-Cq59Ij19.cjs +2 -0
- package/dist/browser-Cq59Ij19.cjs.map +1 -0
- package/dist/cdn/holosphere.min.js +55 -0
- package/dist/cdn/holosphere.min.js.map +1 -0
- package/dist/cjs/holosphere.cjs +2 -0
- package/dist/cjs/holosphere.cjs.map +1 -0
- package/dist/esm/holosphere.js +53 -0
- package/dist/esm/holosphere.js.map +1 -0
- package/dist/index-DDGt_V9o.cjs +12 -0
- package/dist/index-DDGt_V9o.cjs.map +1 -0
- package/dist/index-DJXftyvB.js +39841 -0
- package/dist/index-DJXftyvB.js.map +1 -0
- package/dist/index-DMbdcMtK.cjs +18 -0
- package/dist/index-DMbdcMtK.cjs.map +1 -0
- package/dist/index-DeZ1xz_s.js +15104 -0
- package/dist/index-DeZ1xz_s.js.map +1 -0
- package/dist/indexeddb-storage-BFt6hMeF.js +176 -0
- package/dist/indexeddb-storage-BFt6hMeF.js.map +1 -0
- package/dist/indexeddb-storage-BK5tv4Sh.cjs +2 -0
- package/dist/indexeddb-storage-BK5tv4Sh.cjs.map +1 -0
- package/dist/memory-storage-C9HuoL2E.js +91 -0
- package/dist/memory-storage-C9HuoL2E.js.map +1 -0
- package/dist/memory-storage-Dao7jfYG.cjs +2 -0
- package/dist/memory-storage-Dao7jfYG.cjs.map +1 -0
- package/dist/secp256k1-BbKzbLtD.cjs +12 -0
- package/dist/secp256k1-BbKzbLtD.cjs.map +1 -0
- package/dist/secp256k1-CreY7Pcl.js +1890 -0
- package/dist/secp256k1-CreY7Pcl.js.map +1 -0
- package/docs/CONTRACTS.md +797 -0
- package/docs/FOSDEM_PROPOSAL.md +388 -0
- package/docs/LOCALFIRST.md +266 -0
- package/docs/api/ai_aggregation.js.html +333 -0
- package/docs/api/ai_breakdown.js.html +524 -0
- package/docs/api/ai_classifier.js.html +231 -0
- package/docs/api/ai_council.js.html +246 -0
- package/docs/api/ai_embeddings.js.html +304 -0
- package/docs/api/ai_federation-ai.js.html +338 -0
- package/docs/api/ai_h3-ai.js.html +970 -0
- package/docs/api/ai_index.js.html +124 -0
- package/docs/api/ai_json-ops.js.html +241 -0
- package/docs/api/ai_llm-service.js.html +239 -0
- package/docs/api/ai_nl-query.js.html +236 -0
- package/docs/api/ai_relationships.js.html +367 -0
- package/docs/api/ai_schema-extractor.js.html +235 -0
- package/docs/api/ai_spatial.js.html +307 -0
- package/docs/api/ai_tts.js.html +214 -0
- package/docs/api/content_social-protocols.js.html +180 -0
- package/docs/api/core_holosphere.js.html +757 -0
- package/docs/api/crypto_nostr-utils.js.html +306 -0
- package/docs/api/crypto_secp256k1.js.html +267 -0
- package/docs/api/data/search.json +1 -0
- package/docs/api/federation_discovery.js.html +337 -0
- package/docs/api/federation_handshake.js.html +478 -0
- package/docs/api/federation_hologram.js.html +1053 -0
- package/docs/api/federation_registry.js.html +389 -0
- package/docs/api/fonts/Inconsolata-Regular.ttf +0 -0
- package/docs/api/fonts/OpenSans-Regular.ttf +0 -0
- package/docs/api/fonts/WorkSans-Bold.ttf +0 -0
- package/docs/api/global.html +3 -0
- package/docs/api/hierarchical_upcast.js.html +128 -0
- package/docs/api/index.html +265 -0
- package/docs/api/index.js.html +1868 -0
- package/docs/api/lib_ai-methods.js.html +660 -0
- package/docs/api/lib_contract-methods.js.html +445 -0
- package/docs/api/lib_errors.js.html +56 -0
- package/docs/api/lib_federation-methods.js.html +348 -0
- package/docs/api/lib_index.js.html +33 -0
- package/docs/api/module-ai.html +5 -0
- package/docs/api/module-ai_aggregation-SmartAggregation.html +6 -0
- package/docs/api/module-ai_aggregation.SmartAggregation.html +3 -0
- package/docs/api/module-ai_aggregation.html +3 -0
- package/docs/api/module-ai_breakdown-TaskBreakdown.html +5 -0
- package/docs/api/module-ai_breakdown.TaskBreakdown.html +3 -0
- package/docs/api/module-ai_breakdown.html +3 -0
- package/docs/api/module-ai_classifier-Classifier.html +6 -0
- package/docs/api/module-ai_classifier.Classifier.html +3 -0
- package/docs/api/module-ai_classifier.html +3 -0
- package/docs/api/module-ai_council-Council.html +6 -0
- package/docs/api/module-ai_council.Council.html +3 -0
- package/docs/api/module-ai_council.html +3 -0
- package/docs/api/module-ai_embeddings-Embeddings.html +5 -0
- package/docs/api/module-ai_embeddings.Embeddings.html +3 -0
- package/docs/api/module-ai_embeddings.html +3 -0
- package/docs/api/module-ai_federation-ai-FederationAdvisor.html +6 -0
- package/docs/api/module-ai_federation-ai.FederationAdvisor.html +3 -0
- package/docs/api/module-ai_federation-ai.html +3 -0
- package/docs/api/module-ai_h3-ai-H3AI.html +6 -0
- package/docs/api/module-ai_h3-ai.H3AI.html +3 -0
- package/docs/api/module-ai_h3-ai.html +3 -0
- package/docs/api/module-ai_json-ops-JSONOps.html +5 -0
- package/docs/api/module-ai_json-ops.JSONOps.html +3 -0
- package/docs/api/module-ai_json-ops.html +3 -0
- package/docs/api/module-ai_llm-service-LLMService.html +5 -0
- package/docs/api/module-ai_llm-service.LLMService.html +3 -0
- package/docs/api/module-ai_llm-service.html +3 -0
- package/docs/api/module-ai_nl-query-NLQuery.html +5 -0
- package/docs/api/module-ai_nl-query.NLQuery.html +3 -0
- package/docs/api/module-ai_nl-query.html +3 -0
- package/docs/api/module-ai_relationships-RelationshipDiscovery.html +6 -0
- package/docs/api/module-ai_relationships.RelationshipDiscovery.html +3 -0
- package/docs/api/module-ai_relationships.html +3 -0
- package/docs/api/module-ai_schema-extractor-SchemaExtractor.html +5 -0
- package/docs/api/module-ai_schema-extractor.SchemaExtractor.html +3 -0
- package/docs/api/module-ai_schema-extractor.html +3 -0
- package/docs/api/module-ai_spatial-SpatialAnalysis.html +6 -0
- package/docs/api/module-ai_spatial.SpatialAnalysis.html +3 -0
- package/docs/api/module-ai_spatial.html +3 -0
- package/docs/api/module-ai_tts-TTS.html +5 -0
- package/docs/api/module-ai_tts.TTS.html +3 -0
- package/docs/api/module-ai_tts.html +3 -0
- package/docs/api/module-content_social-protocols.html +3 -0
- package/docs/api/module-core_holosphere-HoloSphere.html +6 -0
- package/docs/api/module-core_holosphere.HoloSphere.html +3 -0
- package/docs/api/module-core_holosphere.html +3 -0
- package/docs/api/module-crypto_nostr-utils.html +3 -0
- package/docs/api/module-crypto_secp256k1.html +3 -0
- package/docs/api/module-federation_hologram.html +3 -0
- package/docs/api/module-hierarchical_upcast.html +3 -0
- package/docs/api/module-holosphere-HoloSphereBase.html +3 -0
- package/docs/api/module-holosphere.html +3 -0
- package/docs/api/module-lib_ai-methods.html +3 -0
- package/docs/api/module-lib_contract-methods.html +3 -0
- package/docs/api/module-lib_errors-AuthorizationError.html +3 -0
- package/docs/api/module-lib_errors-ValidationError.html +3 -0
- package/docs/api/module-lib_errors.AuthorizationError.html +3 -0
- package/docs/api/module-lib_errors.ValidationError.html +3 -0
- package/docs/api/module-lib_errors.html +3 -0
- package/docs/api/module-lib_federation-methods.html +3 -0
- package/docs/api/module-lib_index.html +3 -0
- package/docs/api/module-schema_validator-ValidationError.html +3 -0
- package/docs/api/module-schema_validator.ValidationError.html +3 -0
- package/docs/api/module-schema_validator.html +3 -0
- package/docs/api/module-spatial_h3-operations.html +4 -0
- package/docs/api/module-storage_backend-factory.BackendFactory.html +3 -0
- package/docs/api/module-storage_backend-factory.html +3 -0
- package/docs/api/module-storage_backend-interface-StorageBackend.html +3 -0
- package/docs/api/module-storage_backend-interface.StorageBackend.html +3 -0
- package/docs/api/module-storage_backend-interface.html +3 -0
- package/docs/api/module-storage_backends_activitypub-backend-ActivityPubBackend.html +7 -0
- package/docs/api/module-storage_backends_activitypub-backend.ActivityPubBackend.html +3 -0
- package/docs/api/module-storage_backends_activitypub-backend.html +3 -0
- package/docs/api/module-storage_backends_activitypub_server-ActivityPubServer.html +8 -0
- package/docs/api/module-storage_backends_activitypub_server.ActivityPubServer.html +3 -0
- package/docs/api/module-storage_backends_activitypub_server.html +3 -0
- package/docs/api/module-storage_backends_gundb-backend-GunDBBackend.html +7 -0
- package/docs/api/module-storage_backends_gundb-backend.GunDBBackend.html +3 -0
- package/docs/api/module-storage_backends_gundb-backend.html +3 -0
- package/docs/api/module-storage_backends_nostr-backend-NostrBackend.html +8 -0
- package/docs/api/module-storage_backends_nostr-backend.NostrBackend.html +3 -0
- package/docs/api/module-storage_backends_nostr-backend.html +3 -0
- package/docs/api/module-storage_filesystem-storage-FileSystemStorage.html +5 -0
- package/docs/api/module-storage_filesystem-storage-browser-FileSystemStorage.html +3 -0
- package/docs/api/module-storage_filesystem-storage-browser.FileSystemStorage.html +3 -0
- package/docs/api/module-storage_filesystem-storage-browser.html +3 -0
- package/docs/api/module-storage_filesystem-storage.FileSystemStorage.html +3 -0
- package/docs/api/module-storage_filesystem-storage.html +3 -0
- package/docs/api/module-storage_global-tables.html +3 -0
- package/docs/api/module-storage_gun-async.html +3 -0
- package/docs/api/module-storage_gun-auth-GunAuth.html +5 -0
- package/docs/api/module-storage_gun-auth.GunAuth.html +3 -0
- package/docs/api/module-storage_gun-auth.html +3 -0
- package/docs/api/module-storage_gun-federation.html +3 -0
- package/docs/api/module-storage_gun-references-GunReferenceHandler.html +5 -0
- package/docs/api/module-storage_gun-references.GunReferenceHandler.html +3 -0
- package/docs/api/module-storage_gun-references.html +3 -0
- package/docs/api/module-storage_gun-schema-GunSchemaValidator.html +5 -0
- package/docs/api/module-storage_gun-schema.GunSchemaValidator.html +3 -0
- package/docs/api/module-storage_gun-schema.html +3 -0
- package/docs/api/module-storage_gun-wrapper.html +11 -0
- package/docs/api/module-storage_indexeddb-storage-IndexedDBStorage.html +5 -0
- package/docs/api/module-storage_indexeddb-storage.IndexedDBStorage.html +3 -0
- package/docs/api/module-storage_indexeddb-storage.html +3 -0
- package/docs/api/module-storage_key-storage-simple.html +3 -0
- package/docs/api/module-storage_key-storage.html +4 -0
- package/docs/api/module-storage_memory-storage-MemoryStorage.html +5 -0
- package/docs/api/module-storage_memory-storage.MemoryStorage.html +3 -0
- package/docs/api/module-storage_memory-storage.html +3 -0
- package/docs/api/module-storage_migration-MigrationTool.html +6 -0
- package/docs/api/module-storage_migration.MigrationTool.html +3 -0
- package/docs/api/module-storage_migration.html +3 -0
- package/docs/api/module-storage_nostr-async.html +18 -0
- package/docs/api/module-storage_nostr-client-LRUCache.html +3 -0
- package/docs/api/module-storage_nostr-client-NostrClient.html +7 -0
- package/docs/api/module-storage_nostr-client.NostrClient.html +15 -0
- package/docs/api/module-storage_nostr-client.html +6 -0
- package/docs/api/module-storage_nostr-wrapper.html +3 -0
- package/docs/api/module-storage_outbox-queue-OutboxQueue.html +4 -0
- package/docs/api/module-storage_outbox-queue.OutboxQueue.html +3 -0
- package/docs/api/module-storage_outbox-queue.html +3 -0
- package/docs/api/module-storage_persistent-storage-PersistentStorage.html +3 -0
- package/docs/api/module-storage_persistent-storage.html +4 -0
- package/docs/api/module-storage_sync-service-SyncService.html +5 -0
- package/docs/api/module-storage_sync-service.SyncService.html +3 -0
- package/docs/api/module-storage_sync-service.html +3 -0
- package/docs/api/module-storage_unified-storage.html +3 -0
- package/docs/api/module-subscriptions_manager.SubscriptionRegistry.html +3 -0
- package/docs/api/module-subscriptions_manager.html +3 -0
- package/docs/api/schema_validator.js.html +113 -0
- package/docs/api/scripts/core.js +726 -0
- package/docs/api/scripts/core.min.js +23 -0
- package/docs/api/scripts/resize.js +90 -0
- package/docs/api/scripts/search.js +265 -0
- package/docs/api/scripts/search.min.js +6 -0
- package/docs/api/scripts/third-party/Apache-License-2.0.txt +202 -0
- package/docs/api/scripts/third-party/fuse.js +9 -0
- package/docs/api/scripts/third-party/hljs-line-num-original.js +369 -0
- package/docs/api/scripts/third-party/hljs-line-num.js +1 -0
- package/docs/api/scripts/third-party/hljs-original.js +5171 -0
- package/docs/api/scripts/third-party/hljs.js +1 -0
- package/docs/api/scripts/third-party/popper.js +5 -0
- package/docs/api/scripts/third-party/tippy.js +1 -0
- package/docs/api/scripts/third-party/tocbot.js +672 -0
- package/docs/api/scripts/third-party/tocbot.min.js +1 -0
- package/docs/api/spatial_h3-operations.js.html +129 -0
- package/docs/api/storage_backend-factory.js.html +133 -0
- package/docs/api/storage_backend-interface.js.html +164 -0
- package/docs/api/storage_backends_activitypub-backend.js.html +298 -0
- package/docs/api/storage_backends_activitypub_server.js.html +678 -0
- package/docs/api/storage_backends_gundb-backend.js.html +878 -0
- package/docs/api/storage_backends_nostr-backend.js.html +254 -0
- package/docs/api/storage_filesystem-storage-browser.js.html +83 -0
- package/docs/api/storage_filesystem-storage.js.html +207 -0
- package/docs/api/storage_global-tables.js.html +116 -0
- package/docs/api/storage_gun-async.js.html +344 -0
- package/docs/api/storage_gun-auth.js.html +376 -0
- package/docs/api/storage_gun-federation.js.html +788 -0
- package/docs/api/storage_gun-references.js.html +212 -0
- package/docs/api/storage_gun-schema.js.html +309 -0
- package/docs/api/storage_gun-wrapper.js.html +645 -0
- package/docs/api/storage_indexeddb-storage.js.html +224 -0
- package/docs/api/storage_key-storage-simple.js.html +102 -0
- package/docs/api/storage_key-storage.js.html +171 -0
- package/docs/api/storage_memory-storage.js.html +128 -0
- package/docs/api/storage_migration.js.html +354 -0
- package/docs/api/storage_nostr-async.js.html +1076 -0
- package/docs/api/storage_nostr-client.js.html +1598 -0
- package/docs/api/storage_nostr-wrapper.js.html +218 -0
- package/docs/api/storage_outbox-queue.js.html +248 -0
- package/docs/api/storage_persistent-storage.js.html +160 -0
- package/docs/api/storage_sync-service.js.html +201 -0
- package/docs/api/storage_unified-storage.js.html +157 -0
- package/docs/api/styles/clean-jsdoc-theme-base.css +1159 -0
- package/docs/api/styles/clean-jsdoc-theme-dark.css +412 -0
- package/docs/api/styles/clean-jsdoc-theme-light.css +482 -0
- package/docs/api/styles/clean-jsdoc-theme-scrollbar.css +30 -0
- package/docs/api/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
- package/docs/api/styles/clean-jsdoc-theme.min.css +1 -0
- package/docs/api/subscriptions_manager.js.html +162 -0
- package/docs/contracts/api-interface.md +793 -0
- package/docs/data-model.md +476 -0
- package/docs/gun-async-usage.md +338 -0
- package/docs/plan.md +349 -0
- package/docs/quickstart.md +674 -0
- package/docs/research.md +362 -0
- package/docs/spec.md +244 -0
- package/docs/storage-backends.md +326 -0
- package/docs/tasks.md +947 -0
- package/examples/demo.html +47 -0
- package/examples/holosphere-widget.js +1242 -0
- package/examples/widget-demo.html +274 -0
- package/examples/widget.html +703 -0
- package/jsdoc.json +26 -0
- package/package.json +25 -7
- package/src/ai/aggregation.js +13 -2
- package/src/ai/breakdown.js +12 -2
- package/src/ai/classifier.js +14 -3
- package/src/ai/council.js +22 -7
- package/src/ai/embeddings.js +37 -15
- package/src/ai/federation-ai.js +13 -2
- package/src/ai/h3-ai.js +14 -2
- package/src/ai/index.js +16 -7
- package/src/ai/json-ops.js +18 -5
- package/src/ai/llm-service.js +62 -31
- package/src/ai/nl-query.js +12 -2
- package/src/ai/relationships.js +13 -2
- package/src/ai/schema-extractor.js +24 -10
- package/src/ai/spatial.js +13 -2
- package/src/ai/tts.js +25 -8
- package/src/cdn-entry.js +22 -0
- package/src/content/social-protocols.js +34 -25
- package/src/contracts/abis/Appreciative.json +1280 -0
- package/src/contracts/abis/AppreciativeFactory.json +101 -0
- package/src/contracts/abis/Bundle.json +1438 -0
- package/src/contracts/abis/BundleFactory.json +106 -0
- package/src/contracts/abis/Holon.json +881 -0
- package/src/contracts/abis/Holons.json +330 -0
- package/src/contracts/abis/Managed.json +1262 -0
- package/src/contracts/abis/ManagedFactory.json +149 -0
- package/src/contracts/abis/Membrane.json +261 -0
- package/src/contracts/abis/Splitter.json +1624 -0
- package/src/contracts/abis/SplitterFactory.json +220 -0
- package/src/contracts/abis/TestToken.json +321 -0
- package/src/contracts/abis/Zoned.json +1461 -0
- package/src/contracts/abis/ZonedFactory.json +154 -0
- package/src/contracts/chain-manager.js +403 -0
- package/src/contracts/deployer.js +500 -0
- package/src/contracts/event-listener.js +539 -0
- package/src/contracts/holon-contracts.js +359 -0
- package/src/contracts/index.js +82 -0
- package/src/contracts/networks.js +229 -0
- package/src/contracts/operations.js +687 -0
- package/src/contracts/queries.js +638 -0
- package/src/core/holosphere.js +487 -6
- package/src/crypto/nostr-utils.js +303 -0
- package/src/crypto/secp256k1.js +7 -2
- package/src/federation/handshake.js +475 -0
- package/src/federation/hologram.js +117 -3
- package/src/hierarchical/upcast.js +40 -25
- package/src/index.js +1501 -1909
- package/src/lib/ai-methods.js +657 -0
- package/src/lib/contract-methods.js +442 -0
- package/src/lib/errors.js +53 -0
- package/src/lib/federation-methods.js +345 -0
- package/src/lib/index.js +30 -0
- package/src/schema/validator.js +22 -3
- package/src/spatial/h3-operations.js +19 -3
- package/src/storage/backend-factory.js +7 -2
- package/src/storage/backend-interface.js +21 -2
- package/src/storage/backends/activitypub/server.js +25 -3
- package/src/storage/backends/activitypub-backend.js +25 -2
- package/src/storage/backends/gundb-backend.js +692 -50
- package/src/storage/backends/nostr-backend.js +116 -1
- package/src/storage/filesystem-storage-browser.js +42 -2
- package/src/storage/filesystem-storage.js +72 -5
- package/src/storage/global-tables.js +35 -3
- package/src/storage/gun-async.js +75 -15
- package/src/storage/gun-auth.js +373 -0
- package/src/storage/gun-federation.js +785 -0
- package/src/storage/gun-references.js +209 -0
- package/src/storage/gun-schema.js +306 -0
- package/src/storage/gun-wrapper.js +475 -54
- package/src/storage/indexeddb-storage.js +112 -13
- package/src/storage/key-storage-simple.js +32 -9
- package/src/storage/key-storage.js +45 -13
- package/src/storage/memory-storage.js +68 -2
- package/src/storage/migration.js +20 -7
- package/src/storage/nostr-async.js +412 -122
- package/src/storage/nostr-client.js +749 -76
- package/src/storage/nostr-wrapper.js +6 -2
- package/src/storage/outbox-queue.js +55 -18
- package/src/storage/persistent-storage.js +62 -14
- package/src/storage/sync-service.js +51 -17
- package/src/storage/unified-storage.js +154 -0
- package/src/subscriptions/manager.js +34 -17
- package/types/index.d.ts +133 -0
- package/vite.config.cdn.js +60 -0
- package/tests/unit/ai/aggregation.test.js +0 -295
- package/tests/unit/ai/breakdown.test.js +0 -446
- package/tests/unit/ai/classifier.test.js +0 -294
- package/tests/unit/ai/council.test.js +0 -262
- package/tests/unit/ai/embeddings.test.js +0 -384
- package/tests/unit/ai/federation-ai.test.js +0 -344
- package/tests/unit/ai/h3-ai.test.js +0 -458
- package/tests/unit/ai/index.test.js +0 -304
- package/tests/unit/ai/json-ops.test.js +0 -307
- package/tests/unit/ai/llm-service.test.js +0 -390
- package/tests/unit/ai/nl-query.test.js +0 -383
- package/tests/unit/ai/relationships.test.js +0 -311
- package/tests/unit/ai/schema-extractor.test.js +0 -384
- package/tests/unit/ai/spatial.test.js +0 -279
- package/tests/unit/ai/tts.test.js +0 -279
- package/tests/unit/content.test.js +0 -332
- package/tests/unit/contract/core.test.js +0 -88
- package/tests/unit/contract/crypto.test.js +0 -198
- package/tests/unit/contract/data.test.js +0 -223
- package/tests/unit/contract/federation.test.js +0 -181
- package/tests/unit/contract/hierarchical.test.js +0 -113
- package/tests/unit/contract/schema.test.js +0 -114
- package/tests/unit/contract/social.test.js +0 -217
- package/tests/unit/contract/spatial.test.js +0 -110
- package/tests/unit/contract/subscriptions.test.js +0 -128
- package/tests/unit/contract/utils.test.js +0 -159
- package/tests/unit/core.test.js +0 -152
- package/tests/unit/crypto.test.js +0 -328
- package/tests/unit/federation.test.js +0 -234
- package/tests/unit/gun-async.test.js +0 -252
- package/tests/unit/hierarchical.test.js +0 -399
- package/tests/unit/integration/scenario-01-geographic-storage.test.js +0 -74
- package/tests/unit/integration/scenario-02-federation.test.js +0 -76
- package/tests/unit/integration/scenario-03-subscriptions.test.js +0 -102
- package/tests/unit/integration/scenario-04-validation.test.js +0 -129
- package/tests/unit/integration/scenario-05-hierarchy.test.js +0 -125
- package/tests/unit/integration/scenario-06-social.test.js +0 -135
- package/tests/unit/integration/scenario-07-persistence.test.js +0 -130
- package/tests/unit/integration/scenario-08-authorization.test.js +0 -161
- package/tests/unit/integration/scenario-09-cross-dimensional.test.js +0 -139
- package/tests/unit/integration/scenario-10-cross-holosphere-capabilities.test.js +0 -357
- package/tests/unit/integration/scenario-11-cross-holosphere-federation.test.js +0 -410
- package/tests/unit/integration/scenario-12-capability-federated-read.test.js +0 -719
- package/tests/unit/performance/benchmark.test.js +0 -85
- package/tests/unit/schema.test.js +0 -213
- package/tests/unit/spatial.test.js +0 -158
- package/tests/unit/storage.test.js +0 -195
- package/tests/unit/subscriptions.test.js +0 -328
- package/tests/unit/test-data-permanence-debug.js +0 -197
- package/tests/unit/test-data-permanence.js +0 -340
- package/tests/unit/test-key-persistence-fixed.js +0 -148
- package/tests/unit/test-key-persistence.js +0 -172
- package/tests/unit/test-relay-permanence.js +0 -376
- package/tests/unit/test-second-node.js +0 -95
- package/tests/unit/test-simple-write.js +0 -89
- /package/{cleanup-test-data.js → scripts/cleanup-test-data.js} +0 -0
- /package/{test-ai-real-api.js → scripts/test-ai-real-api.js} +0 -0
package/FEATURES.md
ADDED
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
# Top 30 Features of HoloSphere
|
|
2
|
+
|
|
3
|
+
HoloSphere is a distributed, local-first geospatial communication system that combines hexagonal spatial indexing with decentralized data storage and AI capabilities.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. H3 Hexagonal Spatial Indexing
|
|
8
|
+
|
|
9
|
+
Organize data by geographic location using Uber's H3 hierarchical hexagonal grid system. 16 resolution levels from continental scale (res 0) to sub-meter precision (res 15).
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
const holon = h3.latLngToCell(lat, lng, resolution);
|
|
13
|
+
await hs.write(holon, 'events', eventData);
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. Multi-Backend Storage Architecture
|
|
19
|
+
|
|
20
|
+
Pluggable storage backends supporting three decentralized protocols:
|
|
21
|
+
|
|
22
|
+
| Backend | Protocol | Best For |
|
|
23
|
+
|---------|----------|----------|
|
|
24
|
+
| **Nostr** | NIP-01 events | Censorship-resistant P2P storage |
|
|
25
|
+
| **GunDB** | CRDT + WebRTC | Real-time collaboration |
|
|
26
|
+
| **ActivityPub** | Fediverse | Social federation |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Local-First Architecture
|
|
31
|
+
|
|
32
|
+
Guaranteed delivery with offline support. Data writes to local storage first, then syncs to network when available. Never lose data due to network issues.
|
|
33
|
+
|
|
34
|
+
- Outbox queue for pending operations
|
|
35
|
+
- Automatic retry with exponential backoff
|
|
36
|
+
- Conflict resolution via CRDTs
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 4. Hologram Federation
|
|
41
|
+
|
|
42
|
+
Lightweight cross-holon data references that enable data discovery across geographic boundaries without duplicating data.
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
// Create a hologram (reference) to data in another holon
|
|
46
|
+
await hs.federateHolon(targetHolon, sourceHolon, lens, key);
|
|
47
|
+
|
|
48
|
+
// Reading automatically resolves holograms
|
|
49
|
+
const data = await hs.read(targetHolon, lens, key); // Returns source data
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 5. Capability-Based Authorization
|
|
55
|
+
|
|
56
|
+
Secure cross-HoloSphere authorization using cryptographic tokens:
|
|
57
|
+
|
|
58
|
+
- Time-limited capability tokens with signatures
|
|
59
|
+
- Scope-based permissions (holon, lens, data level)
|
|
60
|
+
- Inbound/outbound capability registry
|
|
61
|
+
- Delegation and revocation support
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 6. AI-Powered LLM Service
|
|
66
|
+
|
|
67
|
+
Comprehensive OpenAI integration for intelligent data processing:
|
|
68
|
+
|
|
69
|
+
- Text summarization and analysis
|
|
70
|
+
- Automatic categorization
|
|
71
|
+
- Multi-language translation
|
|
72
|
+
- Sentiment analysis
|
|
73
|
+
- Content moderation
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
const summary = await hs.ai.summarize(longText);
|
|
77
|
+
const category = await hs.ai.categorize(content, ['news', 'events', 'projects']);
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 7. Vector Embeddings & Semantic Search
|
|
83
|
+
|
|
84
|
+
Generate and search vector embeddings for semantic similarity:
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
const embedding = await hs.ai.embed('Find renewable energy projects');
|
|
88
|
+
const results = await hs.ai.semanticSearch(query, documents, { topK: 10 });
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 8. Multi-Perspective AI Council
|
|
94
|
+
|
|
95
|
+
Balanced decision-making through multiple AI perspectives analyzing the same question from different viewpoints (skeptic, optimist, pragmatist, etc.).
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
const decision = await hs.ai.council.deliberate(
|
|
99
|
+
'Should we implement feature X?',
|
|
100
|
+
{ perspectives: ['technical', 'business', 'user-experience'] }
|
|
101
|
+
);
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 9. Natural Language Query Interface
|
|
107
|
+
|
|
108
|
+
Query your data using plain English instead of structured queries:
|
|
109
|
+
|
|
110
|
+
```javascript
|
|
111
|
+
const results = await hs.ai.query('Show me all events near Paris next week');
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 10. Smart Contract Integration
|
|
117
|
+
|
|
118
|
+
Ethereum-based fractal fund distribution with multi-chain support:
|
|
119
|
+
|
|
120
|
+
| Contract | Purpose |
|
|
121
|
+
|----------|---------|
|
|
122
|
+
| **Splitter** | Internal/external fund split with fractal nesting |
|
|
123
|
+
| **Managed** | Appreciation-based distribution |
|
|
124
|
+
| **Zoned** | Tier-based geographic zone rewards |
|
|
125
|
+
| **Appreciative** | Peer-to-peer appreciation tokens |
|
|
126
|
+
| **Bundle** | All-in-one 2-way split with steepness curve |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 11. Multi-Chain Support
|
|
131
|
+
|
|
132
|
+
Deploy and interact with contracts on multiple EVM chains:
|
|
133
|
+
|
|
134
|
+
- Ethereum Mainnet
|
|
135
|
+
- Polygon
|
|
136
|
+
- Arbitrum
|
|
137
|
+
- Base
|
|
138
|
+
- Optimism
|
|
139
|
+
- Sepolia (testnet)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 12. Real-Time Subscriptions
|
|
144
|
+
|
|
145
|
+
Subscribe to data changes with callbacks for live updates:
|
|
146
|
+
|
|
147
|
+
```javascript
|
|
148
|
+
const sub = await hs.subscribe(holon, lens, (data, key) => {
|
|
149
|
+
console.log('Data updated:', key, data);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Later: sub.unsubscribe();
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 13. Schema Validation
|
|
158
|
+
|
|
159
|
+
JSON Schema validation for data integrity with custom validators:
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
await hs.setSchema(holon, lens, {
|
|
163
|
+
type: 'object',
|
|
164
|
+
properties: {
|
|
165
|
+
title: { type: 'string', minLength: 1 },
|
|
166
|
+
date: { type: 'string', format: 'date' }
|
|
167
|
+
},
|
|
168
|
+
required: ['title']
|
|
169
|
+
});
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 14. Automatic Parent Propagation
|
|
175
|
+
|
|
176
|
+
Data automatically propagates to parent hexagons in the H3 hierarchy, enabling queries at any resolution level.
|
|
177
|
+
|
|
178
|
+
```javascript
|
|
179
|
+
// Write at resolution 9
|
|
180
|
+
await hs.write('891f1d48127ffff', 'events', event);
|
|
181
|
+
|
|
182
|
+
// Discoverable at resolution 7
|
|
183
|
+
const events = await hs.readAll('871f1d481ffffff', 'events');
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 15. Schema Extraction from Unstructured Text
|
|
189
|
+
|
|
190
|
+
AI-powered extraction of structured data from free-form text:
|
|
191
|
+
|
|
192
|
+
```javascript
|
|
193
|
+
const structured = await hs.ai.extractSchema(
|
|
194
|
+
'Meeting tomorrow at 3pm with John about the budget review',
|
|
195
|
+
{ fields: ['date', 'time', 'attendees', 'topic'] }
|
|
196
|
+
);
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 16. Fuzzy JSON Operations
|
|
202
|
+
|
|
203
|
+
Semantic merge, diff, and union operations on JSON data:
|
|
204
|
+
|
|
205
|
+
```javascript
|
|
206
|
+
const merged = await hs.ai.fuzzyMerge(doc1, doc2);
|
|
207
|
+
const diff = await hs.ai.fuzzyDiff(before, after);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 17. Spatial Analysis with AI
|
|
213
|
+
|
|
214
|
+
Geographic pattern recognition and spatial clustering:
|
|
215
|
+
|
|
216
|
+
```javascript
|
|
217
|
+
const analysis = await hs.ai.analyzeSpatial(geoData, {
|
|
218
|
+
detectClusters: true,
|
|
219
|
+
findPatterns: true
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 18. Task Breakdown & Decomposition
|
|
226
|
+
|
|
227
|
+
AI-powered hierarchical task decomposition for complex projects:
|
|
228
|
+
|
|
229
|
+
```javascript
|
|
230
|
+
const tasks = await hs.ai.breakdown('Build a community garden', {
|
|
231
|
+
maxDepth: 3,
|
|
232
|
+
estimateEffort: true
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 19. Relationship Discovery
|
|
239
|
+
|
|
240
|
+
Automatically discover relationships between data entities:
|
|
241
|
+
|
|
242
|
+
```javascript
|
|
243
|
+
const relationships = await hs.ai.discoverRelationships(entities);
|
|
244
|
+
// Returns: [{from: 'A', to: 'B', type: 'collaborates_with', confidence: 0.85}]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 20. Text-to-Speech Integration
|
|
250
|
+
|
|
251
|
+
Convert text to speech with multiple voice options:
|
|
252
|
+
|
|
253
|
+
```javascript
|
|
254
|
+
const audio = await hs.ai.textToSpeech(text, { voice: 'alloy' });
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 21. CDN-Ready Browser Bundle
|
|
260
|
+
|
|
261
|
+
Direct script tag inclusion for quick web integration:
|
|
262
|
+
|
|
263
|
+
```html
|
|
264
|
+
<script src="https://unpkg.com/holosphere@next/dist/holosphere.cdn.js"></script>
|
|
265
|
+
<script>
|
|
266
|
+
const hs = new HoloSphere({ backend: 'nostr', relays: ['wss://...'] });
|
|
267
|
+
</script>
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 22. Nostr Protocol Integration
|
|
273
|
+
|
|
274
|
+
Full NIP-01 compliance with:
|
|
275
|
+
|
|
276
|
+
- Long-lived subscriptions
|
|
277
|
+
- Query deduplication
|
|
278
|
+
- Intelligent caching
|
|
279
|
+
- Multiple relay support
|
|
280
|
+
- Automatic reconnection
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 23. GunDB Real-Time Sync
|
|
285
|
+
|
|
286
|
+
CRDT-based conflict resolution with:
|
|
287
|
+
|
|
288
|
+
- WebRTC peer-to-peer connections
|
|
289
|
+
- Radisk persistence
|
|
290
|
+
- User authentication
|
|
291
|
+
- Encrypted user spaces
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 24. ActivityPub Federation
|
|
296
|
+
|
|
297
|
+
Fediverse compatibility for social federation:
|
|
298
|
+
|
|
299
|
+
- Actor creation and management
|
|
300
|
+
- Inbox/Outbox message handling
|
|
301
|
+
- Server-Sent Events for real-time updates
|
|
302
|
+
- HTTP Signatures for security
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 25. Data Migration Tools
|
|
307
|
+
|
|
308
|
+
Seamlessly migrate data between backends:
|
|
309
|
+
|
|
310
|
+
```javascript
|
|
311
|
+
const tool = new MigrationTool();
|
|
312
|
+
await tool.setSource('nostr', { relays: ['wss://old.relay'] });
|
|
313
|
+
await tool.setTarget('gundb', { peers: ['wss://new.peer'] });
|
|
314
|
+
await tool.migrate();
|
|
315
|
+
await tool.validate(); // Verify integrity
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 26. Global Data Operations
|
|
321
|
+
|
|
322
|
+
Store application-wide data not tied to geographic locations:
|
|
323
|
+
|
|
324
|
+
```javascript
|
|
325
|
+
await hs.writeGlobal('schemas', 'event-schema', schema);
|
|
326
|
+
await hs.writeGlobal('config', 'app-settings', settings);
|
|
327
|
+
const config = await hs.readGlobal('config', 'app-settings');
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## 27. Circular Reference Prevention
|
|
333
|
+
|
|
334
|
+
Built-in safeguards against infinite hologram reference loops with automatic cycle detection.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 28. TypeScript Support
|
|
339
|
+
|
|
340
|
+
Comprehensive TypeScript type definitions for full IDE support:
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
import { HoloSphere, Holon, Lens, HologramRef } from 'holosphere';
|
|
344
|
+
|
|
345
|
+
const hs: HoloSphere = new HoloSphere(config);
|
|
346
|
+
const data: MyDataType = await hs.read<MyDataType>(holon, lens, id);
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## 29. Contract Event Listening
|
|
352
|
+
|
|
353
|
+
Real-time blockchain event monitoring:
|
|
354
|
+
|
|
355
|
+
```javascript
|
|
356
|
+
hs.contracts.onEvent('FundsDistributed', (event) => {
|
|
357
|
+
console.log('Distribution:', event.args.recipients, event.args.amounts);
|
|
358
|
+
});
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## 30. Federation Advisor AI
|
|
364
|
+
|
|
365
|
+
AI-powered recommendations for optimal federation strategies:
|
|
366
|
+
|
|
367
|
+
```javascript
|
|
368
|
+
const advice = await hs.ai.federationAdvisor({
|
|
369
|
+
sourceHolon,
|
|
370
|
+
candidateTargets,
|
|
371
|
+
dataTypes: ['events', 'projects']
|
|
372
|
+
});
|
|
373
|
+
// Returns recommended federation topology
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Quick Start
|
|
379
|
+
|
|
380
|
+
```javascript
|
|
381
|
+
import { HoloSphere } from 'holosphere';
|
|
382
|
+
|
|
383
|
+
// Initialize with Nostr backend
|
|
384
|
+
const hs = new HoloSphere({
|
|
385
|
+
appName: 'myapp',
|
|
386
|
+
backend: 'nostr',
|
|
387
|
+
relays: ['wss://relay.damus.io', 'wss://nos.lol']
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
await hs.init();
|
|
391
|
+
|
|
392
|
+
// Write geospatial data
|
|
393
|
+
const holon = '891f1d48127ffff'; // H3 cell ID
|
|
394
|
+
await hs.write(holon, 'events', {
|
|
395
|
+
id: 'event-1',
|
|
396
|
+
title: 'Community Meetup',
|
|
397
|
+
date: '2025-01-15'
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// Read it back
|
|
401
|
+
const event = await hs.read(holon, 'events', 'event-1');
|
|
402
|
+
|
|
403
|
+
// Subscribe to changes
|
|
404
|
+
await hs.subscribe(holon, 'events', (data, key) => {
|
|
405
|
+
console.log('Updated:', key);
|
|
406
|
+
});
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## Installation
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
npm install holosphere@next
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Or via CDN:
|
|
418
|
+
|
|
419
|
+
```html
|
|
420
|
+
<script src="https://unpkg.com/holosphere@next/dist/holosphere.cdn.js"></script>
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## License
|
|
426
|
+
|
|
427
|
+
MIT License - Open source and free to use.
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
*HoloSphere: Distributed geospatial communication for a decentralized world.*
|
package/LICENSE
CHANGED
|
@@ -1,56 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
Version 3, 29 June 2007
|
|
1
|
+
# HoloSphere - Dual Licensed
|
|
3
2
|
|
|
4
|
-
Copyright
|
|
3
|
+
Copyright (c) 2024-2025 Roberto Valenti
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
This software is available under two licensing options:
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
## 1. AGPL-3.0 (Open Source)
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
For open source projects and non-commercial use, HoloSphere is licensed under
|
|
10
|
+
the GNU Affero General Public License version 3.0 (AGPL-3.0).
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
See [LICENSE-AGPL.md](LICENSE-AGPL.md) for the full license text.
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
**Key requirements:**
|
|
15
|
+
- You must make your source code available if you modify and distribute the software
|
|
16
|
+
- Network use (SaaS) counts as distribution - you must provide source access to users
|
|
17
|
+
- Derivative works must also be licensed under AGPL-3.0
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
## 2. Commercial License
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
For proprietary or commercial use without AGPL obligations, a commercial license
|
|
22
|
+
is available.
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
**Benefits of commercial license:**
|
|
25
|
+
- Use in proprietary/closed-source applications
|
|
26
|
+
- No copyleft requirements
|
|
27
|
+
- No source code disclosure obligations
|
|
28
|
+
- Priority support available
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
**Contact for commercial licensing:**
|
|
31
|
+
- GitHub: https://github.com/liminalvillage/holosphere2/issues
|
|
32
|
+
- Open an issue with the "commercial-license" label
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
|
|
34
|
+
---
|
|
28
35
|
|
|
29
|
-
|
|
30
|
-
b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
|
|
31
|
-
3. Object Code Incorporating Material from Library Header Files.
|
|
32
|
-
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
|
|
36
|
+
By using this software, you agree to the terms of one of these licenses.
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
|
|
38
|
+
If you are using this software in an open source project under AGPL-3.0
|
|
39
|
+
compatible terms, no further action is required beyond compliance with the
|
|
40
|
+
AGPL-3.0 license.
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
|
|
42
|
-
d) Do one of the following:
|
|
43
|
-
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
|
|
44
|
-
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
|
|
45
|
-
e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
|
|
46
|
-
5. Combined Libraries.
|
|
47
|
-
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:
|
|
48
|
-
|
|
49
|
-
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
|
|
50
|
-
b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
|
|
51
|
-
6. Revised Versions of the GNU Lesser General Public License.
|
|
52
|
-
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
|
|
53
|
-
|
|
54
|
-
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.
|
|
55
|
-
|
|
56
|
-
If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.
|
|
42
|
+
If you need a commercial license, please contact us before using this software
|
|
43
|
+
in a proprietary context.
|