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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"list":[{"title":"FederationRequestPayload","link":"<a href=\"global.html#FederationRequestPayload\">FederationRequestPayload</a>"},{"title":"FederationResponsePayload","link":"<a href=\"global.html#FederationResponsePayload\">FederationResponsePayload</a>"},{"title":"acceptFederationRequest","link":"<a href=\"global.html#acceptFederationRequest\">acceptFederationRequest</a>","description":"<p>Accept a federation request</p>"},{"title":"acceptFederationRequest","link":"<a href=\"global.html#acceptFederationRequest\">acceptFederationRequest</a>","description":"<p>Accept a federation request\nCreates local federation record and sends acceptance DM</p>"},{"title":"addFederatedPartner","link":"<a href=\"global.html#addFederatedPartner\">addFederatedPartner</a>","description":"<p>Add a federated partner</p>"},{"title":"cleanupExpiredCapabilities","link":"<a href=\"global.html#cleanupExpiredCapabilities\">cleanupExpiredCapabilities</a>","description":"<p>Clean up expired capabilities from the registry</p>"},{"title":"createFederationRequest","link":"<a href=\"global.html#createFederationRequest\">createFederationRequest</a>","description":"<p>Create a federation request payload</p>"},{"title":"createFederationResponse","link":"<a href=\"global.html#createFederationResponse\">createFederationResponse</a>","description":"<p>Create a federation response payload</p>"},{"title":"declineFederationRequest","link":"<a href=\"global.html#declineFederationRequest\">declineFederationRequest</a>","description":"<p>Decline a federation request</p>"},{"title":"getCapabilityForAuthor","link":"<a href=\"global.html#getCapabilityForAuthor\">getCapabilityForAuthor</a>","description":"<p>Get capability for a specific author and scope\nFinds a valid, non-expired capability that covers the requested scope</p>"},{"title":"getFederatedAuthors","link":"<a href=\"global.html#getFederatedAuthors\">getFederatedAuthors</a>","description":"<p>Get all federated author public keys</p>"},{"title":"getFederatedAuthorsForScope","link":"<a href=\"global.html#getFederatedAuthorsForScope\">getFederatedAuthorsForScope</a>","description":"<p>Get all federated authors that have granted capabilities for a given scope\nReturns pubKeys of partners who have given us access to read/write their data</p>"},{"title":"getFederatedPartner","link":"<a href=\"global.html#getFederatedPartner\">getFederatedPartner</a>","description":"<p>Get a specific federated partner</p>"},{"title":"getFederationRegistry","link":"<a href=\"global.html#getFederationRegistry\">getFederationRegistry</a>","description":"<p>Get the federation registry for this holosphere</p>"},{"title":"getPendingFederationRequests","link":"<a href=\"global.html#getPendingFederationRequests\">getPendingFederationRequests</a>","description":"<p>Query for pending federation requests (requests we've sent that haven't been answered)</p>"},{"title":"initiateFederationHandshake","link":"<a href=\"global.html#initiateFederationHandshake\">initiateFederationHandshake</a>","description":"<p>Initiate a federation handshake with a partner\nCreates local federation record and sends DM to partner</p>"},{"title":"isFederationRequest","link":"<a href=\"global.html#isFederationRequest\">isFederationRequest</a>","description":"<p>Check if payload is a federation request</p>"},{"title":"isFederationResponse","link":"<a href=\"global.html#isFederationResponse\">isFederationResponse</a>","description":"<p>Check if payload is a federation response</p>"},{"title":"module:ai","link":"<a href=\"module-ai.html\">ai</a>","description":"<p>HoloSphere AI Module - Comprehensive AI functionality using OpenAI.\nProvides unified access to all AI services including LLM, embeddings, semantic operations,\nspatial analysis, task breakdown, and relationship discovery.</p>"},{"title":"module:ai.createAIServices","link":"<a href=\"module-ai.html#.createAIServices\">createAIServices</a>","description":"<p>Factory function to create all AI services with shared LLM instance.\nProvides a convenient way to initialize the complete AI stack with a single call.</p>"},{"title":"module:ai/aggregation","link":"<a href=\"module-ai_aggregation.html\">ai/aggregation</a>","description":"<p>AI-assisted hierarchical data aggregation up the H3 holon tree.\nProvides smart upcast, summary generation, and temporal comparison across hierarchical levels.</p>"},{"title":"module:ai/aggregation.SmartAggregation","link":"<a href=\"module-ai_aggregation.SmartAggregation.html\">SmartAggregation</a>"},{"title":"module:ai/aggregation.SmartAggregation#aggregateChildren","link":"<a href=\"module-ai_aggregation.SmartAggregation.html#aggregateChildren\">aggregateChildren</a>","description":"<p>Aggregate child summaries into parent</p>"},{"title":"module:ai/aggregation.SmartAggregation#comparePeriods","link":"<a href=\"module-ai_aggregation.SmartAggregation.html#comparePeriods\">comparePeriods</a>","description":"<p>Compare aggregations across different time periods</p>"},{"title":"module:ai/aggregation.SmartAggregation#generateHolonSummary","link":"<a href=\"module-ai_aggregation.SmartAggregation.html#generateHolonSummary\">generateHolonSummary</a>","description":"<p>Generate comprehensive holon summary</p>"},{"title":"module:ai/aggregation.SmartAggregation#setHoloSphere","link":"<a href=\"module-ai_aggregation.SmartAggregation.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/aggregation.SmartAggregation#smartUpcast","link":"<a href=\"module-ai_aggregation.SmartAggregation.html#smartUpcast\">smartUpcast</a>","description":"<p>Smart upcast - AI-summarized hierarchical aggregation</p>"},{"title":"module:ai/aggregation~SmartAggregation","link":"<a href=\"module-ai_aggregation-SmartAggregation.html\">SmartAggregation</a>","description":"<p>Service class for intelligent hierarchical data aggregation.\nAutomatically summarizes data at each level and propagates insights up the H3 hierarchy,\nenabling multi-scale understanding of geographic data.</p>"},{"title":"module:ai/breakdown","link":"<a href=\"module-ai_breakdown.html\">ai/breakdown</a>","description":"<p>Recursive task decomposition system for breaking down complex tasks into manageable subtasks.\nProvides AI-powered hierarchical task breakdown with dependency tracking and progress monitoring.</p>"},{"title":"module:ai/breakdown.TaskBreakdown","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html\">TaskBreakdown</a>"},{"title":"module:ai/breakdown.TaskBreakdown#breakdown","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#breakdown\">breakdown</a>","description":"<p>Recursively break down a task/quest into subtasks</p>"},{"title":"module:ai/breakdown.TaskBreakdown#flatten","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#flatten\">flatten</a>","description":"<p>Flatten a breakdown tree into a list</p>"},{"title":"module:ai/breakdown.TaskBreakdown#getDependencyOrder","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#getDependencyOrder\">getDependencyOrder</a>","description":"<p>Get dependency order for execution</p>"},{"title":"module:ai/breakdown.TaskBreakdown#getProgress","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#getProgress\">getProgress</a>","description":"<p>Update progress on a breakdown tree</p>"},{"title":"module:ai/breakdown.TaskBreakdown#rebalance","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#rebalance\">rebalance</a>","description":"<p>Rebalance a breakdown tree (redistribute subtasks)</p>"},{"title":"module:ai/breakdown.TaskBreakdown#setHoloSphere","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/breakdown.TaskBreakdown#suggestStrategy","link":"<a href=\"module-ai_breakdown.TaskBreakdown.html#suggestStrategy\">suggestStrategy</a>","description":"<p>Suggest breakdown strategy for an item</p>"},{"title":"module:ai/breakdown~TaskBreakdown","link":"<a href=\"module-ai_breakdown-TaskBreakdown.html\">TaskBreakdown</a>","description":"<p>Service class for recursively decomposing tasks/quests into hierarchical subtasks.\nUses AI to intelligently break down complex tasks while maintaining dependency relationships\nand enabling progress tracking across the task tree.</p>"},{"title":"module:ai/classifier","link":"<a href=\"module-ai_classifier.html\">ai/classifier</a>","description":"<p>AI-powered content classification to appropriate data lenses.\nProvides automatic categorization, multi-label classification, and schema suggestion.</p>"},{"title":"module:ai/classifier.Classifier","link":"<a href=\"module-ai_classifier.Classifier.html\">Classifier</a>"},{"title":"module:ai/classifier.Classifier#analyzeCollection","link":"<a href=\"module-ai_classifier.Classifier.html#analyzeCollection\">analyzeCollection</a>","description":"<p>Get classification stats for a collection</p>"},{"title":"module:ai/classifier.Classifier#autoStore","link":"<a href=\"module-ai_classifier.Classifier.html#autoStore\">autoStore</a>","description":"<p>Auto-store content in the best lens</p>"},{"title":"module:ai/classifier.Classifier#classifyMultiple","link":"<a href=\"module-ai_classifier.Classifier.html#classifyMultiple\">classifyMultiple</a>","description":"<p>Classify content into multiple possible lenses</p>"},{"title":"module:ai/classifier.Classifier#classifyToLens","link":"<a href=\"module-ai_classifier.Classifier.html#classifyToLens\">classifyToLens</a>","description":"<p>Classify content into the best lens</p>"},{"title":"module:ai/classifier.Classifier#registerLens","link":"<a href=\"module-ai_classifier.Classifier.html#registerLens\">registerLens</a>","description":"<p>Register a lens with its description</p>"},{"title":"module:ai/classifier.Classifier#registerLenses","link":"<a href=\"module-ai_classifier.Classifier.html#registerLenses\">registerLenses</a>","description":"<p>Register multiple lenses</p>"},{"title":"module:ai/classifier.Classifier#setHoloSphere","link":"<a href=\"module-ai_classifier.Classifier.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/classifier.Classifier#suggestNewLens","link":"<a href=\"module-ai_classifier.Classifier.html#suggestNewLens\">suggestNewLens</a>","description":"<p>Suggest lens for new content type</p>"},{"title":"module:ai/classifier.Classifier#suggestSchema","link":"<a href=\"module-ai_classifier.Classifier.html#suggestSchema\">suggestSchema</a>","description":"<p>Analyze content and extract fields for schema</p>"},{"title":"module:ai/classifier.Classifier#validateForLens","link":"<a href=\"module-ai_classifier.Classifier.html#validateForLens\">validateForLens</a>","description":"<p>Validate content against lens schema</p>"},{"title":"module:ai/classifier~Classifier","link":"<a href=\"module-ai_classifier-Classifier.html\">Classifier</a>","description":"<p>Service class for automatically classifying content into appropriate lenses.\nUses AI to determine the best lens(es) for content storage and provides\nschema validation and suggestion capabilities.</p>"},{"title":"module:ai/council","link":"<a href=\"module-ai_council.html\">ai/council</a>","description":"<p>Multi-perspective wisdom gathering from different viewpoints.\nImplements a council of perspectives to analyze questions from diverse angles.</p>"},{"title":"module:ai/council.Council","link":"<a href=\"module-ai_council.Council.html\">Council</a>"},{"title":"module:ai/council.Council#ask","link":"<a href=\"module-ai_council.Council.html#ask\">ask</a>","description":"<p>Ask a question to the council and receive diverse perspective responses.</p>"},{"title":"module:ai/council.Council#askCustom","link":"<a href=\"module-ai_council.Council.html#askCustom\">askCustom</a>","description":"<p>Ask with custom perspectives (convenience method)</p>"},{"title":"module:ai/council.Council#askSingle","link":"<a href=\"module-ai_council.Council.html#askSingle\">askSingle</a>","description":"<p>Get a single perspective answer</p>"},{"title":"module:ai/council.Council#debate","link":"<a href=\"module-ai_council.Council.html#debate\">debate</a>","description":"<p>Debate between perspectives</p>"},{"title":"module:ai/council.Council#setPerspectives","link":"<a href=\"module-ai_council.Council.html#setPerspectives\">setPerspectives</a>","description":"<p>Set custom perspectives</p>"},{"title":"module:ai/council.Council.createPerspectives","link":"<a href=\"module-ai_council.Council.html#.createPerspectives\">createPerspectives</a>","description":"<p>Create custom perspectives from a list of names</p>"},{"title":"module:ai/council.Council.getDefaultPerspectives","link":"<a href=\"module-ai_council.Council.html#.getDefaultPerspectives\">getDefaultPerspectives</a>","description":"<p>Get default perspectives</p>"},{"title":"module:ai/council~Council","link":"<a href=\"module-ai_council-Council.html\">Council</a>","description":"<p>Service class for gathering multi-perspective wisdom on questions and topics.\nSimulates a council of experts answering from diverse viewpoints,\nthen synthesizes their responses into balanced insights.</p>"},{"title":"module:ai/embeddings","link":"<a href=\"module-ai_embeddings.html\">ai/embeddings</a>","description":"<p>Vector embedding generation and semantic search functionality using OpenAI's text-embedding models.\nProvides methods for generating embeddings, calculating similarity, semantic search, and k-means clustering.</p>"},{"title":"module:ai/embeddings.Embeddings","link":"<a href=\"module-ai_embeddings.Embeddings.html\">Embeddings</a>"},{"title":"module:ai/embeddings.Embeddings#cluster","link":"<a href=\"module-ai_embeddings.Embeddings.html#cluster\">cluster</a>","description":"<p>Cluster items by semantic similarity using k-means algorithm.\nAutomatically generates embeddings for items that don't have them.</p>"},{"title":"module:ai/embeddings.Embeddings#cosineSimilarity","link":"<a href=\"module-ai_embeddings.Embeddings.html#cosineSimilarity\">cosineSimilarity</a>","description":"<p>Calculate cosine similarity between two embedding vectors.\nReturns a score between -1 and 1, where 1 indicates identical vectors.</p>"},{"title":"module:ai/embeddings.Embeddings#embed","link":"<a href=\"module-ai_embeddings.Embeddings.html#embed\">embed</a>","description":"<p>Generate a vector embedding for the given text.</p>"},{"title":"module:ai/embeddings.Embeddings#embedBatch","link":"<a href=\"module-ai_embeddings.Embeddings.html#embedBatch\">embedBatch</a>","description":"<p>Generate embeddings for multiple texts</p>"},{"title":"module:ai/embeddings.Embeddings#findSimilar","link":"<a href=\"module-ai_embeddings.Embeddings.html#findSimilar\">findSimilar</a>","description":"<p>Find similar items to a given item</p>"},{"title":"module:ai/embeddings.Embeddings#semanticSearch","link":"<a href=\"module-ai_embeddings.Embeddings.html#semanticSearch\">semanticSearch</a>","description":"<p>Perform semantic search within a holon/lens using vector similarity.\nReturns items ranked by semantic similarity to the query.</p>"},{"title":"module:ai/embeddings.Embeddings#setHoloSphere","link":"<a href=\"module-ai_embeddings.Embeddings.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance for storage</p>"},{"title":"module:ai/embeddings.Embeddings#storeWithEmbedding","link":"<a href=\"module-ai_embeddings.Embeddings.html#storeWithEmbedding\">storeWithEmbedding</a>","description":"<p>Store item with embedding in HoloSphere</p>"},{"title":"module:ai/embeddings~Embeddings","link":"<a href=\"module-ai_embeddings-Embeddings.html\">Embeddings</a>","description":"<p>Service class for vector embeddings and semantic operations.\nSupports single and batch embedding generation, cosine similarity calculations,\nsemantic search across HoloSphere data, and k-means clustering.</p>"},{"title":"module:ai/federation-ai","link":"<a href=\"module-ai_federation-ai.html\">ai/federation-ai</a>","description":"<p>AI-powered federation recommendations and network health analysis.\nProvides suggestions for federation partnerships, health monitoring, and network optimization.</p>"},{"title":"module:ai/federation-ai.FederationAdvisor","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html\">FederationAdvisor</a>"},{"title":"module:ai/federation-ai.FederationAdvisor#analyzeDataFlow","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#analyzeDataFlow\">analyzeDataFlow</a>","description":"<p>Analyze data flow in federation network</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#analyzeFederationHealth","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#analyzeFederationHealth\">analyzeFederationHealth</a>","description":"<p>Analyze federation health</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#findBridges","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#findBridges\">findBridges</a>","description":"<p>Find federation bridges - holons that connect disparate networks</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#optimizeFederation","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#optimizeFederation\">optimizeFederation</a>","description":"<p>Suggest federation optimizations</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#setEmbeddings","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#setEmbeddings\">setEmbeddings</a>","description":"<p>Set Embeddings instance</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#setHoloSphere","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/federation-ai.FederationAdvisor#suggestFederations","link":"<a href=\"module-ai_federation-ai.FederationAdvisor.html#suggestFederations\">suggestFederations</a>","description":"<p>Suggest federations based on content similarity</p>"},{"title":"module:ai/federation-ai~FederationAdvisor","link":"<a href=\"module-ai_federation-ai-FederationAdvisor.html\">FederationAdvisor</a>","description":"<p>Service class for analyzing and optimizing holon federation networks.\nSuggests federation partnerships based on content similarity, analyzes network health,\nidentifies bridges between clusters, and recommends optimizations.</p>"},{"title":"module:ai/h3-ai","link":"<a href=\"module-ai_h3-ai.html\">ai/h3-ai</a>","description":"<p>Geospatial intelligence for H3 hexagonal hierarchies.\nProvides AI-powered analysis of geographic data distribution, resolution suggestions,\ncoverage analysis, and cross-resolution insights using the H3 geospatial indexing system.</p>"},{"title":"module:ai/h3-ai.H3AI","link":"<a href=\"module-ai_h3-ai.H3AI.html\">H3AI</a>"},{"title":"module:ai/h3-ai.H3AI#analyzeCoverage","link":"<a href=\"module-ai_h3-ai.H3AI.html#analyzeCoverage\">analyzeCoverage</a>","description":"<p>Analyze coverage gaps in a region</p>"},{"title":"module:ai/h3-ai.H3AI#analyzeDistribution","link":"<a href=\"module-ai_h3-ai.H3AI.html#analyzeDistribution\">analyzeDistribution</a>","description":"<p>Analyze geographic distribution of data across H3 cells</p>"},{"title":"module:ai/h3-ai.H3AI#analyzeGeographicImpact","link":"<a href=\"module-ai_h3-ai.H3AI.html#analyzeGeographicImpact\">analyzeGeographicImpact</a>","description":"<p>Calculate and explain geographic impact of an item</p>"},{"title":"module:ai/h3-ai.H3AI#crossResolutionInsights","link":"<a href=\"module-ai_h3-ai.H3AI.html#crossResolutionInsights\">crossResolutionInsights</a>","description":"<p>Find patterns across multiple H3 resolutions</p>"},{"title":"module:ai/h3-ai.H3AI#findGeographicClusters","link":"<a href=\"module-ai_h3-ai.H3AI.html#findGeographicClusters\">findGeographicClusters</a>","description":"<p>Find geographic clusters of related items</p>"},{"title":"module:ai/h3-ai.H3AI#findNeighborRelevance","link":"<a href=\"module-ai_h3-ai.H3AI.html#findNeighborRelevance\">findNeighborRelevance</a>","description":"<p>Find relevant data from neighboring H3 cells</p>"},{"title":"module:ai/h3-ai.H3AI#generateGeographicReport","link":"<a href=\"module-ai_h3-ai.H3AI.html#generateGeographicReport\">generateGeographicReport</a>","description":"<p>Generate a geographic activity report for a region</p>"},{"title":"module:ai/h3-ai.H3AI#setHoloSphere","link":"<a href=\"module-ai_h3-ai.H3AI.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/h3-ai.H3AI#suggestGeographicScope","link":"<a href=\"module-ai_h3-ai.H3AI.html#suggestGeographicScope\">suggestGeographicScope</a>","description":"<p>Suggest geographic expansion or contraction for an item</p>"},{"title":"module:ai/h3-ai.H3AI#suggestMigration","link":"<a href=\"module-ai_h3-ai.H3AI.html#suggestMigration\">suggestMigration</a>","description":"<p>Suggest item migration between holons based on geographic fit</p>"},{"title":"module:ai/h3-ai.H3AI#suggestResolution","link":"<a href=\"module-ai_h3-ai.H3AI.html#suggestResolution\">suggestResolution</a>","description":"<p>Suggest optimal H3 resolution for a task/project based on its scope</p>"},{"title":"module:ai/h3-ai~H3AI","link":"<a href=\"module-ai_h3-ai-H3AI.html\">H3AI</a>","description":"<p>Service class for geospatial intelligence using H3 hexagonal hierarchies.\nAnalyzes geographic data patterns, suggests optimal resolutions, identifies coverage gaps,\nand provides multi-scale geographic insights across H3's hierarchical grid system.</p>"},{"title":"module:ai/json-ops","link":"<a href=\"module-ai_json-ops.html\">ai/json-ops</a>","description":"<p>AI-assisted semantic operations on JSON structures.\nProvides fuzzy operations like merge, subtract, union, and transform that understand semantic meaning.</p>"},{"title":"module:ai/json-ops.JSONOps","link":"<a href=\"module-ai_json-ops.JSONOps.html\">JSONOps</a>"},{"title":"module:ai/json-ops.JSONOps#add","link":"<a href=\"module-ai_json-ops.JSONOps.html#add\">add</a>","description":"<p>Semantically merge two JSON objects with intelligent deduplication.\nCombines information from both objects, resolving conflicts semantically.</p>"},{"title":"module:ai/json-ops.JSONOps#apply","link":"<a href=\"module-ai_json-ops.JSONOps.html#apply\">apply</a>","description":"<p>Apply a natural language operation to JSON</p>"},{"title":"module:ai/json-ops.JSONOps#concatenate","link":"<a href=\"module-ai_json-ops.JSONOps.html#concatenate\">concatenate</a>","description":"<p>Concatenate arrays and text fields semantically</p>"},{"title":"module:ai/json-ops.JSONOps#difference","link":"<a href=\"module-ai_json-ops.JSONOps.html#difference\">difference</a>","description":"<p>Find differences between two objects</p>"},{"title":"module:ai/json-ops.JSONOps#intersection","link":"<a href=\"module-ai_json-ops.JSONOps.html#intersection\">intersection</a>","description":"<p>Find intersection - common concepts between objects</p>"},{"title":"module:ai/json-ops.JSONOps#simplify","link":"<a href=\"module-ai_json-ops.JSONOps.html#simplify\">simplify</a>","description":"<p>Simplify/flatten nested object</p>"},{"title":"module:ai/json-ops.JSONOps#subtract","link":"<a href=\"module-ai_json-ops.JSONOps.html#subtract\">subtract</a>","description":"<p>Remove concepts from obj1 based on obj2</p>"},{"title":"module:ai/json-ops.JSONOps#transform","link":"<a href=\"module-ai_json-ops.JSONOps.html#transform\">transform</a>","description":"<p>Transform object structure</p>"},{"title":"module:ai/json-ops.JSONOps#union","link":"<a href=\"module-ai_json-ops.JSONOps.html#union\">union</a>","description":"<p>Combine objects with semantic deduplication</p>"},{"title":"module:ai/json-ops~JSONOps","link":"<a href=\"module-ai_json-ops-JSONOps.html\">JSONOps</a>","description":"<p>Service class for semantic JSON manipulation using AI.\nPerforms intelligent operations on JSON objects that go beyond simple structural merging,\nunderstanding semantic similarity and conceptual relationships between data.</p>"},{"title":"module:ai/llm-service","link":"<a href=\"module-ai_llm-service.html\">ai/llm-service</a>","description":"<p>Core OpenAI wrapper providing simple chat completions without Assistants API.</p>"},{"title":"module:ai/llm-service.LLMService","link":"<a href=\"module-ai_llm-service.LLMService.html\">LLMService</a>"},{"title":"module:ai/llm-service.LLMService#analyze","link":"<a href=\"module-ai_llm-service.LLMService.html#analyze\">analyze</a>","description":"<p>Analyze text from a specific perspective or aspect.</p>"},{"title":"module:ai/llm-service.LLMService#categorize","link":"<a href=\"module-ai_llm-service.LLMService.html#categorize\">categorize</a>","description":"<p>Categorize text into one of the provided categories with confidence score.</p>"},{"title":"module:ai/llm-service.LLMService#chat","link":"<a href=\"module-ai_llm-service.LLMService.html#chat\">chat</a>","description":"<p>Send multiple messages in a conversation format.</p>"},{"title":"module:ai/llm-service.LLMService#extractKeywords","link":"<a href=\"module-ai_llm-service.LLMService.html#extractKeywords\">extractKeywords</a>","description":"<p>Extract key words and phrases from text.</p>"},{"title":"module:ai/llm-service.LLMService#generateQuestions","link":"<a href=\"module-ai_llm-service.LLMService.html#generateQuestions\">generateQuestions</a>","description":"<p>Generate insightful questions about the content.</p>"},{"title":"module:ai/llm-service.LLMService#getJSON","link":"<a href=\"module-ai_llm-service.LLMService.html#getJSON\">getJSON</a>","description":"<p>Get a structured JSON response from the LLM with automatic parsing.\nAttempts to extract JSON from response even if surrounded by additional text.</p>"},{"title":"module:ai/llm-service.LLMService#sendMessage","link":"<a href=\"module-ai_llm-service.LLMService.html#sendMessage\">sendMessage</a>","description":"<p>Send a single-turn message to the LLM with system and user prompts.</p>"},{"title":"module:ai/llm-service.LLMService#summarize","link":"<a href=\"module-ai_llm-service.LLMService.html#summarize\">summarize</a>","description":"<p>Generate a concise summary of text while preserving key information.</p>"},{"title":"module:ai/llm-service.LLMService#translate","link":"<a href=\"module-ai_llm-service.LLMService.html#translate\">translate</a>","description":"<p>Translate text to a target language.</p>"},{"title":"module:ai/llm-service~LLMService","link":"<a href=\"module-ai_llm-service-LLMService.html\">LLMService</a>","description":"<p>Service class for interacting with OpenAI's chat completion API.\nProvides high-level methods for common LLM operations including summarization,\nanalysis, categorization, translation, and structured JSON responses.</p>"},{"title":"module:ai/nl-query","link":"<a href=\"module-ai_nl-query.html\">ai/nl-query</a>","description":"<p>Natural language query interface for HoloSphere data.\nConverts natural language queries to structured filters and executes searches.</p>"},{"title":"module:ai/nl-query.NLQuery","link":"<a href=\"module-ai_nl-query.NLQuery.html\">NLQuery</a>"},{"title":"module:ai/nl-query.NLQuery#execute","link":"<a href=\"module-ai_nl-query.NLQuery.html#execute\">execute</a>","description":"<p>Execute natural language query</p>"},{"title":"module:ai/nl-query.NLQuery#explain","link":"<a href=\"module-ai_nl-query.NLQuery.html#explain\">explain</a>","description":"<p>Explain query results in natural language</p>"},{"title":"module:ai/nl-query.NLQuery#parse","link":"<a href=\"module-ai_nl-query.NLQuery.html#parse\">parse</a>","description":"<p>Parse natural language query into structured format</p>"},{"title":"module:ai/nl-query.NLQuery#setHoloSphere","link":"<a href=\"module-ai_nl-query.NLQuery.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/nl-query.NLQuery#suggest","link":"<a href=\"module-ai_nl-query.NLQuery.html#suggest\">suggest</a>","description":"<p>Suggest queries based on context</p>"},{"title":"module:ai/nl-query~NLQuery","link":"<a href=\"module-ai_nl-query-NLQuery.html\">NLQuery</a>","description":"<p>Service class for querying HoloSphere data using natural language.\nTranslates natural language queries into structured filters with support for\nspatial, temporal, and field-based filtering.</p>"},{"title":"module:ai/relationships","link":"<a href=\"module-ai_relationships.html\">ai/relationships</a>","description":"<p>Discover hidden connections and relationships across data.\nProvides relationship discovery, graph building, pattern detection, and connection suggestions.</p>"},{"title":"module:ai/relationships.RelationshipDiscovery","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html\">RelationshipDiscovery</a>"},{"title":"module:ai/relationships.RelationshipDiscovery#buildGraph","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#buildGraph\">buildGraph</a>","description":"<p>Build relationship graph</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#detectPatterns","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#detectPatterns\">detectPatterns</a>","description":"<p>Detect relationship patterns</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#discoverRelationships","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#discoverRelationships\">discoverRelationships</a>","description":"<p>Discover relationships in holon data</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#findCrossHolonRelationships","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#findCrossHolonRelationships\">findCrossHolonRelationships</a>","description":"<p>Find cross-holon relationships</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#findSimilar","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#findSimilar\">findSimilar</a>","description":"<p>Find items similar to a given item</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#setEmbeddings","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#setEmbeddings\">setEmbeddings</a>","description":"<p>Set Embeddings instance</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#setHoloSphere","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/relationships.RelationshipDiscovery#suggestConnections","link":"<a href=\"module-ai_relationships.RelationshipDiscovery.html#suggestConnections\">suggestConnections</a>","description":"<p>Suggest connections for an item</p>"},{"title":"module:ai/relationships~RelationshipDiscovery","link":"<a href=\"module-ai_relationships-RelationshipDiscovery.html\">RelationshipDiscovery</a>","description":"<p>Service class for discovering hidden connections and relationships in data.\nIdentifies thematic, entity, temporal, causal, and geographic relationships,\nbuilds relationship graphs, and suggests collaboration opportunities.</p>"},{"title":"module:ai/schema-extractor","link":"<a href=\"module-ai_schema-extractor.html\">ai/schema-extractor</a>","description":"<p>Extract structured data from unstructured text using JSON schemas.\nProvides schema-based data extraction, validation, and field completion.</p>"},{"title":"module:ai/schema-extractor.SchemaExtractor","link":"<a href=\"module-ai_schema-extractor.SchemaExtractor.html\">SchemaExtractor</a>"},{"title":"module:ai/schema-extractor.SchemaExtractor#extractMultiple","link":"<a href=\"module-ai_schema-extractor.SchemaExtractor.html#extractMultiple\">extractMultiple</a>","description":"<p>Extract multiple items from text</p>"},{"title":"module:ai/schema-extractor.SchemaExtractor#extractToSchema","link":"<a href=\"module-ai_schema-extractor.SchemaExtractor.html#extractToSchema\">extractToSchema</a>","description":"<p>Extract structured data from text according to a JSON schema.\nUses LLM to intelligently parse unstructured text and map to schema fields.</p>"},{"title":"module:ai/schema-extractor.SchemaExtractor#fillMissing","link":"<a href=\"module-ai_schema-extractor.SchemaExtractor.html#fillMissing\">fillMissing</a>","description":"<p>Fill missing fields in existing data</p>"},{"title":"module:ai/schema-extractor.SchemaExtractor#validateExtraction","link":"<a href=\"module-ai_schema-extractor.SchemaExtractor.html#validateExtraction\">validateExtraction</a>","description":"<p>Validate extracted data against a JSON schema.\nPerforms basic type checking and required field validation.</p>"},{"title":"module:ai/schema-extractor~SchemaExtractor","link":"<a href=\"module-ai_schema-extractor-SchemaExtractor.html\">SchemaExtractor</a>","description":"<p>Service class for extracting structured data from text using JSON schemas.\nLeverages LLM to parse unstructured content and map it to defined schemas.</p>"},{"title":"module:ai/spatial","link":"<a href=\"module-ai_spatial.html\">ai/spatial</a>","description":"<p>AI-powered spatial analysis of data patterns across geographic regions.\nProvides region analysis, comparison, trend detection, hotspot identification, and reporting.</p>"},{"title":"module:ai/spatial.SpatialAnalysis","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html\">SpatialAnalysis</a>"},{"title":"module:ai/spatial.SpatialAnalysis#analyzeRegion","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#analyzeRegion\">analyzeRegion</a>","description":"<p>Analyze data patterns in a region</p>"},{"title":"module:ai/spatial.SpatialAnalysis#compareRegions","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#compareRegions\">compareRegions</a>","description":"<p>Compare data between two regions</p>"},{"title":"module:ai/spatial.SpatialAnalysis#findHotspots","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#findHotspots\">findHotspots</a>","description":"<p>Find hotspots in hierarchical data</p>"},{"title":"module:ai/spatial.SpatialAnalysis#generateReport","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#generateReport\">generateReport</a>","description":"<p>Generate spatial report for a region</p>"},{"title":"module:ai/spatial.SpatialAnalysis#setHoloSphere","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#setHoloSphere\">setHoloSphere</a>","description":"<p>Set HoloSphere instance</p>"},{"title":"module:ai/spatial.SpatialAnalysis#spatialTrends","link":"<a href=\"module-ai_spatial.SpatialAnalysis.html#spatialTrends\">spatialTrends</a>","description":"<p>Identify spatial trends over time</p>"},{"title":"module:ai/spatial~SpatialAnalysis","link":"<a href=\"module-ai_spatial-SpatialAnalysis.html\">SpatialAnalysis</a>","description":"<p>Service class for analyzing spatial data patterns across geographic regions.\nIdentifies trends, compares regions, finds hotspots, and generates comprehensive\nspatial reports using AI-driven analysis.</p>"},{"title":"module:ai/tts","link":"<a href=\"module-ai_tts.html\">ai/tts</a>","description":"<p>OpenAI text-to-speech integration for audio generation.\nProvides methods for converting text to speech with various voices and formats.</p>"},{"title":"module:ai/tts.MODELS","link":"<a href=\"module-ai_tts.html#.MODELS\">MODELS</a>","description":"<p>Available TTS model options.</p>"},{"title":"module:ai/tts.TTS","link":"<a href=\"module-ai_tts.TTS.html\">TTS</a>"},{"title":"module:ai/tts.TTS#setDefaultModel","link":"<a href=\"module-ai_tts.TTS.html#setDefaultModel\">setDefaultModel</a>","description":"<p>Set default model</p>"},{"title":"module:ai/tts.TTS#setDefaultVoice","link":"<a href=\"module-ai_tts.TTS.html#setDefaultVoice\">setDefaultVoice</a>","description":"<p>Set default voice</p>"},{"title":"module:ai/tts.TTS#speak","link":"<a href=\"module-ai_tts.TTS.html#speak\">speak</a>","description":"<p>Convert text to speech audio.</p>"},{"title":"module:ai/tts.TTS#speakBase64","link":"<a href=\"module-ai_tts.TTS.html#speakBase64\">speakBase64</a>","description":"<p>Convert text to speech and return as base64</p>"},{"title":"module:ai/tts.TTS#speakDataUrl","link":"<a href=\"module-ai_tts.TTS.html#speakDataUrl\">speakDataUrl</a>","description":"<p>Convert text to speech and return as data URL</p>"},{"title":"module:ai/tts.TTS#speakLong","link":"<a href=\"module-ai_tts.TTS.html#speakLong\">speakLong</a>","description":"<p>Convert long text to speech (handles chunking)</p>"},{"title":"module:ai/tts.TTS.estimateDuration","link":"<a href=\"module-ai_tts.TTS.html#.estimateDuration\">estimateDuration</a>","description":"<p>Estimate audio duration (approximate)</p>"},{"title":"module:ai/tts.TTS.getModels","link":"<a href=\"module-ai_tts.TTS.html#.getModels\">getModels</a>","description":"<p>Get available models</p>"},{"title":"module:ai/tts.TTS.getVoices","link":"<a href=\"module-ai_tts.TTS.html#.getVoices\">getVoices</a>","description":"<p>Get available voices</p>"},{"title":"module:ai/tts.TTS.splitText","link":"<a href=\"module-ai_tts.TTS.html#.splitText\">splitText</a>","description":"<p>Split text into chunks for long content</p>"},{"title":"module:ai/tts.VOICES","link":"<a href=\"module-ai_tts.html#.VOICES\">VOICES</a>","description":"<p>Available voice options for text-to-speech.</p>"},{"title":"module:ai/tts~TTS","link":"<a href=\"module-ai_tts-TTS.html\">TTS</a>","description":"<p>Service class for converting text to speech using OpenAI's TTS API.\nSupports multiple voices, output formats, and handles long text with automatic chunking.</p>"},{"title":"module:content/social-protocols","link":"<a href=\"module-content_social-protocols.html\">content/social-protocols</a>","description":"<p>Social protocol adapters for Nostr (NIP-01) and ActivityPub formats.\nProvides validation, transformation, and filtering utilities for social content integration.</p>"},{"title":"module:content/social-protocols.filterByAccessLevel","link":"<a href=\"module-content_social-protocols.html#.filterByAccessLevel\">filterByAccessLevel</a>","description":"<p>Filter social content by access level.\nReturns items matching the specified access level or all items if no level specified.</p>"},{"title":"module:content/social-protocols.filterByProtocol","link":"<a href=\"module-content_social-protocols.html#.filterByProtocol\">filterByProtocol</a>","description":"<p>Filter social content by protocol type.\nReturns items matching the specified protocol or all items if 'all' is specified.</p>"},{"title":"module:content/social-protocols.transformActivityPubObject","link":"<a href=\"module-content_social-protocols.html#.transformActivityPubObject\">transformActivityPubObject</a>","description":"<p>Transform ActivityPub object to HoloSphere storage format.\nNormalizes ActivityPub objects and adds metadata for HoloSphere compatibility.</p>"},{"title":"module:content/social-protocols.transformNostrEvent","link":"<a href=\"module-content_social-protocols.html#.transformNostrEvent\">transformNostrEvent</a>","description":"<p>Transform Nostr event to HoloSphere storage format.\nNormalizes Nostr events and adds metadata for HoloSphere compatibility.</p>"},{"title":"module:content/social-protocols.validateActivityPubObject","link":"<a href=\"module-content_social-protocols.html#.validateActivityPubObject\">validateActivityPubObject</a>","description":"<p>Validate ActivityPub object format.\nChecks for required @context and type fields, optionally validates id field.</p>"},{"title":"module:content/social-protocols.validateNostrEvent","link":"<a href=\"module-content_social-protocols.html#.validateNostrEvent\">validateNostrEvent</a>","description":"<p>Validate Nostr NIP-01 event format.\nChecks required fields (kind, tags, content, created_at) and optionally id, pubkey, sig.</p>"},{"title":"module:core/holosphere","link":"<a href=\"module-core_holosphere.html\">core/holosphere</a>","description":"<p>Core HoloSphere class providing the foundational infrastructure\nfor holonic geospatial communication.</p>\n<p>This module implements the core HoloSphere class that supports multiple storage\nbackends (Nostr, GunDB, ActivityPub) and provides essential operations for\ndistributed P2P communication and data management.</p>"},{"title":"module:core/holosphere.HoloSphere","link":"<a href=\"module-core_holosphere.HoloSphere.html\">HoloSphere</a>"},{"title":"module:core/holosphere.HoloSphere#authenticate","link":"<a href=\"module-core_holosphere.HoloSphere.html#authenticate\">authenticate</a>","description":"<p>Authenticate for a holon</p>"},{"title":"module:core/holosphere.HoloSphere#backend","link":"<a href=\"module-core_holosphere.HoloSphere.html#backend\">backend</a>","description":"<p>Get the storage backend instance</p>"},{"title":"module:core/holosphere.HoloSphere#close","link":"<a href=\"module-core_holosphere.HoloSphere.html#close\">close</a>","description":"<p>Closes the backend and cleans up resources.\nShould be called when done using the HoloSphere instance.</p>"},{"title":"module:core/holosphere.HoloSphere#createReference","link":"<a href=\"module-core_holosphere.HoloSphere.html#createReference\">createReference</a>","description":"<p>Create a reference to data</p>"},{"title":"module:core/holosphere.HoloSphere#createUser","link":"<a href=\"module-core_holosphere.HoloSphere.html#createUser\">createUser</a>","description":"<p>Create a new user for a holon</p>"},{"title":"module:core/holosphere.HoloSphere#deleteGlobal","link":"<a href=\"module-core_holosphere.HoloSphere.html#deleteGlobal\">deleteGlobal</a>","description":"<p>Delete data from a global table</p>"},{"title":"module:core/holosphere.HoloSphere#federate","link":"<a href=\"module-core_holosphere.HoloSphere.html#federate\">federate</a>","description":"<p>Create a federation relationship between two spaces</p>"},{"title":"module:core/holosphere.HoloSphere#federateMessage","link":"<a href=\"module-core_holosphere.HoloSphere.html#federateMessage\">federateMessage</a>","description":"<p>Track a federated message across different chats</p>"},{"title":"module:core/holosphere.HoloSphere#getAllGlobal","link":"<a href=\"module-core_holosphere.HoloSphere.html#getAllGlobal\">getAllGlobal</a>","description":"<p>Read all data from a global table</p>"},{"title":"module:core/holosphere.HoloSphere#getFederated","link":"<a href=\"module-core_holosphere.HoloSphere.html#getFederated\">getFederated</a>","description":"<p>Get combined data from local and federated sources</p>"},{"title":"module:core/holosphere.HoloSphere#getFederatedMessages","link":"<a href=\"module-core_holosphere.HoloSphere.html#getFederatedMessages\">getFederatedMessages</a>","description":"<p>Get all federated messages for a given original message</p>"},{"title":"module:core/holosphere.HoloSphere#getFederation","link":"<a href=\"module-core_holosphere.HoloSphere.html#getFederation\">getFederation</a>","description":"<p>Get federation info for a space</p>"},{"title":"module:core/holosphere.HoloSphere#getGlobal","link":"<a href=\"module-core_holosphere.HoloSphere.html#getGlobal\">getGlobal</a>","description":"<p>Read data from a global table</p>"},{"title":"module:core/holosphere.HoloSphere#getSchema","link":"<a href=\"module-core_holosphere.HoloSphere.html#getSchema\">getSchema</a>","description":"<p>Get a schema for a lens</p>"},{"title":"module:core/holosphere.HoloSphere#isAuthenticated","link":"<a href=\"module-core_holosphere.HoloSphere.html#isAuthenticated\">isAuthenticated</a>","description":"<p>Check if authenticated</p>"},{"title":"module:core/holosphere.HoloSphere#isReference","link":"<a href=\"module-core_holosphere.HoloSphere.html#isReference\">isReference</a>","description":"<p>Check if data is a reference</p>"},{"title":"module:core/holosphere.HoloSphere#logout","link":"<a href=\"module-core_holosphere.HoloSphere.html#logout\">logout</a>","description":"<p>Logout current user</p>"},{"title":"module:core/holosphere.HoloSphere#metrics","link":"<a href=\"module-core_holosphere.HoloSphere.html#metrics\">metrics</a>","description":"<p>Get metrics</p>"},{"title":"module:core/holosphere.HoloSphere#propagate","link":"<a href=\"module-core_holosphere.HoloSphere.html#propagate\">propagate</a>","description":"<p>Propagate data to federated spaces</p>"},{"title":"module:core/holosphere.HoloSphere#putGlobal","link":"<a href=\"module-core_holosphere.HoloSphere.html#putGlobal\">putGlobal</a>","description":"<p>Write data to a global table</p>"},{"title":"module:core/holosphere.HoloSphere#readPrivate","link":"<a href=\"module-core_holosphere.HoloSphere.html#readPrivate\">readPrivate</a>","description":"<p>Read from private storage (requires authentication)</p>"},{"title":"module:core/holosphere.HoloSphere#ready","link":"<a href=\"module-core_holosphere.HoloSphere.html#ready\">ready</a>","description":"<p>Ensure backend is ready before operations</p>"},{"title":"module:core/holosphere.HoloSphere#resetFederation","link":"<a href=\"module-core_holosphere.HoloSphere.html#resetFederation\">resetFederation</a>","description":"<p>Reset all federation relationships for a space</p>"},{"title":"module:core/holosphere.HoloSphere#resolveReference","link":"<a href=\"module-core_holosphere.HoloSphere.html#resolveReference\">resolveReference</a>","description":"<p>Resolve a reference to get actual data</p>"},{"title":"module:core/holosphere.HoloSphere#setSchema","link":"<a href=\"module-core_holosphere.HoloSphere.html#setSchema\">setSchema</a>","description":"<p>Set a schema for a lens</p>"},{"title":"module:core/holosphere.HoloSphere#subscribeFederation","link":"<a href=\"module-core_holosphere.HoloSphere.html#subscribeFederation\">subscribeFederation</a>","description":"<p>Subscribe to federation notifications for a space</p>"},{"title":"module:core/holosphere.HoloSphere#unfederate","link":"<a href=\"module-core_holosphere.HoloSphere.html#unfederate\">unfederate</a>","description":"<p>Remove a federation relationship</p>"},{"title":"module:core/holosphere.HoloSphere#updateFederatedMessages","link":"<a href=\"module-core_holosphere.HoloSphere.html#updateFederatedMessages\">updateFederatedMessages</a>","description":"<p>Update a federated message across all federated chats</p>"},{"title":"module:core/holosphere.HoloSphere#validateData","link":"<a href=\"module-core_holosphere.HoloSphere.html#validateData\">validateData</a>","description":"<p>Validate data against a lens schema</p>"},{"title":"module:core/holosphere.HoloSphere#writePrivate","link":"<a href=\"module-core_holosphere.HoloSphere.html#writePrivate\">writePrivate</a>","description":"<p>Write to private storage (requires authentication)</p>"},{"title":"module:core/holosphere~Gun","link":"<a href=\"module-core_holosphere.html#~Gun\">Gun</a>","description":"<p>Gun constructor, loaded dynamically</p>"},{"title":"module:core/holosphere~HoloSphere","link":"<a href=\"module-core_holosphere-HoloSphere.html\">HoloSphere</a>","description":"<p>HoloSphere - Holonic Geospatial Communication Infrastructure.</p>\n<p>The core class that combines H3 hexagonal indexing with distributed P2P storage.\nSupports multiple storage backends including Nostr, GunDB, and ActivityPub.</p>"},{"title":"module:core/holosphere~getDefaultRelays","link":"<a href=\"module-core_holosphere.html#~getDefaultRelays\">getDefaultRelays</a>","description":"<p>Parse relay URLs from environment variable or use defaults</p>"},{"title":"module:core/holosphere~getEnv","link":"<a href=\"module-core_holosphere.html#~getEnv\">getEnv</a>","description":"<p>Get environment variable (works in Node.js, returns undefined in browser)</p>"},{"title":"module:core/holosphere~gunLoadPromise","link":"<a href=\"module-core_holosphere.html#~gunLoadPromise\">gunLoadPromise</a>","description":"<p>Promise for Gun loading</p>"},{"title":"module:crypto/nostr-utils","link":"<a href=\"module-crypto_nostr-utils.html\">crypto/nostr-utils</a>","description":"<p>Browser-compatible Nostr utility functions for key handling, encryption, and event management.\nProvides NIP-04 (legacy) and NIP-44 (modern, audited) encryption support, key conversion utilities,\nand event creation helpers. Applications can use these utilities without directly importing nostr-tools.</p>"},{"title":"module:crypto/nostr-utils.bytesToHex","link":"<a href=\"module-crypto_nostr-utils.html#.bytesToHex\">bytesToHex</a>","description":"<p>Convert Uint8Array to hex string.</p>"},{"title":"module:crypto/nostr-utils.createDMEvent","link":"<a href=\"module-crypto_nostr-utils.html#.createDMEvent\">createDMEvent</a>","description":"<p>Create a NIP-04 encrypted DM event (kind 4).\nCreates and signs a direct message event with proper recipient tagging.</p>"},{"title":"module:crypto/nostr-utils.createSignedEvent","link":"<a href=\"module-crypto_nostr-utils.html#.createSignedEvent\">createSignedEvent</a>","description":"<p>Create and sign a Nostr event.\nAutomatically adds created_at timestamp, computes event ID, and generates signature.</p>"},{"title":"module:crypto/nostr-utils.decryptNIP04","link":"<a href=\"module-crypto_nostr-utils.html#.decryptNIP04\">decryptNIP04</a>","description":"<p>Decrypt a NIP-04 encrypted message.</p>"},{"title":"module:crypto/nostr-utils.decryptNIP44","link":"<a href=\"module-crypto_nostr-utils.html#.decryptNIP44\">decryptNIP44</a>","description":"<p>Decrypt a NIP-44 encrypted message.</p>"},{"title":"module:crypto/nostr-utils.encryptNIP04","link":"<a href=\"module-crypto_nostr-utils.html#.encryptNIP04\">encryptNIP04</a>","description":"<p>Encrypt a message using NIP-04 (legacy DM encryption).\nUses AES-256-CBC with base64 encoding. Consider using NIP-44 for new implementations.</p>"},{"title":"module:crypto/nostr-utils.encryptNIP44","link":"<a href=\"module-crypto_nostr-utils.html#.encryptNIP44\">encryptNIP44</a>","description":"<p>Encrypt a message using NIP-44 (modern, audited encryption standard).\nUses ChaCha20-Poly1305 + HMAC-SHA256, audited by Cure53. Recommended for new implementations.</p>"},{"title":"module:crypto/nostr-utils.generateNonce","link":"<a href=\"module-crypto_nostr-utils.html#.generateNonce\">generateNonce</a>","description":"<p>Generate a unique nonce using timestamp and random value.</p>"},{"title":"module:crypto/nostr-utils.getPublicKey","link":"<a href=\"module-crypto_nostr-utils.html#.getPublicKey\">getPublicKey</a>","description":"<p>Derive public key from private key using secp256k1.\nMatches nostr-tools getPublicKey API.</p>"},{"title":"module:crypto/nostr-utils.hexToBytes","link":"<a href=\"module-crypto_nostr-utils.html#.hexToBytes\">hexToBytes</a>","description":"<p>Convert hex string to Uint8Array.</p>"},{"title":"module:crypto/nostr-utils.hexToNpub","link":"<a href=\"module-crypto_nostr-utils.html#.hexToNpub\">hexToNpub</a>","description":"<p>Convert a hex public key to npub format.</p>"},{"title":"module:crypto/nostr-utils.isValidHexPubKey","link":"<a href=\"module-crypto_nostr-utils.html#.isValidHexPubKey\">isValidHexPubKey</a>","description":"<p>Check if a string is a valid hex public key (64 hex characters).</p>"},{"title":"module:crypto/nostr-utils.isValidNpub","link":"<a href=\"module-crypto_nostr-utils.html#.isValidNpub\">isValidNpub</a>","description":"<p>Check if a string is a valid npub (starts with npub1 and decodes correctly).</p>"},{"title":"module:crypto/nostr-utils.npubToHex","link":"<a href=\"module-crypto_nostr-utils.html#.npubToHex\">npubToHex</a>","description":"<p>Convert npub to hex public key.</p>"},{"title":"module:crypto/nostr-utils.parseNpubOrHex","link":"<a href=\"module-crypto_nostr-utils.html#.parseNpubOrHex\">parseNpubOrHex</a>","description":"<p>Parse an npub or hex public key string into hex format.\nHandles nostr: URI prefix and validates both npub and hex formats.</p>"},{"title":"module:crypto/nostr-utils.shortenNpub","link":"<a href=\"module-crypto_nostr-utils.html#.shortenNpub\">shortenNpub</a>","description":"<p>Shorten an npub for display (first 12 and last 8 chars).</p>"},{"title":"module:crypto/nostr-utils.shortenPubKey","link":"<a href=\"module-crypto_nostr-utils.html#.shortenPubKey\">shortenPubKey</a>","description":"<p>Shorten a public key for display (first 8 and last 8 chars).</p>"},{"title":"module:crypto/nostr-utils.signEvent","link":"<a href=\"module-crypto_nostr-utils.html#.signEvent\">signEvent</a>","description":"<p>Sign a Nostr event object.\nAccepts an event object instead of individual parameters. Adds created_at if missing.</p>"},{"title":"module:crypto/nostr-utils.verifyEvent","link":"<a href=\"module-crypto_nostr-utils.html#.verifyEvent\">verifyEvent</a>","description":"<p>Verify a Nostr event signature using secp256k1.\nValidates that the event ID matches the event data and the signature is valid.</p>"},{"title":"module:crypto/secp256k1","link":"<a href=\"module-crypto_secp256k1.html\">crypto/secp256k1</a>","description":"<p>Cryptographic Operations using secp256k1.</p>\n<p>Provides signing, verification, and capability token operations using\nthe secp256k1 elliptic curve (same curve used by Bitcoin and Nostr).\nUses lazy loading for the crypto module to improve startup performance.</p>"},{"title":"module:crypto/secp256k1.getPublicKey","link":"<a href=\"module-crypto_secp256k1.html#.getPublicKey\">getPublicKey</a>","description":"<p>Get public key from private key</p>"},{"title":"module:crypto/secp256k1.issueCapability","link":"<a href=\"module-crypto_secp256k1.html#.issueCapability\">issueCapability</a>","description":"<p>Issue capability token</p>"},{"title":"module:crypto/secp256k1.matchScope","link":"<a href=\"module-crypto_secp256k1.html#.matchScope\">matchScope</a>","description":"<p>Match token scope against requested scope with wildcard support\nSupports:</p>\n<ul>\n<li>Exact match: { holonId: "abc", lensName: "quests" }</li>\n<li>Item-level: { holonId: "abc", lensName: "quests", dataId: "quest-001" }</li>\n<li>Wildcards: { holonId: "<em>", lensName: "</em>" } matches everything</li>\n</ul>"},{"title":"module:crypto/secp256k1.sign","link":"<a href=\"module-crypto_secp256k1.html#.sign\">sign</a>","description":"<p>Sign content with private key</p>"},{"title":"module:crypto/secp256k1.verify","link":"<a href=\"module-crypto_secp256k1.html#.verify\">verify</a>","description":"<p>Verify signature</p>"},{"title":"module:crypto/secp256k1.verifyCapability","link":"<a href=\"module-crypto_secp256k1.html#.verifyCapability\">verifyCapability</a>","description":"<p>Verify capability token</p>"},{"title":"module:federation/hologram","link":"<a href=\"module-federation_hologram.html\">federation/hologram</a>","description":"<p>Federation and Hologram (Reference) Management.</p>\n<p>Provides hologram (lightweight reference) creation, resolution, and management.\nHolograms enable data to appear in multiple holons while maintaining a single\nsource of truth. Supports circular reference detection and cross-holosphere\nfederation with capability-based access control.</p>"},{"title":"module:federation/hologram.addActiveHologram","link":"<a href=\"module-federation_hologram.html#.addActiveHologram\">addActiveHologram</a>","description":"<p>Add a hologram reference to the source data's _meta.activeHolograms\nThis tracks all holograms pointing to this specific data item\nIf the source is itself a hologram, follows the chain to find the real source</p>"},{"title":"module:federation/hologram.cleanupCircularHolograms","link":"<a href=\"module-federation_hologram.html#.cleanupCircularHolograms\">cleanupCircularHolograms</a>","description":"<p>Cleanup circular holograms in a holon's lens\nThis detects and removes holograms that create circular references (A→B→A)\nUseful for cleaning up existing bad data created before circular reference prevention was added</p>"},{"title":"module:federation/hologram.cleanupCircularHologramsByIds","link":"<a href=\"module-federation_hologram.html#.cleanupCircularHologramsByIds\">cleanupCircularHologramsByIds</a>","description":"<p>Cleanup circular holograms for a specific list of IDs\nUse this when you don't have an index but know which IDs to check</p>"},{"title":"module:federation/hologram.createHologram","link":"<a href=\"module-federation_hologram.html#.createHologram\">createHologram</a>","description":"<p>Create a hologram (lightweight reference)</p>"},{"title":"module:federation/hologram.deleteHologram","link":"<a href=\"module-federation_hologram.html#.deleteHologram\">deleteHologram</a>","description":"<p>Delete a hologram and clean up the activeHolograms list on the original source</p>"},{"title":"module:federation/hologram.getHologramSource","link":"<a href=\"module-federation_hologram.html#.getHologramSource\">getHologramSource</a>","description":"<p>Get hologram source information from resolved data</p>"},{"title":"module:federation/hologram.isHologram","link":"<a href=\"module-federation_hologram.html#.isHologram\">isHologram</a>","description":"<p>Check if data is a hologram (unresolved reference)</p>"},{"title":"module:federation/hologram.isResolvedHologram","link":"<a href=\"module-federation_hologram.html#.isResolvedHologram\">isResolvedHologram</a>","description":"<p>Check if data was resolved from a hologram</p>"},{"title":"module:federation/hologram.propagateData","link":"<a href=\"module-federation_hologram.html#.propagateData\">propagateData</a>","description":"<p>Propagate data to federated location</p>"},{"title":"module:federation/hologram.refreshActiveHolograms","link":"<a href=\"module-federation_hologram.html#.refreshActiveHolograms\">refreshActiveHolograms</a>","description":"<p>Refresh lastUpdated timestamps on all activeHolograms in source data\nAlso updates the hologram objects in target holons\nCalled when source data is updated</p>"},{"title":"module:federation/hologram.removeActiveHologram","link":"<a href=\"module-federation_hologram.html#.removeActiveHologram\">removeActiveHologram</a>","description":"<p>Remove a hologram reference from the source data's _meta.activeHolograms\nIf the source is itself a hologram, follows the chain to find the real source</p>"},{"title":"module:federation/hologram.resolveHologram","link":"<a href=\"module-federation_hologram.html#.resolveHologram\">resolveHologram</a>","description":"<p>Resolve hologram to actual data, merging local overrides\nSupports cross-holosphere holograms with capability token verification</p>"},{"title":"module:federation/hologram.setupFederation","link":"<a href=\"module-federation_hologram.html#.setupFederation\">setupFederation</a>","description":"<p>Setup federation between holons</p>"},{"title":"module:federation/hologram.updateHologramOverrides","link":"<a href=\"module-federation_hologram.html#.updateHologramOverrides\">updateHologramOverrides</a>","description":"<p>Update local overrides on an existing hologram\nThis allows storing holon-specific data (position, pinned status, etc.) on a hologram</p>"},{"title":"module:federation/hologram.wouldCreateCircularHologram","link":"<a href=\"module-federation_hologram.html#.wouldCreateCircularHologram\">wouldCreateCircularHologram</a>","description":"<p>Check if creating a hologram would result in a circular reference\nThis follows the chain from the source to see if it eventually points back to the target</p>"},{"title":"module:federation/hologram~Maximum","link":"<a href=\"module-federation_hologram.html#~Maximum\">Maximum</a>","description":"<p>depth for hologram resolution chain</p>"},{"title":"module:hierarchical/upcast","link":"<a href=\"module-hierarchical_upcast.html\">hierarchical/upcast</a>","description":"<p>Hierarchical aggregation (upcast) operations for propagating data to parent holons.\nImplements upcast operations (FR-025 to FR-027) for H3-based geographic hierarchies.</p>"},{"title":"module:hierarchical/upcast.aggregate","link":"<a href=\"module-hierarchical_upcast.html#.aggregate\">aggregate</a>","description":"<p>Aggregate operation for merging objects.\nCombines all items into a single object using Object.assign.</p>"},{"title":"module:hierarchical/upcast.concatenate","link":"<a href=\"module-hierarchical_upcast.html#.concatenate\">concatenate</a>","description":"<p>Concatenate operation for flattening nested arrays.\nFlattens all input arrays into a single array.</p>"},{"title":"module:hierarchical/upcast.summarize","link":"<a href=\"module-hierarchical_upcast.html#.summarize\">summarize</a>","description":"<p>Summarize operation for count-based aggregation.\nReturns a summary object with the count of items.</p>"},{"title":"module:hierarchical/upcast.summarize.summarize","link":"<a href=\"module-hierarchical_upcast.html#.summarize#.summarize\">summarize</a>","description":"<p>Summarize text using AI.</p>"},{"title":"module:hierarchical/upcast.upcast","link":"<a href=\"module-hierarchical_upcast.html#.upcast\">upcast</a>","description":"<p>Upcast data to parent holons in the H3 hierarchy.\nCreates holograms in parent holons referencing the source data.</p>"},{"title":"module:holosphere","link":"<a href=\"module-holosphere.html\">holosphere</a>","description":"<p>HoloSphere - Holonic Geospatial Communication Infrastructure</p>\n<p>This is the main entry point for the HoloSphere library, providing a comprehensive\ndistributed P2P geospatial communication system. It combines H3 hexagonal indexing\nfor spatial organization, Nostr protocol for distributed storage, smart contracts\nfor fund distribution, and AI services for intelligent data processing.</p>"},{"title":"module:holosphere.HoloSphere","link":"<a href=\"module-holosphere.html#.HoloSphere\">HoloSphere</a>","description":"<p>Main HoloSphere class - composed from base + all mixins</p>"},{"title":"module:holosphere~HoloSphereBase","link":"<a href=\"module-holosphere-HoloSphereBase.html\">HoloSphereBase</a>","description":"<p>Base HoloSphere class with core data operations.\nExtends HoloSphereCore with schema validation, caching, subscriptions, and AI capabilities.</p>"},{"title":"module:holosphere~HoloSphereBase","link":"<a href=\"module-holosphere-HoloSphereBase.html\">HoloSphereBase</a>","description":"<p>Creates a new HoloSphereBase instance.</p>"},{"title":"module:holosphere~HoloSphereBase#_ai","link":"<a href=\"module-holosphere-HoloSphereBase.html#_ai\">_ai</a>"},{"title":"module:holosphere~HoloSphereBase#_cache","link":"<a href=\"module-holosphere-HoloSphereBase.html#_cache\">_cache</a>"},{"title":"module:holosphere~HoloSphereBase#_contracts","link":"<a href=\"module-holosphere-HoloSphereBase.html#_contracts\">_contracts</a>"},{"title":"module:holosphere~HoloSphereBase#cleanupCircularHolograms","link":"<a href=\"module-holosphere-HoloSphereBase.html#cleanupCircularHolograms\">cleanupCircularHolograms</a>","description":"<p>Cleans up circular hologram references in a holon.</p>"},{"title":"module:holosphere~HoloSphereBase#cleanupCircularHologramsByIds","link":"<a href=\"module-holosphere-HoloSphereBase.html#cleanupCircularHologramsByIds\">cleanupCircularHologramsByIds</a>","description":"<p>Cleans up circular hologram references for specific data IDs.</p>"},{"title":"module:holosphere~HoloSphereBase#clearCache","link":"<a href=\"module-holosphere-HoloSphereBase.html#clearCache\">clearCache</a>","description":"<p>Clears the internal cache.</p>"},{"title":"module:holosphere~HoloSphereBase#clearSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#clearSchema\">clearSchema</a>","description":"<p>Clears the JSON Schema for a specific lens.</p>"},{"title":"module:holosphere~HoloSphereBase#createHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#createHologram\">createHologram</a>","description":"<p>Creates a hologram (reference) object structure.</p>"},{"title":"module:holosphere~HoloSphereBase#defineSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#defineSchema\">defineSchema</a>","description":"<p>Alias for {@link HoloSphereBase#setSchema}.</p>"},{"title":"module:holosphere~HoloSphereBase#delete","link":"<a href=\"module-holosphere-HoloSphereBase.html#delete\">delete</a>","description":"<p>Deletes data from a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#deleteAll","link":"<a href=\"module-holosphere-HoloSphereBase.html#deleteAll\">deleteAll</a>","description":"<p>Deletes all data from a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#deleteAllGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#deleteAllGlobal\">deleteAllGlobal</a>","description":"<p>Deletes all data from a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#deleteGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#deleteGlobal\">deleteGlobal</a>","description":"<p>Deletes data from a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#deleteHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#deleteHologram\">deleteHologram</a>","description":"<p>Deletes a hologram and cleans up its references.</p>"},{"title":"module:holosphere~HoloSphereBase#federate","link":"<a href=\"module-holosphere-HoloSphereBase.html#federate\">federate</a>","description":"<p>Sets up federation between two holons for a specific lens.\nFederation enables data sharing and synchronization between holons.</p>"},{"title":"module:holosphere~HoloSphereBase#federateHolon","link":"<a href=\"module-holosphere-HoloSphereBase.html#federateHolon\">federateHolon</a>","description":"<p>Establishes a holon-level federation relationship.</p>"},{"title":"module:holosphere~HoloSphereBase#fetch","link":"<a href=\"module-holosphere-HoloSphereBase.html#fetch\">fetch</a>","description":"<p>Alias for {@link HoloSphereBase#read}.</p>"},{"title":"module:holosphere~HoloSphereBase#fetchSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#fetchSchema\">fetchSchema</a>","description":"<p>Alias for {@link HoloSphereBase#getSchema}.</p>"},{"title":"module:holosphere~HoloSphereBase#get","link":"<a href=\"module-holosphere-HoloSphereBase.html#get\">get</a>","description":"<p>Alias for {@link HoloSphereBase#read}.</p>"},{"title":"module:holosphere~HoloSphereBase#getAIServices","link":"<a href=\"module-holosphere-HoloSphereBase.html#getAIServices\">getAIServices</a>","description":"<p>Gets the initialized AI services object.</p>"},{"title":"module:holosphere~HoloSphereBase#getActiveHolograms","link":"<a href=\"module-holosphere-HoloSphereBase.html#getActiveHolograms\">getActiveHolograms</a>","description":"<p>Gets all active holograms (references) pointing to a specific data item.</p>"},{"title":"module:holosphere~HoloSphereBase#getAll","link":"<a href=\"module-holosphere-HoloSphereBase.html#getAll\">getAll</a>","description":"<p>Gets all data from a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#getAllGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#getAllGlobal\">getAllGlobal</a>","description":"<p>Gets all data from a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#getChildren","link":"<a href=\"module-holosphere-HoloSphereBase.html#getChildren\">getChildren</a>","description":"<p>Gets all child holons at the next resolution level.</p>"},{"title":"module:holosphere~HoloSphereBase#getFederatedConfig","link":"<a href=\"module-holosphere-HoloSphereBase.html#getFederatedConfig\">getFederatedConfig</a>","description":"<p>Gets the federation configuration between two holons.</p>"},{"title":"module:holosphere~HoloSphereBase#getFederatedData","link":"<a href=\"module-holosphere-HoloSphereBase.html#getFederatedData\">getFederatedData</a>","description":"<p>Gets federated data from a holon, optionally resolving holograms.</p>"},{"title":"module:holosphere~HoloSphereBase#getFederation","link":"<a href=\"module-holosphere-HoloSphereBase.html#getFederation\">getFederation</a>","description":"<p>Gets the federation configuration for a holon.</p>"},{"title":"module:holosphere~HoloSphereBase#getGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#getGlobal\">getGlobal</a>","description":"<p>Alias for {@link HoloSphereBase#readGlobal}.</p>"},{"title":"module:holosphere~HoloSphereBase#getHologramSource","link":"<a href=\"module-holosphere-HoloSphereBase.html#getHologramSource\">getHologramSource</a>","description":"<p>Gets the source information from a hologram or resolved hologram.</p>"},{"title":"module:holosphere~HoloSphereBase#getParents","link":"<a href=\"module-holosphere-HoloSphereBase.html#getParents\">getParents</a>","description":"<p>Gets all parent holons at higher resolutions.</p>"},{"title":"module:holosphere~HoloSphereBase#getPublicKey","link":"<a href=\"module-holosphere-HoloSphereBase.html#getPublicKey\">getPublicKey</a>","description":"<p>Derives a public key from a private key.</p>"},{"title":"module:holosphere~HoloSphereBase#getSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#getSchema\">getSchema</a>","description":"<p>Gets the JSON Schema for a specific lens.</p>"},{"title":"module:holosphere~HoloSphereBase#hasAI","link":"<a href=\"module-holosphere-HoloSphereBase.html#hasAI\">hasAI</a>","description":"<p>Checks if AI services are initialized.</p>"},{"title":"module:holosphere~HoloSphereBase#isHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#isHologram\">isHologram</a>","description":"<p>Checks if an object is a hologram (unresolved reference).</p>"},{"title":"module:holosphere~HoloSphereBase#isResolvedHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#isResolvedHologram\">isResolvedHologram</a>","description":"<p>Checks if an object is a resolved hologram (has _hologram metadata).</p>"},{"title":"module:holosphere~HoloSphereBase#isValidH3","link":"<a href=\"module-holosphere-HoloSphereBase.html#isValidH3\">isValidH3</a>","description":"<p>Validates if a string is a valid H3 cell ID.</p>"},{"title":"module:holosphere~HoloSphereBase#issueCapability","link":"<a href=\"module-holosphere-HoloSphereBase.html#issueCapability\">issueCapability</a>","description":"<p>Issues a capability token for authorization.</p>"},{"title":"module:holosphere~HoloSphereBase#load","link":"<a href=\"module-holosphere-HoloSphereBase.html#load\">load</a>","description":"<p>Alias for {@link HoloSphereBase#read}.</p>"},{"title":"module:holosphere~HoloSphereBase#metrics","link":"<a href=\"module-holosphere-HoloSphereBase.html#metrics\">metrics</a>","description":"<p>Gets performance metrics for this HoloSphere instance.</p>"},{"title":"module:holosphere~HoloSphereBase#propagate","link":"<a href=\"module-holosphere-HoloSphereBase.html#propagate\">propagate</a>","description":"<p>Propagates data to all federated holons.</p>"},{"title":"module:holosphere~HoloSphereBase#propagateData","link":"<a href=\"module-holosphere-HoloSphereBase.html#propagateData\">propagateData</a>","description":"<p>Propagates data from source holon to target holon.</p>"},{"title":"module:holosphere~HoloSphereBase#publishActivityPub","link":"<a href=\"module-holosphere-HoloSphereBase.html#publishActivityPub\">publishActivityPub</a>","description":"<p>Publishes an ActivityPub object to a holon.</p>"},{"title":"module:holosphere~HoloSphereBase#publishNostr","link":"<a href=\"module-holosphere-HoloSphereBase.html#publishNostr\">publishNostr</a>","description":"<p>Publishes a Nostr event to a holon.</p>"},{"title":"module:holosphere~HoloSphereBase#put","link":"<a href=\"module-holosphere-HoloSphereBase.html#put\">put</a>","description":"<p>Alias for {@link HoloSphereBase#write}.</p>"},{"title":"module:holosphere~HoloSphereBase#putGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#putGlobal\">putGlobal</a>","description":"<p>Alias for {@link HoloSphereBase#writeGlobal}.</p>"},{"title":"module:holosphere~HoloSphereBase#querySocial","link":"<a href=\"module-holosphere-HoloSphereBase.html#querySocial\">querySocial</a>","description":"<p>Queries social protocol data from a holon.</p>"},{"title":"module:holosphere~HoloSphereBase#read","link":"<a href=\"module-holosphere-HoloSphereBase.html#read\">read</a>","description":"<p>Reads data from a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#readGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#readGlobal\">readGlobal</a>","description":"<p>Reads data from a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#remove","link":"<a href=\"module-holosphere-HoloSphereBase.html#remove\">remove</a>","description":"<p>Alias for {@link HoloSphereBase#delete}.</p>"},{"title":"module:holosphere~HoloSphereBase#removeActiveHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#removeActiveHologram\">removeActiveHologram</a>","description":"<p>Removes an active hologram reference from a source data item.</p>"},{"title":"module:holosphere~HoloSphereBase#removeGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#removeGlobal\">removeGlobal</a>","description":"<p>Alias for {@link HoloSphereBase#deleteGlobal}.</p>"},{"title":"module:holosphere~HoloSphereBase#removeSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#removeSchema\">removeSchema</a>","description":"<p>Alias for {@link HoloSphereBase#clearSchema}.</p>"},{"title":"module:holosphere~HoloSphereBase#resolveHologram","link":"<a href=\"module-holosphere-HoloSphereBase.html#resolveHologram\">resolveHologram</a>","description":"<p>Resolves a hologram to its source data.</p>"},{"title":"module:holosphere~HoloSphereBase#save","link":"<a href=\"module-holosphere-HoloSphereBase.html#save\">save</a>","description":"<p>Alias for {@link HoloSphereBase#write}.</p>"},{"title":"module:holosphere~HoloSphereBase#schemas","link":"<a href=\"module-holosphere-HoloSphereBase.html#schemas\">schemas</a>"},{"title":"module:holosphere~HoloSphereBase#setSchema","link":"<a href=\"module-holosphere-HoloSphereBase.html#setSchema\">setSchema</a>","description":"<p>Sets a JSON Schema for validating data in a specific lens.</p>"},{"title":"module:holosphere~HoloSphereBase#sign","link":"<a href=\"module-holosphere-HoloSphereBase.html#sign\">sign</a>","description":"<p>Signs content with a private key.</p>"},{"title":"module:holosphere~HoloSphereBase#store","link":"<a href=\"module-holosphere-HoloSphereBase.html#store\">store</a>","description":"<p>Alias for {@link HoloSphereBase#write}.</p>"},{"title":"module:holosphere~HoloSphereBase#subscribe","link":"<a href=\"module-holosphere-HoloSphereBase.html#subscribe\">subscribe</a>","description":"<p>Subscribes to real-time updates for a holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#subscribeGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#subscribeGlobal\">subscribeGlobal</a>","description":"<p>Subscribes to real-time updates for a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#subscriptionRegistry","link":"<a href=\"module-holosphere-HoloSphereBase.html#subscriptionRegistry\">subscriptionRegistry</a>"},{"title":"module:holosphere~HoloSphereBase#toHolon","link":"<a href=\"module-holosphere-HoloSphereBase.html#toHolon\">toHolon</a>","description":"<p>Converts geographic coordinates to an H3 holon ID.</p>"},{"title":"module:holosphere~HoloSphereBase#unfederate","link":"<a href=\"module-holosphere-HoloSphereBase.html#unfederate\">unfederate</a>","description":"<p>Removes federation between two holons for a specific lens.</p>"},{"title":"module:holosphere~HoloSphereBase#unfederateHolon","link":"<a href=\"module-holosphere-HoloSphereBase.html#unfederateHolon\">unfederateHolon</a>","description":"<p>Removes a holon-level federation relationship.</p>"},{"title":"module:holosphere~HoloSphereBase#upcast","link":"<a href=\"module-holosphere-HoloSphereBase.html#upcast\">upcast</a>","description":"<p>Performs hierarchical upcast aggregation.\nAggregates data from child holons up to parent holons in the H3 hierarchy.</p>"},{"title":"module:holosphere~HoloSphereBase#update","link":"<a href=\"module-holosphere-HoloSphereBase.html#update\">update</a>","description":"<p>Updates existing data in a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#updateGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#updateGlobal\">updateGlobal</a>","description":"<p>Updates data in a global table.</p>"},{"title":"module:holosphere~HoloSphereBase#updateHologramOverrides","link":"<a href=\"module-holosphere-HoloSphereBase.html#updateHologramOverrides\">updateHologramOverrides</a>","description":"<p>Updates local override values on a hologram.</p>"},{"title":"module:holosphere~HoloSphereBase#verify","link":"<a href=\"module-holosphere-HoloSphereBase.html#verify\">verify</a>","description":"<p>Verifies a signature against content and public key.</p>"},{"title":"module:holosphere~HoloSphereBase#verifyCapability","link":"<a href=\"module-holosphere-HoloSphereBase.html#verifyCapability\">verifyCapability</a>","description":"<p>Verifies a capability token.</p>"},{"title":"module:holosphere~HoloSphereBase#verifyNostrEvent","link":"<a href=\"module-holosphere-HoloSphereBase.html#verifyNostrEvent\">verifyNostrEvent</a>","description":"<p>Verifies a Nostr event signature.</p>"},{"title":"module:holosphere~HoloSphereBase#write","link":"<a href=\"module-holosphere-HoloSphereBase.html#write\">write</a>","description":"<p>Writes data to a specific holon and lens.</p>"},{"title":"module:holosphere~HoloSphereBase#writeGlobal","link":"<a href=\"module-holosphere-HoloSphereBase.html#writeGlobal\">writeGlobal</a>","description":"<p>Writes data to a global table (not holon-specific).</p>"},{"title":"module:lib/ai-methods","link":"<a href=\"module-lib_ai-methods.html\">lib/ai-methods</a>","description":"<p>AI methods mixin providing comprehensive AI-powered operations for HoloSphere.\nIncludes LLM operations, embeddings, semantic search, natural language queries, spatial analysis,\nand specialized AI features for geographic and hierarchical data processing.</p>"},{"title":"module:lib/ai-methods#analyze","link":"<a href=\"module-lib_ai-methods.html#analyze\">analyze</a>","description":"<p>Analyze text for a specific aspect using AI.</p>"},{"title":"module:lib/ai-methods#analyzeFederationHealth","link":"<a href=\"module-lib_ai-methods.html#analyzeFederationHealth\">analyzeFederationHealth</a>","description":"<p>Analyze health of holon's federations.</p>"},{"title":"module:lib/ai-methods#analyzeH3Coverage","link":"<a href=\"module-lib_ai-methods.html#analyzeH3Coverage\">analyzeH3Coverage</a>","description":"<p>Analyze H3 coverage patterns.</p>"},{"title":"module:lib/ai-methods#analyzeH3Distribution","link":"<a href=\"module-lib_ai-methods.html#analyzeH3Distribution\">analyzeH3Distribution</a>","description":"<p>Analyze H3 distribution patterns in data.</p>"},{"title":"module:lib/ai-methods#analyzeH3Impact","link":"<a href=\"module-lib_ai-methods.html#analyzeH3Impact\">analyzeH3Impact</a>","description":"<p>Analyze geographic impact of an item.</p>"},{"title":"module:lib/ai-methods#analyzeRegion","link":"<a href=\"module-lib_ai-methods.html#analyzeRegion\">analyzeRegion</a>","description":"<p>Analyze a geographic region using AI.</p>"},{"title":"module:lib/ai-methods#askCouncil","link":"<a href=\"module-lib_ai-methods.html#askCouncil\">askCouncil</a>","description":"<p>Ask a question to the multi-perspective AI council.</p>"},{"title":"module:lib/ai-methods#askCouncilCustom","link":"<a href=\"module-lib_ai-methods.html#askCouncilCustom\">askCouncilCustom</a>","description":"<p>Ask a question to a custom set of perspectives.</p>"},{"title":"module:lib/ai-methods#autoStore","link":"<a href=\"module-lib_ai-methods.html#autoStore\">autoStore</a>","description":"<p>Automatically classify and store content in appropriate lens.</p>"},{"title":"module:lib/ai-methods#breakdown","link":"<a href=\"module-lib_ai-methods.html#breakdown\">breakdown</a>","description":"<p>Break down complex item into subtasks using AI.</p>"},{"title":"module:lib/ai-methods#buildRelationshipGraph","link":"<a href=\"module-lib_ai-methods.html#buildRelationshipGraph\">buildRelationshipGraph</a>","description":"<p>Build relationship graph for holon data.</p>"},{"title":"module:lib/ai-methods#categorize","link":"<a href=\"module-lib_ai-methods.html#categorize\">categorize</a>","description":"<p>Categorize text into one of the provided categories.</p>"},{"title":"module:lib/ai-methods#classifyToLens","link":"<a href=\"module-lib_ai-methods.html#classifyToLens\">classifyToLens</a>","description":"<p>Classify content to determine appropriate lens.</p>"},{"title":"module:lib/ai-methods#compareRegions","link":"<a href=\"module-lib_ai-methods.html#compareRegions\">compareRegions</a>","description":"<p>Compare two geographic regions using AI.</p>"},{"title":"module:lib/ai-methods#crossH3ResolutionInsights","link":"<a href=\"module-lib_ai-methods.html#crossH3ResolutionInsights\">crossH3ResolutionInsights</a>","description":"<p>Get insights across different H3 resolutions.</p>"},{"title":"module:lib/ai-methods#discoverRelationships","link":"<a href=\"module-lib_ai-methods.html#discoverRelationships\">discoverRelationships</a>","description":"<p>Discover relationships between data items using AI.</p>"},{"title":"module:lib/ai-methods#embed","link":"<a href=\"module-lib_ai-methods.html#embed\">embed</a>","description":"<p>Generate embedding vector for text.</p>"},{"title":"module:lib/ai-methods#extractKeywords","link":"<a href=\"module-lib_ai-methods.html#extractKeywords\">extractKeywords</a>","description":"<p>Extract keywords from text using AI.</p>"},{"title":"module:lib/ai-methods#extractToSchema","link":"<a href=\"module-lib_ai-methods.html#extractToSchema\">extractToSchema</a>","description":"<p>Extract structured data from text according to a lens schema.</p>"},{"title":"module:lib/ai-methods#findH3Clusters","link":"<a href=\"module-lib_ai-methods.html#findH3Clusters\">findH3Clusters</a>","description":"<p>Find geographic clusters in holon data.</p>"},{"title":"module:lib/ai-methods#findH3NeighborRelevance","link":"<a href=\"module-lib_ai-methods.html#findH3NeighborRelevance\">findH3NeighborRelevance</a>","description":"<p>Find relevance of neighbor H3 cells.</p>"},{"title":"module:lib/ai-methods#findSimilar","link":"<a href=\"module-lib_ai-methods.html#findSimilar\">findSimilar</a>","description":"<p>Find similar items using AI and embeddings.</p>"},{"title":"module:lib/ai-methods#flattenBreakdown","link":"<a href=\"module-lib_ai-methods.html#flattenBreakdown\">flattenBreakdown</a>","description":"<p>Flatten hierarchical breakdown into linear array.</p>"},{"title":"module:lib/ai-methods#generateH3Report","link":"<a href=\"module-lib_ai-methods.html#generateH3Report\">generateH3Report</a>","description":"<p>Generate comprehensive geographic report for holon.</p>"},{"title":"module:lib/ai-methods#generateHolonSummary","link":"<a href=\"module-lib_ai-methods.html#generateHolonSummary\">generateHolonSummary</a>","description":"<p>Generate AI-powered summary of holon data.</p>"},{"title":"module:lib/ai-methods#generateQuestions","link":"<a href=\"module-lib_ai-methods.html#generateQuestions\">generateQuestions</a>","description":"<p>Generate questions from text using AI.</p>"},{"title":"module:lib/ai-methods#getBreakdownDependencyOrder","link":"<a href=\"module-lib_ai-methods.html#getBreakdownDependencyOrder\">getBreakdownDependencyOrder</a>","description":"<p>Get dependency-ordered list of breakdown items.</p>"},{"title":"module:lib/ai-methods#getBreakdownProgress","link":"<a href=\"module-lib_ai-methods.html#getBreakdownProgress\">getBreakdownProgress</a>","description":"<p>Get progress status of breakdown items.</p>"},{"title":"module:lib/ai-methods#jsonAdd","link":"<a href=\"module-lib_ai-methods.html#jsonAdd\">jsonAdd</a>","description":"<p>AI-powered fuzzy addition of JSON objects.</p>"},{"title":"module:lib/ai-methods#jsonConcatenate","link":"<a href=\"module-lib_ai-methods.html#jsonConcatenate\">jsonConcatenate</a>","description":"<p>AI-powered fuzzy concatenation of JSON objects.</p>"},{"title":"module:lib/ai-methods#jsonDifference","link":"<a href=\"module-lib_ai-methods.html#jsonDifference\">jsonDifference</a>","description":"<p>AI-powered fuzzy difference of JSON objects.</p>"},{"title":"module:lib/ai-methods#jsonSubtract","link":"<a href=\"module-lib_ai-methods.html#jsonSubtract\">jsonSubtract</a>","description":"<p>AI-powered fuzzy subtraction of JSON objects.</p>"},{"title":"module:lib/ai-methods#jsonUnion","link":"<a href=\"module-lib_ai-methods.html#jsonUnion\">jsonUnion</a>","description":"<p>AI-powered fuzzy union of JSON objects.</p>"},{"title":"module:lib/ai-methods#nlQuery","link":"<a href=\"module-lib_ai-methods.html#nlQuery\">nlQuery</a>","description":"<p>Execute a natural language query on holon data.</p>"},{"title":"module:lib/ai-methods#optimizeFederation","link":"<a href=\"module-lib_ai-methods.html#optimizeFederation\">optimizeFederation</a>","description":"<p>Get AI recommendations for optimizing federations.</p>"},{"title":"module:lib/ai-methods#parseNLQuery","link":"<a href=\"module-lib_ai-methods.html#parseNLQuery\">parseNLQuery</a>","description":"<p>Parse a natural language query into structured components.</p>"},{"title":"module:lib/ai-methods#registerLensForClassification","link":"<a href=\"module-lib_ai-methods.html#registerLensForClassification\">registerLensForClassification</a>","description":"<p>Register a lens for auto-classification.</p>"},{"title":"module:lib/ai-methods#semanticSearch","link":"<a href=\"module-lib_ai-methods.html#semanticSearch\">semanticSearch</a>","description":"<p>Perform semantic search on holon data using embeddings.</p>"},{"title":"module:lib/ai-methods#smartUpcast","link":"<a href=\"module-lib_ai-methods.html#smartUpcast\">smartUpcast</a>","description":"<p>Intelligently upcast data with AI-powered aggregation.</p>"},{"title":"module:lib/ai-methods#spatialTrends","link":"<a href=\"module-lib_ai-methods.html#spatialTrends\">spatialTrends</a>","description":"<p>Analyze spatial trends over time.</p>"},{"title":"module:lib/ai-methods#storeWithEmbedding","link":"<a href=\"module-lib_ai-methods.html#storeWithEmbedding\">storeWithEmbedding</a>","description":"<p>Store data with automatically generated embedding.</p>"},{"title":"module:lib/ai-methods#suggestBreakdownStrategy","link":"<a href=\"module-lib_ai-methods.html#suggestBreakdownStrategy\">suggestBreakdownStrategy</a>","description":"<p>Get AI suggestion for breakdown strategy.</p>"},{"title":"module:lib/ai-methods#suggestConnections","link":"<a href=\"module-lib_ai-methods.html#suggestConnections\">suggestConnections</a>","description":"<p>Get AI suggestions for connecting an item to others.</p>"},{"title":"module:lib/ai-methods#suggestFederations","link":"<a href=\"module-lib_ai-methods.html#suggestFederations\">suggestFederations</a>","description":"<p>Get AI suggestions for holon federations.</p>"},{"title":"module:lib/ai-methods#suggestGeographicScope","link":"<a href=\"module-lib_ai-methods.html#suggestGeographicScope\">suggestGeographicScope</a>","description":"<p>Get AI suggestion for geographic scope of item.</p>"},{"title":"module:lib/ai-methods#suggestH3Migration","link":"<a href=\"module-lib_ai-methods.html#suggestH3Migration\">suggestH3Migration</a>","description":"<p>Get AI suggestion for migrating item to different H3 resolution.</p>"},{"title":"module:lib/ai-methods#suggestH3Resolution","link":"<a href=\"module-lib_ai-methods.html#suggestH3Resolution\">suggestH3Resolution</a>","description":"<p>Get AI suggestion for optimal H3 resolution for item.</p>"},{"title":"module:lib/ai-methods#textToSpeech","link":"<a href=\"module-lib_ai-methods.html#textToSpeech\">textToSpeech</a>","description":"<p>Convert text to speech audio.</p>"},{"title":"module:lib/ai-methods#textToSpeechBase64","link":"<a href=\"module-lib_ai-methods.html#textToSpeechBase64\">textToSpeechBase64</a>","description":"<p>Convert text to speech audio (base64 encoded).</p>"},{"title":"module:lib/ai-methods#translate","link":"<a href=\"module-lib_ai-methods.html#translate\">translate</a>","description":"<p>Translate text to target language using AI.</p>"},{"title":"module:lib/ai-methods.withAIMethods","link":"<a href=\"module-lib_ai-methods.html#.withAIMethods\">withAIMethods</a>","description":"<p>Mixin that adds AI methods to a HoloSphere class.\nProvides access to LLM, embeddings, semantic search, council, classification,\nspatial analysis, aggregation, federation advisor, relationships, and task breakdown.</p>"},{"title":"module:lib/contract-methods","link":"<a href=\"module-lib_contract-methods.html\">lib/contract-methods</a>","description":"<p>Blockchain contract methods mixin for HoloSphere.\nProvides comprehensive smart contract operations including deployment, member management,\nfund distribution, and governance features across multiple contract types.</p>"},{"title":"module:lib/contract-methods#contractAddMember","link":"<a href=\"module-lib_contract-methods.html#contractAddMember\">contractAddMember</a>","description":"<p>Add a member to holon contract.</p>"},{"title":"module:lib/contract-methods#contractAddMembers","link":"<a href=\"module-lib_contract-methods.html#contractAddMembers\">contractAddMembers</a>","description":"<p>Add multiple members to holon contract.</p>"},{"title":"module:lib/contract-methods#contractClaim","link":"<a href=\"module-lib_contract-methods.html#contractClaim\">contractClaim</a>","description":"<p>Claim user's share of distributed funds.</p>"},{"title":"module:lib/contract-methods#contractGetEthBalance","link":"<a href=\"module-lib_contract-methods.html#contractGetEthBalance\">contractGetEthBalance</a>","description":"<p>Get user's claimable ETH balance.</p>"},{"title":"module:lib/contract-methods#contractGetTokenBalance","link":"<a href=\"module-lib_contract-methods.html#contractGetTokenBalance\">contractGetTokenBalance</a>","description":"<p>Get user's claimable token balance.</p>"},{"title":"module:lib/contract-methods#contractIsMember","link":"<a href=\"module-lib_contract-methods.html#contractIsMember\">contractIsMember</a>","description":"<p>Check if user is a member of holon contract.</p>"},{"title":"module:lib/contract-methods#contractReward","link":"<a href=\"module-lib_contract-methods.html#contractReward\">contractReward</a>","description":"<p>Distribute ERC20 token rewards to contract members.</p>"},{"title":"module:lib/contract-methods#contractRewardEth","link":"<a href=\"module-lib_contract-methods.html#contractRewardEth\">contractRewardEth</a>","description":"<p>Distribute ETH rewards to contract members.</p>"},{"title":"module:lib/contract-methods#contractSendEth","link":"<a href=\"module-lib_contract-methods.html#contractSendEth\">contractSendEth</a>","description":"<p>Send ETH to holon contract.</p>"},{"title":"module:lib/contract-methods#deployContracts","link":"<a href=\"module-lib_contract-methods.html#deployContracts\">deployContracts</a>","description":"<p>Deploy all core contracts (factory, templates, etc.).</p>"},{"title":"module:lib/contract-methods#deployHolonContract","link":"<a href=\"module-lib_contract-methods.html#deployHolonContract\">deployHolonContract</a>","description":"<p>Deploy a new contract for a holon.</p>"},{"title":"module:lib/contract-methods#getChainManager","link":"<a href=\"module-lib_contract-methods.html#getChainManager\">getChainManager</a>","description":"<p>Get the chain manager instance.</p>"},{"title":"module:lib/contract-methods#getDeployedContracts","link":"<a href=\"module-lib_contract-methods.html#getDeployedContracts\">getDeployedContracts</a>","description":"<p>Get all deployed contract addresses.</p>"},{"title":"module:lib/contract-methods#getHolonContract","link":"<a href=\"module-lib_contract-methods.html#getHolonContract\">getHolonContract</a>","description":"<p>Get contract instance for a holon.</p>"},{"title":"module:lib/contract-methods#getHolonContractAddress","link":"<a href=\"module-lib_contract-methods.html#getHolonContractAddress\">getHolonContractAddress</a>","description":"<p>Get contract address for a holon.</p>"},{"title":"module:lib/contract-methods#getHolonOperations","link":"<a href=\"module-lib_contract-methods.html#getHolonOperations\">getHolonOperations</a>","description":"<p>Get operations interface for a holon contract.</p>"},{"title":"module:lib/contract-methods#getNetworkUtils","link":"<a href=\"module-lib_contract-methods.html#getNetworkUtils\">getNetworkUtils</a>","description":"<p>Get network utility functions.</p>"},{"title":"module:lib/contract-methods#hasContracts","link":"<a href=\"module-lib_contract-methods.html#hasContracts\">hasContracts</a>","description":"<p>Check if contracts are initialized.</p>"},{"title":"module:lib/contract-methods#hasHolonContract","link":"<a href=\"module-lib_contract-methods.html#hasHolonContract\">hasHolonContract</a>","description":"<p>Check if holon has a linked contract.</p>"},{"title":"module:lib/contract-methods#initContracts","link":"<a href=\"module-lib_contract-methods.html#initContracts\">initContracts</a>","description":"<p>Initialize contracts with server-side configuration (Node.js).</p>"},{"title":"module:lib/contract-methods#initContractsBrowser","link":"<a href=\"module-lib_contract-methods.html#initContractsBrowser\">initContractsBrowser</a>","description":"<p>Initialize contracts with browser wallet (MetaMask, etc.).</p>"},{"title":"module:lib/contract-methods#linkHolonContract","link":"<a href=\"module-lib_contract-methods.html#linkHolonContract\">linkHolonContract</a>","description":"<p>Link an existing contract to a holon.</p>"},{"title":"module:lib/contract-methods#listHolonContracts","link":"<a href=\"module-lib_contract-methods.html#listHolonContracts\">listHolonContracts</a>","description":"<p>List all holon contracts.</p>"},{"title":"module:lib/contract-methods#loadDeployedContracts","link":"<a href=\"module-lib_contract-methods.html#loadDeployedContracts\">loadDeployedContracts</a>","description":"<p>Load previously deployed contract addresses.</p>"},{"title":"module:lib/contract-methods#unlinkHolonContract","link":"<a href=\"module-lib_contract-methods.html#unlinkHolonContract\">unlinkHolonContract</a>","description":"<p>Unlink contract from a holon.</p>"},{"title":"module:lib/contract-methods.withContractMethods","link":"<a href=\"module-lib_contract-methods.html#.withContractMethods\">withContractMethods</a>","description":"<p>Mixin that adds blockchain contract methods to a HoloSphere class.\nProvides initialization, deployment, and interaction with Ethereum smart contracts\nincluding Splitter, Managed, Zoned, Appreciative, and Bundle contract types.</p>"},{"title":"module:lib/errors","link":"<a href=\"module-lib_errors.html\">lib/errors</a>","description":"<p>HoloSphere Custom Error Classes.</p>\n<p>Provides specialized error types for authorization and validation failures.</p>"},{"title":"module:lib/errors.AuthorizationError","link":"<a href=\"module-lib_errors.AuthorizationError.html\">AuthorizationError</a>","description":"<p>Creates a new AuthorizationError.</p>"},{"title":"module:lib/errors.AuthorizationError#name","link":"<a href=\"module-lib_errors.AuthorizationError.html#name\">name</a>"},{"title":"module:lib/errors.AuthorizationError#requiredPermission","link":"<a href=\"module-lib_errors.AuthorizationError.html#requiredPermission\">requiredPermission</a>"},{"title":"module:lib/errors.ValidationError","link":"<a href=\"module-lib_errors.ValidationError.html\">ValidationError</a>","description":"<p>Creates a new ValidationError.</p>"},{"title":"module:lib/errors.ValidationError#name","link":"<a href=\"module-lib_errors.ValidationError.html#name\">name</a>"},{"title":"module:lib/errors~AuthorizationError","link":"<a href=\"module-lib_errors-AuthorizationError.html\">AuthorizationError</a>","description":"<p>Error thrown when an operation fails due to insufficient permissions.</p>"},{"title":"module:lib/errors~ValidationError","link":"<a href=\"module-lib_errors-ValidationError.html\">ValidationError</a>","description":"<p>Error thrown when data validation fails.</p>"},{"title":"module:lib/federation-methods","link":"<a href=\"module-lib_federation-methods.html\">lib/federation-methods</a>","description":"<p>Federation methods mixin for cross-HoloSphere federation and Nostr discovery.\nProvides federated data access, capability-based authorization, and federation request protocols\nfor connecting multiple HoloSphere instances.</p>"},{"title":"module:lib/federation-methods#acceptFederationRequest","link":"<a href=\"module-lib_federation-methods.html#acceptFederationRequest\">acceptFederationRequest</a>","description":"<p>Accept a federation request and establish partnership.</p>"},{"title":"module:lib/federation-methods#addFederatedHolosphere","link":"<a href=\"module-lib_federation-methods.html#addFederatedHolosphere\">addFederatedHolosphere</a>","description":"<p>Add a federated HoloSphere partner by public key.</p>"},{"title":"module:lib/federation-methods#createCrossHolosphereHologram","link":"<a href=\"module-lib_federation-methods.html#createCrossHolosphereHologram\">createCrossHolosphereHologram</a>","description":"<p>Create a cross-HoloSphere hologram reference.\nLinks data from another HoloSphere into this one using capability-based access.</p>"},{"title":"module:lib/federation-methods#declineFederationRequest","link":"<a href=\"module-lib_federation-methods.html#declineFederationRequest\">declineFederationRequest</a>","description":"<p>Decline a federation request.</p>"},{"title":"module:lib/federation-methods#getFederatedHolospheres","link":"<a href=\"module-lib_federation-methods.html#getFederatedHolospheres\">getFederatedHolospheres</a>","description":"<p>Get all federated HoloSphere public keys.</p>"},{"title":"module:lib/federation-methods#getFederationRegistry","link":"<a href=\"module-lib_federation-methods.html#getFederationRegistry\">getFederationRegistry</a>","description":"<p>Get the complete federation registry.</p>"},{"title":"module:lib/federation-methods#getPendingFederationRequests","link":"<a href=\"module-lib_federation-methods.html#getPendingFederationRequests\">getPendingFederationRequests</a>","description":"<p>Get all pending federation requests.</p>"},{"title":"module:lib/federation-methods#issueCapabilityForFederation","link":"<a href=\"module-lib_federation-methods.html#issueCapabilityForFederation\">issueCapabilityForFederation</a>","description":"<p>Issue a capability token for federated access.\nGrants another HoloSphere permission to access data with specified scope.</p>"},{"title":"module:lib/federation-methods#readFromFederatedSource","link":"<a href=\"module-lib_federation-methods.html#readFromFederatedSource\">readFromFederatedSource</a>","description":"<p>Read data from a federated source with capability verification.</p>"},{"title":"module:lib/federation-methods#removeFederatedHolosphere","link":"<a href=\"module-lib_federation-methods.html#removeFederatedHolosphere\">removeFederatedHolosphere</a>","description":"<p>Remove a federated HoloSphere partner.</p>"},{"title":"module:lib/federation-methods#sendFederationRequest","link":"<a href=\"module-lib_federation-methods.html#sendFederationRequest\">sendFederationRequest</a>","description":"<p>Send a federation request to another HoloSphere via Nostr.</p>"},{"title":"module:lib/federation-methods#storeInboundCapability","link":"<a href=\"module-lib_federation-methods.html#storeInboundCapability\">storeInboundCapability</a>","description":"<p>Store an inbound capability token from a federated partner.</p>"},{"title":"module:lib/federation-methods#subscribeFederationAcceptances","link":"<a href=\"module-lib_federation-methods.html#subscribeFederationAcceptances\">subscribeFederationAcceptances</a>","description":"<p>Subscribe to federation request acceptances.</p>"},{"title":"module:lib/federation-methods#subscribeFederationDeclines","link":"<a href=\"module-lib_federation-methods.html#subscribeFederationDeclines\">subscribeFederationDeclines</a>","description":"<p>Subscribe to federation request declines.</p>"},{"title":"module:lib/federation-methods#subscribeFederationRequests","link":"<a href=\"module-lib_federation-methods.html#subscribeFederationRequests\">subscribeFederationRequests</a>","description":"<p>Subscribe to incoming federation requests.</p>"},{"title":"module:lib/federation-methods.withFederationMethods","link":"<a href=\"module-lib_federation-methods.html#.withFederationMethods\">withFederationMethods</a>","description":"<p>Mixin that adds federation methods to a HoloSphere class.\nEnables cross-HoloSphere federation with capability-based access control,\nhologram creation, and Nostr-based discovery protocols.</p>"},{"title":"module:lib/index","link":"<a href=\"module-lib_index.html\">lib/index</a>","description":"<p>HoloSphere library modules and mixin composition utilities.\nExports AI, contract, and federation method mixins for extending the base HoloSphere class.</p>"},{"title":"module:lib/index.compose","link":"<a href=\"module-lib_index.html#.compose\">compose</a>","description":"<p>Compose multiple mixins into a single class.\nApplies mixins in order from left to right.</p>"},{"title":"module:schema/validator","link":"<a href=\"module-schema_validator.html\">schema/validator</a>","description":"<p>JSON Schema Validation with Ajv and caching.</p>\n<p>Provides JSON Schema validation using Ajv (Another JSON Schema Validator)\nwith schema compilation caching for improved performance on repeated validations.</p>"},{"title":"module:schema/validator.ValidationError","link":"<a href=\"module-schema_validator.ValidationError.html\">ValidationError</a>","description":"<p>Creates a new ValidationError.</p>"},{"title":"module:schema/validator.clearAllCaches","link":"<a href=\"module-schema_validator.html#.clearAllCaches\">clearAllCaches</a>","description":"<p>Clear all cached schemas</p>"},{"title":"module:schema/validator.clearSchemaCache","link":"<a href=\"module-schema_validator.html#.clearSchemaCache\">clearSchemaCache</a>","description":"<p>Clear schema cache for a lens</p>"},{"title":"module:schema/validator.compileSchema","link":"<a href=\"module-schema_validator.html#.compileSchema\">compileSchema</a>","description":"<p>Compile and cache JSON Schema</p>"},{"title":"module:schema/validator.validate","link":"<a href=\"module-schema_validator.html#.validate\">validate</a>","description":"<p>Validate data against schema</p>"},{"title":"module:schema/validator~Cache","link":"<a href=\"module-schema_validator.html#~Cache\">Cache</a>","description":"<p>TTL in milliseconds (1 hour)</p>"},{"title":"module:schema/validator~ValidationError","link":"<a href=\"module-schema_validator-ValidationError.html\">ValidationError</a>","description":"<p>Custom error class for validation failures.</p>"},{"title":"module:schema/validator~ajv","link":"<a href=\"module-schema_validator.html#~ajv\">ajv</a>","description":"<p>Ajv instance configured for validation</p>"},{"title":"module:schema/validator~schemaCache","link":"<a href=\"module-schema_validator.html#~schemaCache\">schemaCache</a>","description":"<p>Schema cache</p>"},{"title":"module:spatial/h3-operations","link":"<a href=\"module-spatial_h3-operations.html\">spatial/h3-operations</a>","description":"<p>H3 Hexagonal Spatial Operations.</p>\n<p>Provides functions for working with H3 hexagonal hierarchical spatial indexing.\nH3 divides the world into hexagonal cells at 16 resolution levels (0-15),\nwhere resolution 0 covers the entire globe and resolution 15 provides\napproximately 0.5 square meter precision.</p>"},{"title":"module:spatial/h3-operations.getChildren","link":"<a href=\"module-spatial_h3-operations.html#.getChildren\">getChildren</a>","description":"<p>Get all child holons at next resolution level</p>"},{"title":"module:spatial/h3-operations.getH3Resolution","link":"<a href=\"module-spatial_h3-operations.html#.getH3Resolution\">getH3Resolution</a>","description":"<p>Get H3 resolution level from cell ID</p>"},{"title":"module:spatial/h3-operations.getParents","link":"<a href=\"module-spatial_h3-operations.html#.getParents\">getParents</a>","description":"<p>Get all parent holons up the hierarchy</p>"},{"title":"module:spatial/h3-operations.isValidH3","link":"<a href=\"module-spatial_h3-operations.html#.isValidH3\">isValidH3</a>","description":"<p>Validate H3 cell ID format</p>"},{"title":"module:spatial/h3-operations.toHolon","link":"<a href=\"module-spatial_h3-operations.html#.toHolon\">toHolon</a>","description":"<p>Converts geographic coordinates to an H3 holon ID.</p>"},{"title":"module:storage/backend-factory","link":"<a href=\"module-storage_backend-factory.html\">storage/backend-factory</a>","description":"<p>Factory for Creating Storage Backends.</p>\n<p>Provides a factory pattern for creating and managing storage backend instances.\nSupports lazy loading of backend implementations to reduce initial bundle size.</p>"},{"title":"module:storage/backend-factory.BackendFactory","link":"<a href=\"module-storage_backend-factory.BackendFactory.html\">BackendFactory</a>"},{"title":"module:storage/backend-factory.BackendFactory.create","link":"<a href=\"module-storage_backend-factory.BackendFactory.html#.create\">create</a>","description":"<p>Create a storage backend instance</p>"},{"title":"module:storage/backend-factory.BackendFactory.getAvailableBackends","link":"<a href=\"module-storage_backend-factory.BackendFactory.html#.getAvailableBackends\">getAvailableBackends</a>","description":"<p>Get list of available backend types</p>"},{"title":"module:storage/backend-factory.BackendFactory.isAvailable","link":"<a href=\"module-storage_backend-factory.BackendFactory.html#.isAvailable\">isAvailable</a>","description":"<p>Check if a backend type is available</p>"},{"title":"module:storage/backend-factory.BackendFactory.loadBackend","link":"<a href=\"module-storage_backend-factory.BackendFactory.html#.loadBackend\">loadBackend</a>","description":"<p>Load a backend class dynamically</p>"},{"title":"module:storage/backend-factory.BackendFactory.register","link":"<a href=\"module-storage_backend-factory.BackendFactory.html#.register\">register</a>","description":"<p>Register a custom backend</p>"},{"title":"module:storage/backend-factory~BACKEND_MODULES","link":"<a href=\"module-storage_backend-factory.html#~BACKEND_MODULES\">BACKEND_MODULES</a>","description":"<p>Map of backend types to their module paths</p>"},{"title":"module:storage/backend-factory~capitalize","link":"<a href=\"module-storage_backend-factory.html#~capitalize\">capitalize</a>","description":"<p>Capitalize first letter</p>"},{"title":"module:storage/backend-factory~getDependencyHint","link":"<a href=\"module-storage_backend-factory.html#~getDependencyHint\">getDependencyHint</a>","description":"<p>Get dependency installation hint for a backend</p>"},{"title":"module:storage/backend-interface","link":"<a href=\"module-storage_backend-interface.html\">storage/backend-interface</a>","description":"<p>Abstract Storage Backend Interface.</p>\n<p>Defines the contract that all storage backends must implement.\nProvides a consistent API for CRUD operations, subscriptions,\nand data migration across different storage technologies.</p>"},{"title":"module:storage/backend-interface.StorageBackend","link":"<a href=\"module-storage_backend-interface.StorageBackend.html\">StorageBackend</a>","description":"<p>Creates a new StorageBackend instance.</p>"},{"title":"module:storage/backend-interface.StorageBackend#buildPath","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#buildPath\">buildPath</a>","description":"<p>Build path from components</p>"},{"title":"module:storage/backend-interface.StorageBackend#close","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#close\">close</a>","description":"<p>Close connections and cleanup</p>"},{"title":"module:storage/backend-interface.StorageBackend#delete","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#delete\">delete</a>","description":"<p>Delete data at path</p>"},{"title":"module:storage/backend-interface.StorageBackend#deleteAll","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#deleteAll\">deleteAll</a>","description":"<p>Delete all data under path prefix</p>"},{"title":"module:storage/backend-interface.StorageBackend#exportData","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#exportData\">exportData</a>","description":"<p>Export all data for migration</p>"},{"title":"module:storage/backend-interface.StorageBackend#getStatus","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#getStatus\">getStatus</a>","description":"<p>Get backend status/health</p>"},{"title":"module:storage/backend-interface.StorageBackend#importData","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#importData\">importData</a>","description":"<p>Import data from migration</p>"},{"title":"module:storage/backend-interface.StorageBackend#init","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#init\">init</a>","description":"<p>Initialize the backend</p>"},{"title":"module:storage/backend-interface.StorageBackend#read","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#read\">read</a>","description":"<p>Read data from storage</p>"},{"title":"module:storage/backend-interface.StorageBackend#readAll","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#readAll\">readAll</a>","description":"<p>Read all data under a path prefix</p>"},{"title":"module:storage/backend-interface.StorageBackend#subscribe","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#subscribe\">subscribe</a>","description":"<p>Subscribe to data changes</p>"},{"title":"module:storage/backend-interface.StorageBackend#update","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#update\">update</a>","description":"<p>Update data (merge fields)</p>"},{"title":"module:storage/backend-interface.StorageBackend#write","link":"<a href=\"module-storage_backend-interface.StorageBackend.html#write\">write</a>","description":"<p>Write data to storage</p>"},{"title":"module:storage/backend-interface~StorageBackend","link":"<a href=\"module-storage_backend-interface-StorageBackend.html\">StorageBackend</a>","description":"<p>Abstract base class for storage backends.\nAll concrete backends (Nostr, GunDB, ActivityPub) must extend this class.</p>"},{"title":"module:storage/backends/activitypub-backend","link":"<a href=\"module-storage_backends_activitypub-backend.html\">storage/backends/activitypub-backend</a>","description":"<p>ActivityPub storage backend client adapter.\nProvides HTTP-based connectivity to an ActivityPub server for federated data storage\nand real-time subscriptions via Server-Sent Events.</p>"},{"title":"module:storage/backends/activitypub-backend.ActivityPubBackend","link":"<a href=\"module-storage_backends_activitypub-backend.ActivityPubBackend.html\">ActivityPubBackend</a>","description":"<p>Create a new ActivityPub backend instance.</p>"},{"title":"module:storage/backends/activitypub-backend~ActivityPubBackend","link":"<a href=\"module-storage_backends_activitypub-backend-ActivityPubBackend.html\">ActivityPubBackend</a>","description":"<p>ActivityPub storage backend implementation.\nClient adapter for connecting to an ActivityPub server via HTTP API\nwith SSE-based real-time subscriptions.</p>"},{"title":"module:storage/backends/activitypub/server","link":"<a href=\"module-storage_backends_activitypub_server.html\">storage/backends/activitypub/server</a>","description":"<p>Self-hosted ActivityPub server for HoloSphere federation.\nProvides complete ActivityPub protocol support for federation with Mastodon, Pleroma,\nand other fediverse servers. Includes WebFinger, NodeInfo, actor endpoints, and SSE subscriptions.</p>"},{"title":"module:storage/backends/activitypub/server.ActivityPubServer","link":"<a href=\"module-storage_backends_activitypub_server.ActivityPubServer.html\">ActivityPubServer</a>","description":"<p>Create a new ActivityPub server instance.</p>"},{"title":"module:storage/backends/activitypub/server~ActivityPubServer","link":"<a href=\"module-storage_backends_activitypub_server-ActivityPubServer.html\">ActivityPubServer</a>","description":"<p>Self-hosted ActivityPub server for HoloSphere data federation.\nImplements WebFinger discovery, actor endpoints, inbox/outbox, and HoloSphere data API.</p>"},{"title":"module:storage/backends/activitypub/server~ActivityStreams","link":"<a href=\"module-storage_backends_activitypub_server.html#~ActivityStreams\">ActivityStreams</a>","description":"<p>JSON-LD context</p>"},{"title":"module:storage/backends/activitypub/server~Security","link":"<a href=\"module-storage_backends_activitypub_server.html#~Security\">Security</a>","description":"<p>vocabulary JSON-LD context</p>"},{"title":"module:storage/backends/gundb-backend","link":"<a href=\"module-storage_backends_gundb-backend.html\">storage/backends/gundb-backend</a>","description":"<p>GunDB storage backend with authentication, schema validation, references, and global tables.\nProvides full-featured P2P data storage using GunDB with write caching for immediate consistency.</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html\">GunDBBackend</a>","description":"<p>Create a new GunDB backend instance.</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#authenticate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#authenticate\">authenticate</a>","description":"<p>Authenticate for a holon</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#clearSchemaCache","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#clearSchemaCache\">clearSchemaCache</a>","description":"<p>Clear schema cache</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#clearWriteCache","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#clearWriteCache\">clearWriteCache</a>","description":"<p>Clear write cache for a specific path or all paths</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#createReference","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#createReference\">createReference</a>","description":"<p>Create a reference to data</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#createUser","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#createUser\">createUser</a>","description":"<p>Create a new user</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#deletePrivate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#deletePrivate\">deletePrivate</a>","description":"<p>Delete from private storage</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#deleteSchema","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#deleteSchema\">deleteSchema</a>","description":"<p>Delete a schema</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#getAllSchemas","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#getAllSchemas\">getAllSchemas</a>","description":"<p>Get all schemas</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#getSchema","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#getSchema\">getSchema</a>","description":"<p>Get a schema for a lens</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#getSoul","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#getSoul\">getSoul</a>","description":"<p>Get soul for data</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#isAuthenticated","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#isAuthenticated\">isAuthenticated</a>","description":"<p>Check if authenticated</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#isReference","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#isReference\">isReference</a>","description":"<p>Check if data is a reference</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#logout","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#logout\">logout</a>","description":"<p>Logout current user</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#parseSoulPath","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#parseSoulPath\">parseSoulPath</a>","description":"<p>Parse a soul path</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#readAllPrivate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#readAllPrivate\">readAllPrivate</a>","description":"<p>Read all from private lens</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#readPrivate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#readPrivate\">readPrivate</a>","description":"<p>Read from private storage</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#resolveReference","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#resolveReference\">resolveReference</a>","description":"<p>Resolve a reference to get actual data</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#setSchema","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#setSchema\">setSchema</a>","description":"<p>Set a schema for a lens</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#validate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#validate\">validate</a>","description":"<p>Validate data against a schema</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#validateData","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#validateData\">validateData</a>","description":"<p>Validate data against a lens schema</p>"},{"title":"module:storage/backends/gundb-backend.GunDBBackend#writePrivate","link":"<a href=\"module-storage_backends_gundb-backend.GunDBBackend.html#writePrivate\">writePrivate</a>","description":"<p>Write to private storage</p>"},{"title":"module:storage/backends/gundb-backend~GunDBBackend","link":"<a href=\"module-storage_backends_gundb-backend-GunDBBackend.html\">GunDBBackend</a>","description":"<p>GunDB storage backend implementation with advanced features.\nSupports authentication, schema validation, references, global tables,\nand write caching for immediate consistency.</p>"},{"title":"module:storage/backends/nostr-backend","link":"<a href=\"module-storage_backends_nostr-backend.html\">storage/backends/nostr-backend</a>","description":"<p>Nostr Storage Backend.</p>\n<p>Wraps existing nostr-wrapper.js and nostr-client.js as a StorageBackend\nimplementation. Provides Nostr-based distributed storage with relay support.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html\">NostrBackend</a>","description":"<p>Create a new NostrBackend.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#buildPath","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#buildPath\">buildPath</a>","description":"<p>Build path from components.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#close","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#close\">close</a>","description":"<p>Close the backend and cleanup resources.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#delete","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#delete\">delete</a>","description":"<p>Delete data at path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#deleteAll","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#deleteAll\">deleteAll</a>","description":"<p>Delete all data under path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#exportData","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#exportData\">exportData</a>","description":"<p>Export all data for this user.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#getStatus","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#getStatus\">getStatus</a>","description":"<p>Get backend status.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#importData","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#importData\">importData</a>","description":"<p>Import data records.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#init","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#init\">init</a>","description":"<p>Initialize the backend.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#read","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#read\">read</a>","description":"<p>Read data from path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#readAll","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#readAll\">readAll</a>","description":"<p>Read all data under path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#subscribe","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#subscribe\">subscribe</a>","description":"<p>Subscribe to changes at path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#update","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#update\">update</a>","description":"<p>Update data at path.</p>"},{"title":"module:storage/backends/nostr-backend.NostrBackend#write","link":"<a href=\"module-storage_backends_nostr-backend.NostrBackend.html#write\">write</a>","description":"<p>Write data to path.</p>"},{"title":"module:storage/backends/nostr-backend~NostrBackend","link":"<a href=\"module-storage_backends_nostr-backend-NostrBackend.html\">NostrBackend</a>","description":"<p>Nostr storage backend implementation.</p>\n<p>Provides distributed storage using Nostr relays with event-based data storage.</p>"},{"title":"module:storage/filesystem-storage","link":"<a href=\"module-storage_filesystem-storage.html\">storage/filesystem-storage</a>","description":"<p>File system storage adapter for Node.js.</p>\n<p>Stores events as JSON files in a directory structure.\nThis module is only loaded in Node.js environments.</p>"},{"title":"module:storage/filesystem-storage-browser","link":"<a href=\"module-storage_filesystem-storage-browser.html\">storage/filesystem-storage-browser</a>","description":"<p>Browser stub for FileSystemStorage.</p>\n<p>This stub throws errors if FileSystemStorage is used in browser environments.\nBrowsers should use IndexedDBStorage or MemoryStorage instead.</p>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html\">FileSystemStorage</a>","description":"<p>Constructor throws error in browser.</p>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#clear","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#clear\">clear</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#close","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#close\">close</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#delete","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#delete\">delete</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#get","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#get\">get</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#getAll","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#getAll\">getAll</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#init","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#init\">init</a>"},{"title":"module:storage/filesystem-storage-browser.FileSystemStorage#put","link":"<a href=\"module-storage_filesystem-storage-browser.FileSystemStorage.html#put\">put</a>"},{"title":"module:storage/filesystem-storage-browser~FileSystemStorage","link":"<a href=\"module-storage_filesystem-storage-browser-FileSystemStorage.html\">FileSystemStorage</a>","description":"<p>Browser stub for FileSystemStorage.</p>\n<p>All methods throw errors indicating filesystem storage is unavailable in browsers.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html\">FileSystemStorage</a>","description":"<p>Create a new FileSystemStorage instance.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#clear","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#clear\">clear</a>","description":"<p>Clear all stored events.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#close","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#close\">close</a>","description":"<p>Close storage (no-op for filesystem).</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#delete","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#delete\">delete</a>","description":"<p>Delete an event.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#get","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#get\">get</a>","description":"<p>Retrieve an event.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#getAll","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#getAll\">getAll</a>","description":"<p>Retrieve all events matching a prefix.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#init","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#init\">init</a>","description":"<p>Initialize storage with namespace.</p>"},{"title":"module:storage/filesystem-storage.FileSystemStorage#put","link":"<a href=\"module-storage_filesystem-storage.FileSystemStorage.html#put\">put</a>","description":"<p>Store an event.</p>"},{"title":"module:storage/filesystem-storage~FileSystemStorage","link":"<a href=\"module-storage_filesystem-storage-FileSystemStorage.html\">FileSystemStorage</a>","description":"<p>File system storage adapter for Node.js.</p>\n<p>Stores events as JSON files in a directory structure for persistent storage.</p>"},{"title":"module:storage/global-tables","link":"<a href=\"module-storage_global-tables.html\">storage/global-tables</a>","description":"<p>Global Data Operations.</p>\n<p>Provides non-location-specific (non-holon) data storage operations.\nUsed for storing application-wide data like federation configs, schemas,\nand user preferences that aren't tied to specific H3 cells.</p>"},{"title":"module:storage/global-tables.deleteAllGlobal","link":"<a href=\"module-storage_global-tables.html#.deleteAllGlobal\">deleteAllGlobal</a>","description":"<p>Delete all data from global table</p>"},{"title":"module:storage/global-tables.deleteGlobal","link":"<a href=\"module-storage_global-tables.html#.deleteGlobal\">deleteGlobal</a>","description":"<p>Delete data from global table</p>"},{"title":"module:storage/global-tables.getAllGlobal","link":"<a href=\"module-storage_global-tables.html#.getAllGlobal\">getAllGlobal</a>","description":"<p>Get all data from global table</p>"},{"title":"module:storage/global-tables.readGlobal","link":"<a href=\"module-storage_global-tables.html#.readGlobal\">readGlobal</a>","description":"<p>Read data from global table</p>"},{"title":"module:storage/global-tables.subscribeGlobal","link":"<a href=\"module-storage_global-tables.html#.subscribeGlobal\">subscribeGlobal</a>","description":"<p>Subscribe to global table changes</p>"},{"title":"module:storage/global-tables.updateGlobal","link":"<a href=\"module-storage_global-tables.html#.updateGlobal\">updateGlobal</a>","description":"<p>Update data in global table</p>"},{"title":"module:storage/global-tables.writeGlobal","link":"<a href=\"module-storage_global-tables.html#.writeGlobal\">writeGlobal</a>","description":"<p>Write data to global table</p>"},{"title":"module:storage/gun-async","link":"<a href=\"module-storage_gun-async.html\">storage/gun-async</a>","description":"<p>Gun Async Utilities.</p>\n<p>Provides Promise-based wrappers and async patterns for Gun operations.\nIncludes utilities for promises, batch operations, retries, streams, and async iteration.</p>"},{"title":"module:storage/gun-async.gunBatchGet","link":"<a href=\"module-storage_gun-async.html#.gunBatchGet\">gunBatchGet</a>","description":"<p>Batch read multiple Gun paths</p>"},{"title":"module:storage/gun-async.gunBatchPut","link":"<a href=\"module-storage_gun-async.html#.gunBatchPut\">gunBatchPut</a>","description":"<p>Batch write multiple Gun paths</p>"},{"title":"module:storage/gun-async.gunCollect","link":"<a href=\"module-storage_gun-async.html#.gunCollect\">gunCollect</a>","description":"<p>Collect Gun on() stream into array over time</p>"},{"title":"module:storage/gun-async.gunLoad","link":"<a href=\"module-storage_gun-async.html#.gunLoad\">gunLoad</a>","description":"<p>Load full chain data (follows all references)</p>"},{"title":"module:storage/gun-async.gunMap","link":"<a href=\"module-storage_gun-async.html#.gunMap\">gunMap</a>","description":"<p>Get all items from a Gun map.</p>\n<p>First gets count of items, then collects until count is reached.</p>"},{"title":"module:storage/gun-async.gunMapIterator","link":"<a href=\"module-storage_gun-async.html#.gunMapIterator\">gunMapIterator</a>","description":"<p>Async iterator for Gun map</p>"},{"title":"module:storage/gun-async.gunPromise","link":"<a href=\"module-storage_gun-async.html#.gunPromise\">gunPromise</a>","description":"<p>Get data from Gun using native .then() support.</p>"},{"title":"module:storage/gun-async.gunPut","link":"<a href=\"module-storage_gun-async.html#.gunPut\">gunPut</a>","description":"<p>Wait for Gun write acknowledgement.</p>"},{"title":"module:storage/gun-async.gunRetry","link":"<a href=\"module-storage_gun-async.html#.gunRetry\">gunRetry</a>","description":"<p>Retry Gun operation with exponential backoff</p>"},{"title":"module:storage/gun-async.gunStream","link":"<a href=\"module-storage_gun-async.html#.gunStream\">gunStream</a>","description":"<p>Create async stream from Gun on() callback</p>"},{"title":"module:storage/gun-async.gunWaitFor","link":"<a href=\"module-storage_gun-async.html#.gunWaitFor\">gunWaitFor</a>","description":"<p>Wait for specific condition on Gun data</p>"},{"title":"module:storage/gun-auth","link":"<a href=\"module-storage_gun-auth.html\">storage/gun-auth</a>","description":"<p>GunDB Authentication Handler.</p>\n<p>Handles user authentication and private data storage using Gun's user system.\nPrivate data is stored under: user.get('private').get(lens).get(key)\nUsernames are namespaced: ${appname}:${holonId}</p>"},{"title":"module:storage/gun-auth.GunAuth","link":"<a href=\"module-storage_gun-auth.GunAuth.html\">GunAuth</a>","description":"<p>Create a new authentication handler.</p>"},{"title":"module:storage/gun-auth.GunAuth#authenticate","link":"<a href=\"module-storage_gun-auth.GunAuth.html#authenticate\">authenticate</a>","description":"<p>Authenticate a user for a specific holon</p>"},{"title":"module:storage/gun-auth.GunAuth#createUser","link":"<a href=\"module-storage_gun-auth.GunAuth.html#createUser\">createUser</a>","description":"<p>Create a new user for a holon</p>"},{"title":"module:storage/gun-auth.GunAuth#deletePrivate","link":"<a href=\"module-storage_gun-auth.GunAuth.html#deletePrivate\">deletePrivate</a>","description":"<p>Delete data from private storage</p>"},{"title":"module:storage/gun-auth.GunAuth#getPrivatePath","link":"<a href=\"module-storage_gun-auth.GunAuth.html#getPrivatePath\">getPrivatePath</a>","description":"<p>Get the private data path for a lens and key</p>"},{"title":"module:storage/gun-auth.GunAuth#isAuthenticated","link":"<a href=\"module-storage_gun-auth.GunAuth.html#isAuthenticated\">isAuthenticated</a>","description":"<p>Check if currently authenticated</p>"},{"title":"module:storage/gun-auth.GunAuth#logout","link":"<a href=\"module-storage_gun-auth.GunAuth.html#logout\">logout</a>","description":"<p>Logout current user</p>"},{"title":"module:storage/gun-auth.GunAuth#readAllPrivate","link":"<a href=\"module-storage_gun-auth.GunAuth.html#readAllPrivate\">readAllPrivate</a>","description":"<p>Read all data from a private lens\nFirst gets count of items, then collects until count is reached</p>"},{"title":"module:storage/gun-auth.GunAuth#readPrivate","link":"<a href=\"module-storage_gun-auth.GunAuth.html#readPrivate\">readPrivate</a>","description":"<p>Read data from private storage</p>"},{"title":"module:storage/gun-auth.GunAuth#userName","link":"<a href=\"module-storage_gun-auth.GunAuth.html#userName\">userName</a>","description":"<p>Generate a namespaced username for a holon</p>"},{"title":"module:storage/gun-auth.GunAuth#writePrivate","link":"<a href=\"module-storage_gun-auth.GunAuth.html#writePrivate\">writePrivate</a>","description":"<p>Write data to private storage</p>"},{"title":"module:storage/gun-auth.createAuthHandler","link":"<a href=\"module-storage_gun-auth.html#.createAuthHandler\">createAuthHandler</a>","description":"<p>Create an authentication handler instance</p>"},{"title":"module:storage/gun-auth~GunAuth","link":"<a href=\"module-storage_gun-auth-GunAuth.html\">GunAuth</a>","description":"<p>Authentication handler for GunDB backend.</p>\n<p>Manages user creation, authentication, and private data access.</p>"},{"title":"module:storage/gun-federation","link":"<a href=\"module-storage_gun-federation.html\">storage/gun-federation</a>","description":"<p>GunDB Federation Module.</p>\n<p>Provides methods for creating, managing, and using federated spaces.\nSupports data propagation with references for lightweight federation,\naggregation across federated sources, and subscription to federated changes.</p>\n<p>Ported from holosphere/federation.js to work with the GunDBBackend.</p>"},{"title":"module:storage/gun-federation.federate","link":"<a href=\"module-storage_gun-federation.html#.federate\">federate</a>","description":"<p>Creates a federation relationship between two spaces.</p>\n<p>Federation is bidirectional by default, and data propagation uses soul references by default.</p>"},{"title":"module:storage/gun-federation.federateMessage","link":"<a href=\"module-storage_gun-federation.html#.federateMessage\">federateMessage</a>","description":"<p>Tracks a federated message across different chats</p>"},{"title":"module:storage/gun-federation.getFederated","link":"<a href=\"module-storage_gun-federation.html#.getFederated\">getFederated</a>","description":"<p>Get and combine data from local and federated sources</p>"},{"title":"module:storage/gun-federation.getFederatedMessages","link":"<a href=\"module-storage_gun-federation.html#.getFederatedMessages\">getFederatedMessages</a>","description":"<p>Gets all federated messages for a given original message</p>"},{"title":"module:storage/gun-federation.getFederation","link":"<a href=\"module-storage_gun-federation.html#.getFederation\">getFederation</a>","description":"<p>Gets federation info for a space</p>"},{"title":"module:storage/gun-federation.propagate","link":"<a href=\"module-storage_gun-federation.html#.propagate\">propagate</a>","description":"<p>Propagates data to federated spaces</p>"},{"title":"module:storage/gun-federation.removeNotify","link":"<a href=\"module-storage_gun-federation.html#.removeNotify\">removeNotify</a>","description":"<p>Removes a notification relationship between two spaces</p>"},{"title":"module:storage/gun-federation.resetFederation","link":"<a href=\"module-storage_gun-federation.html#.resetFederation\">resetFederation</a>","description":"<p>Resets all federation relationships for a space</p>"},{"title":"module:storage/gun-federation.subscribeFederation","link":"<a href=\"module-storage_gun-federation.html#.subscribeFederation\">subscribeFederation</a>","description":"<p>Subscribes to federation notifications for a space</p>"},{"title":"module:storage/gun-federation.unfederate","link":"<a href=\"module-storage_gun-federation.html#.unfederate\">unfederate</a>","description":"<p>Removes a federation relationship between spaces</p>"},{"title":"module:storage/gun-federation.updateFederatedMessages","link":"<a href=\"module-storage_gun-federation.html#.updateFederatedMessages\">updateFederatedMessages</a>","description":"<p>Updates a federated message across all federated chats</p>"},{"title":"module:storage/gun-references","link":"<a href=\"module-storage_gun-references.html\">storage/gun-references</a>","description":"<p>GunDB Reference Handler.</p>\n<p>Handles creation and resolution of data references for federation.\nReferences use a "soul" pattern: appname/holon/lens/key\nThis allows lightweight propagation without data duplication.</p>"},{"title":"module:storage/gun-references.GunReferenceHandler","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html\">GunReferenceHandler</a>","description":"<p>Create a new reference handler.</p>"},{"title":"module:storage/gun-references.GunReferenceHandler#createReference","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html#createReference\">createReference</a>","description":"<p>Create a reference to data</p>"},{"title":"module:storage/gun-references.GunReferenceHandler#getSoul","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html#getSoul\">getSoul</a>","description":"<p>Get the soul path for data</p>"},{"title":"module:storage/gun-references.GunReferenceHandler#isReference","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html#isReference\">isReference</a>","description":"<p>Check if data is a reference</p>"},{"title":"module:storage/gun-references.GunReferenceHandler#parseSoulPath","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html#parseSoulPath\">parseSoulPath</a>","description":"<p>Parse a soul path into its components</p>"},{"title":"module:storage/gun-references.GunReferenceHandler#resolveReference","link":"<a href=\"module-storage_gun-references.GunReferenceHandler.html#resolveReference\">resolveReference</a>","description":"<p>Resolve a reference to get the actual data</p>"},{"title":"module:storage/gun-references.createReferenceHandler","link":"<a href=\"module-storage_gun-references.html#.createReferenceHandler\">createReferenceHandler</a>","description":"<p>Create a reference handler instance</p>"},{"title":"module:storage/gun-references~GunReferenceHandler","link":"<a href=\"module-storage_gun-references-GunReferenceHandler.html\">GunReferenceHandler</a>","description":"<p>Reference handler for GunDB backend.</p>\n<p>Manages creation, detection, and resolution of data references.</p>"},{"title":"module:storage/gun-schema","link":"<a href=\"module-storage_gun-schema.html\">storage/gun-schema</a>","description":"<p>GunDB Schema Validator.</p>\n<p>Handles JSON Schema validation for data stored in GunDB.\nSchemas are stored in the global 'schemas' table.\nValidation uses AJV (Another JSON Schema Validator) with JSON Schema 2019.</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html\">GunSchemaValidator</a>","description":"<p>Create a new schema validator.</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#clearCache","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#clearCache\">clearCache</a>","description":"<p>Clear the schema cache</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#deleteSchema","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#deleteSchema\">deleteSchema</a>","description":"<p>Delete a schema</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#getAllSchemas","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#getAllSchemas\">getAllSchemas</a>","description":"<p>Get all schemas</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#getSchema","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#getSchema\">getSchema</a>","description":"<p>Get a schema for a lens</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#init","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#init\">init</a>","description":"<p>Initialize the validator (lazy load AJV)</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#isStrict","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#isStrict\">isStrict</a>","description":"<p>Check if strict mode is enabled</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#setSchema","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#setSchema\">setSchema</a>","description":"<p>Set a schema for a lens</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#setStrict","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#setStrict\">setStrict</a>","description":"<p>Enable or disable strict mode</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#validate","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#validate\">validate</a>","description":"<p>Validate data against a schema</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#validateData","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#validateData\">validateData</a>","description":"<p>Validate data against a lens schema (fetch schema from storage)</p>"},{"title":"module:storage/gun-schema.GunSchemaValidator#validateSchema","link":"<a href=\"module-storage_gun-schema.GunSchemaValidator.html#validateSchema\">validateSchema</a>","description":"<p>Validate a schema definition against meta-schema</p>"},{"title":"module:storage/gun-schema.createSchemaValidator","link":"<a href=\"module-storage_gun-schema.html#.createSchemaValidator\">createSchemaValidator</a>","description":"<p>Create a schema validator instance</p>"},{"title":"module:storage/gun-schema~GunSchemaValidator","link":"<a href=\"module-storage_gun-schema-GunSchemaValidator.html\">GunSchemaValidator</a>","description":"<p>Schema validator for GunDB backend.</p>\n<p>Provides JSON Schema validation with caching and lazy-loaded AJV.</p>"},{"title":"module:storage/gun-wrapper","link":"<a href=\"module-storage_gun-wrapper.html\">storage/gun-wrapper</a>","description":"<p>GunDB Storage Wrapper with radisk persistence.</p>\n<p>Handles path construction and CRUD operations for GunDB storage backend.\nNote: GunDB doesn't handle nested objects well, so we store data as JSON strings.\nProvides both holon-specific paths and global table operations.</p>"},{"title":"module:storage/gun-wrapper.buildGlobalPath","link":"<a href=\"module-storage_gun-wrapper.html#.buildGlobalPath\">buildGlobalPath</a>","description":"<p>Build Gun path for global tables (app-wide data not tied to holons).</p>"},{"title":"module:storage/gun-wrapper.buildPath","link":"<a href=\"module-storage_gun-wrapper.html#.buildPath\">buildPath</a>","description":"<p>Build Gun path from components.</p>"},{"title":"module:storage/gun-wrapper.deleteAll","link":"<a href=\"module-storage_gun-wrapper.html#.deleteAll\">deleteAll</a>","description":"<p>Delete all data under path prefix (tombstone).</p>"},{"title":"module:storage/gun-wrapper.deleteAllGlobal","link":"<a href=\"module-storage_gun-wrapper.html#.deleteAllGlobal\">deleteAllGlobal</a>","description":"<p>Delete all data from a global table</p>"},{"title":"module:storage/gun-wrapper.deleteData","link":"<a href=\"module-storage_gun-wrapper.html#.deleteData\">deleteData</a>","description":"<p>Delete data (tombstone).</p>"},{"title":"module:storage/gun-wrapper.deleteGlobal","link":"<a href=\"module-storage_gun-wrapper.html#.deleteGlobal\">deleteGlobal</a>","description":"<p>Delete data from a global table</p>"},{"title":"module:storage/gun-wrapper.parse","link":"<a href=\"module-storage_gun-wrapper.html#.parse\">parse</a>","description":"<p>Parse data from Gun storage, handling various formats.</p>\n<p>Handles:</p>\n<ul>\n<li>JSON string in _json field</li>\n<li>Legacy object format</li>\n<li>Gun references</li>\n</ul>"},{"title":"module:storage/gun-wrapper.read","link":"<a href=\"module-storage_gun-wrapper.html#.read\">read</a>","description":"<p>Read data from Gun.</p>"},{"title":"module:storage/gun-wrapper.readAll","link":"<a href=\"module-storage_gun-wrapper.html#.readAll\">readAll</a>","description":"<p>Read all data under a path (lens query).</p>\n<p>First gets the count of expected items, then collects until count is reached.</p>"},{"title":"module:storage/gun-wrapper.readAllGlobal","link":"<a href=\"module-storage_gun-wrapper.html#.readAllGlobal\">readAllGlobal</a>","description":"<p>Read all data from a global table.</p>\n<p>Uses same approach as readAll.</p>"},{"title":"module:storage/gun-wrapper.readGlobal","link":"<a href=\"module-storage_gun-wrapper.html#.readGlobal\">readGlobal</a>","description":"<p>Read data from a global table.</p>"},{"title":"module:storage/gun-wrapper.serialize","link":"<a href=\"module-storage_gun-wrapper.html#.serialize\">serialize</a>","description":"<p>Serialize data for Gun storage.</p>"},{"title":"module:storage/gun-wrapper.subscribe","link":"<a href=\"module-storage_gun-wrapper.html#.subscribe\">subscribe</a>","description":"<p>Subscribe to data changes.</p>"},{"title":"module:storage/gun-wrapper.update","link":"<a href=\"module-storage_gun-wrapper.html#.update\">update</a>","description":"<p>Update data (merge fields).</p>"},{"title":"module:storage/gun-wrapper.write","link":"<a href=\"module-storage_gun-wrapper.html#.write\">write</a>","description":"<p>Write data to Gun with radisk persistence.</p>"},{"title":"module:storage/gun-wrapper.writeGlobal","link":"<a href=\"module-storage_gun-wrapper.html#.writeGlobal\">writeGlobal</a>","description":"<p>Write data to a global table.</p>\n<p>Global tables are app-wide data not tied to specific holons (e.g., schemas, federation).</p>"},{"title":"module:storage/indexeddb-storage","link":"<a href=\"module-storage_indexeddb-storage.html\">storage/indexeddb-storage</a>","description":"<p>IndexedDB storage adapter for browsers.</p>\n<p>Provides persistent storage with good performance using browser IndexedDB.\nUses B-tree indexes for efficient prefix queries.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html\">IndexedDBStorage</a>","description":"<p>Create a new IndexedDBStorage instance.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#clear","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#clear\">clear</a>","description":"<p>Clear all stored events.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#close","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#close\">close</a>","description":"<p>Close the database connection.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#db","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#db\">db</a>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#dbName","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#dbName\">dbName</a>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#delete","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#delete\">delete</a>","description":"<p>Delete an event.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#get","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#get\">get</a>","description":"<p>Retrieve an event.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#getAll","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#getAll\">getAll</a>","description":"<p>Retrieve all events matching a prefix.</p>\n<p>Uses IDBKeyRange for efficient B-tree index queries.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#init","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#init\">init</a>","description":"<p>Initialize storage with namespace.</p>\n<p>Creates or opens the IndexedDB database and object store.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#put","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#put\">put</a>","description":"<p>Store an event.</p>"},{"title":"module:storage/indexeddb-storage.IndexedDBStorage#storeName","link":"<a href=\"module-storage_indexeddb-storage.IndexedDBStorage.html#storeName\">storeName</a>"},{"title":"module:storage/indexeddb-storage~IndexedDBStorage","link":"<a href=\"module-storage_indexeddb-storage-IndexedDBStorage.html\">IndexedDBStorage</a>","description":"<p>IndexedDB storage adapter for browsers.</p>\n<p>Provides high-performance persistent storage using IndexedDB with efficient prefix queries.</p>"},{"title":"module:storage/indexeddb-storage~event.target","link":"<a href=\"module-storage_indexeddb-storage-event.html#.target\">target</a>"},{"title":"module:storage/indexeddb-storage~event.target","link":"<a href=\"module-storage_indexeddb-storage-event.html#.target\">target</a>"},{"title":"module:storage/key-storage","link":"<a href=\"module-storage_key-storage.html\">storage/key-storage</a>","description":"<p>Key Storage - Universal API.</p>\n<p>Automatically uses Node.js or Browser implementation for storing private keys.\nIn Node.js, keys are stored in the filesystem (~/.config/holosphere/keys).\nIn browsers, keys are stored in localStorage.</p>"},{"title":"module:storage/key-storage-simple","link":"<a href=\"module-storage_key-storage-simple.html\">storage/key-storage-simple</a>","description":"<p>Simple Key Storage for Node.js.</p>\n<p>Basic filesystem-based key management.\nNOTE: This only works in Node.js, not browsers.\nFor browsers, keys are managed in localStorage.</p>"},{"title":"module:storage/key-storage-simple.getOrCreateKey","link":"<a href=\"module-storage_key-storage-simple.html#.getOrCreateKey\">getOrCreateKey</a>","description":"<p>Get or create private key.</p>\n<p>Loads existing key or generates and saves a new one.</p>"},{"title":"module:storage/key-storage-simple.loadKey","link":"<a href=\"module-storage_key-storage-simple.html#.loadKey\">loadKey</a>","description":"<p>Load private key from filesystem.</p>"},{"title":"module:storage/key-storage-simple.saveKey","link":"<a href=\"module-storage_key-storage-simple.html#.saveKey\">saveKey</a>","description":"<p>Save private key to filesystem with secure permissions.</p>"},{"title":"module:storage/key-storage.getOrCreatePrivateKey","link":"<a href=\"module-storage_key-storage.html#.getOrCreatePrivateKey\">getOrCreatePrivateKey</a>","description":"<p>Get or create private key for an app.</p>\n<p>Loads existing key or generates and saves a new one.</p>"},{"title":"module:storage/key-storage.loadPrivateKey","link":"<a href=\"module-storage_key-storage.html#.loadPrivateKey\">loadPrivateKey</a>","description":"<p>Load private key from storage.</p>\n<p>Attempts to load from localStorage (browser) or filesystem (Node.js).</p>"},{"title":"module:storage/key-storage.savePrivateKey","link":"<a href=\"module-storage_key-storage.html#.savePrivateKey\">savePrivateKey</a>","description":"<p>Save private key to storage.</p>\n<p>Saves to localStorage (browser) or filesystem (Node.js) with secure permissions.</p>"},{"title":"module:storage/memory-storage","link":"<a href=\"module-storage_memory-storage.html\">storage/memory-storage</a>","description":"<p>Memory-only storage adapter (fallback, no actual persistence).</p>\n<p>Provides in-memory storage for testing or when persistent storage is unavailable.\nData is shared across instances with the same namespace but lost on process restart.</p>"},{"title":"module:storage/memory-storage.MemoryStorage","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html\">MemoryStorage</a>","description":"<p>Create a new MemoryStorage instance.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#clear","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#clear\">clear</a>","description":"<p>Clear all stored events.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#close","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#close\">close</a>","description":"<p>Close storage (no-op for memory storage).</p>"},{"title":"module:storage/memory-storage.MemoryStorage#delete","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#delete\">delete</a>","description":"<p>Delete an event.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#get","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#get\">get</a>","description":"<p>Retrieve an event.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#getAll","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#getAll\">getAll</a>","description":"<p>Retrieve all events matching a prefix.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#init","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#init\">init</a>","description":"<p>Initialize storage with namespace.</p>"},{"title":"module:storage/memory-storage.MemoryStorage#put","link":"<a href=\"module-storage_memory-storage.MemoryStorage.html#put\">put</a>","description":"<p>Store an event.</p>"},{"title":"module:storage/memory-storage~MemoryStorage","link":"<a href=\"module-storage_memory-storage-MemoryStorage.html\">MemoryStorage</a>","description":"<p>Memory-only storage adapter.</p>\n<p>Stores data in memory with no persistence across restarts.\nUses a global store to share data across instances with same namespace.</p>"},{"title":"module:storage/migration","link":"<a href=\"module-storage_migration.html\">storage/migration</a>","description":"<p>Migration tool for HoloSphere storage backends.\nEnables data migration between different storage backends (Nostr, GunDB, ActivityPub)\nwith export/import functionality, direct migration, and validation.</p>"},{"title":"module:storage/migration.MigrationTool","link":"<a href=\"module-storage_migration.MigrationTool.html\">MigrationTool</a>","description":"<p>Create a new MigrationTool instance.</p>"},{"title":"module:storage/migration.MigrationTool#close","link":"<a href=\"module-storage_migration.MigrationTool.html#close\">close</a>","description":"<p>Close all backend connections</p>"},{"title":"module:storage/migration.MigrationTool#export","link":"<a href=\"module-storage_migration.MigrationTool.html#export\">export</a>","description":"<p>Export data from source to portable format</p>"},{"title":"module:storage/migration.MigrationTool#exportToFile","link":"<a href=\"module-storage_migration.MigrationTool.html#exportToFile\">exportToFile</a>","description":"<p>Export bundle to JSON file (for manual transfer)</p>"},{"title":"module:storage/migration.MigrationTool#import","link":"<a href=\"module-storage_migration.MigrationTool.html#import\">import</a>","description":"<p>Import data to target backend</p>"},{"title":"module:storage/migration.MigrationTool#importFromFile","link":"<a href=\"module-storage_migration.MigrationTool.html#importFromFile\">importFromFile</a>","description":"<p>Import bundle from JSON file</p>"},{"title":"module:storage/migration.MigrationTool#migrate","link":"<a href=\"module-storage_migration.MigrationTool.html#migrate\">migrate</a>","description":"<p>Migrate data directly from source to target</p>"},{"title":"module:storage/migration.MigrationTool#setSource","link":"<a href=\"module-storage_migration.MigrationTool.html#setSource\">setSource</a>","description":"<p>Configure source backend</p>"},{"title":"module:storage/migration.MigrationTool#setTarget","link":"<a href=\"module-storage_migration.MigrationTool.html#setTarget\">setTarget</a>","description":"<p>Configure target backend</p>"},{"title":"module:storage/migration.MigrationTool#sourceBackend","link":"<a href=\"module-storage_migration.MigrationTool.html#sourceBackend\">sourceBackend</a>"},{"title":"module:storage/migration.MigrationTool#targetBackend","link":"<a href=\"module-storage_migration.MigrationTool.html#targetBackend\">targetBackend</a>"},{"title":"module:storage/migration.MigrationTool#useSourceBackend","link":"<a href=\"module-storage_migration.MigrationTool.html#useSourceBackend\">useSourceBackend</a>","description":"<p>Use an existing backend instance as source</p>"},{"title":"module:storage/migration.MigrationTool#useTargetBackend","link":"<a href=\"module-storage_migration.MigrationTool.html#useTargetBackend\">useTargetBackend</a>","description":"<p>Use an existing backend instance as target</p>"},{"title":"module:storage/migration.MigrationTool#validate","link":"<a href=\"module-storage_migration.MigrationTool.html#validate\">validate</a>","description":"<p>Validate data integrity after migration</p>"},{"title":"module:storage/migration.quickMigrate","link":"<a href=\"module-storage_migration.html#.quickMigrate\">quickMigrate</a>","description":"<p>Quick migration function for common use cases</p>"},{"title":"module:storage/migration~DataBundle","link":"<a href=\"module-storage_migration.html#~DataBundle\">DataBundle</a>","description":"<p>Portable data bundle format</p>"},{"title":"module:storage/migration~MigrationRecord","link":"<a href=\"module-storage_migration.html#~MigrationRecord\">MigrationRecord</a>","description":"<p>Migration record format</p>"},{"title":"module:storage/migration~MigrationResults","link":"<a href=\"module-storage_migration.html#~MigrationResults\">MigrationResults</a>","description":"<p>Migration results</p>"},{"title":"module:storage/migration~MigrationTool","link":"<a href=\"module-storage_migration-MigrationTool.html\">MigrationTool</a>","description":"<p>Migration tool for transferring data between HoloSphere storage backends.\nSupports export/import to portable format, direct migration, and validation.</p>"},{"title":"module:storage/nostr-async","link":"<a href=\"module-storage_nostr-async.html\">storage/nostr-async</a>","description":"<p>Nostr Async Utilities.</p>\n<p>Provides Promise-based wrappers and async patterns for Nostr operations.\nIncludes local-first data access, query deduplication, subscription management,\nand background refresh capabilities for optimal performance.</p>"},{"title":"module:storage/nostr-async.nostrBatchGet","link":"<a href=\"module-storage_nostr-async.html#.nostrBatchGet\">nostrBatchGet</a>","description":"<p>Batch read multiple paths.</p>"},{"title":"module:storage/nostr-async.nostrBatchPut","link":"<a href=\"module-storage_nostr-async.html#.nostrBatchPut\">nostrBatchPut</a>","description":"<p>Batch write multiple paths.</p>"},{"title":"module:storage/nostr-async.nostrDelete","link":"<a href=\"module-storage_nostr-async.html#.nostrDelete\">nostrDelete</a>","description":"<p>Delete data (publish deletion event - NIP-09).</p>\n<p>Publishes a tombstone event and a NIP-09 deletion event to mark data as deleted.</p>"},{"title":"module:storage/nostr-async.nostrDeleteAll","link":"<a href=\"module-storage_nostr-async.html#.nostrDeleteAll\">nostrDeleteAll</a>","description":"<p>Delete all data with path prefix (publish deletion events - NIP-09).</p>"},{"title":"module:storage/nostr-async.nostrGet","link":"<a href=\"module-storage_nostr-async.html#.nostrGet\">nostrGet</a>","description":"<p>Read data from Nostr (query by d-tag).</p>\n<p>LOCAL-FIRST: Checks persistent storage first, never blocks on network.\nUses query deduplication to prevent duplicate relay queries within a time window.</p>"},{"title":"module:storage/nostr-async.nostrGetAll","link":"<a href=\"module-storage_nostr-async.html#.nostrGetAll\">nostrGetAll</a>","description":"<p>Query all events under a path prefix.</p>\n<p>LOCAL-FIRST: Checks persistent storage first, never blocks on network.\nUses query deduplication to prevent duplicate relay queries within a time window.</p>"},{"title":"module:storage/nostr-async.nostrGetAllHybrid","link":"<a href=\"module-storage_nostr-async.html#.nostrGetAllHybrid\">nostrGetAllHybrid</a>","description":"<p>Query all events under a path prefix (HYBRID MODE - local + relay).</p>\n<p>Checks local cache first, then merges with relay data.</p>"},{"title":"module:storage/nostr-async.nostrPut","link":"<a href=\"module-storage_nostr-async.html#.nostrPut\">nostrPut</a>","description":"<p>Write data as Nostr event (parameterized replaceable event).</p>"},{"title":"module:storage/nostr-async.nostrRetry","link":"<a href=\"module-storage_nostr-async.html#.nostrRetry\">nostrRetry</a>","description":"<p>Retry operation with exponential backoff.</p>"},{"title":"module:storage/nostr-async.nostrSubscribe","link":"<a href=\"module-storage_nostr-async.html#.nostrSubscribe\">nostrSubscribe</a>","description":"<p>Subscribe to path changes.</p>\n<p>Uses subscription deduplication - multiple subscribers to same path share one relay subscription.</p>"},{"title":"module:storage/nostr-async.nostrSubscribeMany","link":"<a href=\"module-storage_nostr-async.html#.nostrSubscribeMany\">nostrSubscribeMany</a>","description":"<p>Subscribe to path prefix (multiple paths).</p>\n<p>Subscribes to data events and uses Page Visibility API to refresh when tab becomes visible.\nNote: Nostr relays do not broadcast replaceable event updates to active subscriptions.</p>"},{"title":"module:storage/nostr-async.nostrUpdate","link":"<a href=\"module-storage_nostr-async.html#.nostrUpdate\">nostrUpdate</a>","description":"<p>Update data (merge with existing).</p>"},{"title":"module:storage/nostr-async.nostrWaitFor","link":"<a href=\"module-storage_nostr-async.html#.nostrWaitFor\">nostrWaitFor</a>","description":"<p>Wait for specific condition on data.</p>"},{"title":"module:storage/nostr-client","link":"<a href=\"module-storage_nostr-client.html\">storage/nostr-client</a>","description":"<p>Nostr Client - SimplePool wrapper for relay management.</p>\n<p>Provides connection pooling, relay management, event caching, persistent storage,\noutbox queue for guaranteed delivery, and background sync services.</p>"},{"title":"module:storage/nostr-client.NostrClient","link":"<a href=\"module-storage_nostr-client.NostrClient.html\">NostrClient</a>","description":"<p>Create a new NostrClient.</p>"},{"title":"module:storage/nostr-client.NostrClient#_attemptDelivery","link":"<a href=\"module-storage_nostr-client.NostrClient.html#_attemptDelivery\">_attemptDelivery</a>","description":"<p>Attempt to deliver event to relays\nUpdates outbox queue with delivery status</p>"},{"title":"module:storage/nostr-client.NostrClient#clearCache","link":"<a href=\"module-storage_nostr-client.NostrClient.html#clearCache\">clearCache</a>","description":"<p>Clear the event cache (or specific entries matching a pattern)</p>"},{"title":"module:storage/nostr-client.NostrClient#close","link":"<a href=\"module-storage_nostr-client.NostrClient.html#close\">close</a>","description":"<p>Close all connections and subscriptions.</p>"},{"title":"module:storage/nostr-client.NostrClient#getEvent","link":"<a href=\"module-storage_nostr-client.NostrClient.html#getEvent\">getEvent</a>","description":"<p>Get single event by ID</p>"},{"title":"module:storage/nostr-client.NostrClient#getRelayStatus","link":"<a href=\"module-storage_nostr-client.NostrClient.html#getRelayStatus\">getRelayStatus</a>","description":"<p>Get relay status</p>"},{"title":"module:storage/nostr-client.NostrClient#persistentGet","link":"<a href=\"module-storage_nostr-client.NostrClient.html#persistentGet\">persistentGet</a>","description":"<p>Get a single event from persistent storage by path (d-tag)</p>"},{"title":"module:storage/nostr-client.NostrClient#persistentGetAll","link":"<a href=\"module-storage_nostr-client.NostrClient.html#persistentGetAll\">persistentGetAll</a>","description":"<p>Get all events from persistent storage matching a prefix</p>"},{"title":"module:storage/nostr-client.NostrClient#publish","link":"<a href=\"module-storage_nostr-client.NostrClient.html#publish\">publish</a>","description":"<p>Publish event to relays.</p>\n<p>Supports debouncing for replaceable events (kind 30000-39999) to avoid rapid updates.</p>"},{"title":"module:storage/nostr-client.NostrClient#query","link":"<a href=\"module-storage_nostr-client.NostrClient.html#query\">query</a>","description":"<p>Query events from relays.</p>\n<p>Uses long-lived subscription for cache updates - avoids polling.</p>"},{"title":"module:storage/nostr-client.NostrClient#queryHybrid","link":"<a href=\"module-storage_nostr-client.NostrClient.html#queryHybrid\">queryHybrid</a>","description":"<p>Hybrid query: Check local cache first, then query relays for missing data\nMerges local and relay results, preferring newer events</p>"},{"title":"module:storage/nostr-client.NostrClient#refreshPathInBackground","link":"<a href=\"module-storage_nostr-client.NostrClient.html#refreshPathInBackground\">refreshPathInBackground</a>","description":"<p>Refresh a single path from relays in the background\nUsed for persistent-first reads to update local data</p>"},{"title":"module:storage/nostr-client.NostrClient#refreshPrefixInBackground","link":"<a href=\"module-storage_nostr-client.NostrClient.html#refreshPrefixInBackground\">refreshPrefixInBackground</a>","description":"<p>Refresh all paths with a prefix from relays in the background\nUsed for persistent-first collection reads</p>"},{"title":"module:storage/nostr-client.NostrClient#subscribe","link":"<a href=\"module-storage_nostr-client.NostrClient.html#subscribe\">subscribe</a>","description":"<p>Subscribe to events.</p>\n<p>Uses subscription deduplication to avoid creating multiple identical subscriptions.</p>"},{"title":"module:storage/nostr-client.createClient","link":"<a href=\"module-storage_nostr-client.html#.createClient\">createClient</a>","description":"<p>Create NostrClient instance.</p>"},{"title":"module:storage/nostr-client~LRUCache","link":"<a href=\"module-storage_nostr-client-LRUCache.html\">LRUCache</a>","description":"<p>Create a new LRU cache.</p>"},{"title":"module:storage/nostr-client~LRUCache#get","link":"<a href=\"module-storage_nostr-client-LRUCache.html#get\">get</a>","description":"<p>Get an entry from the cache.</p>"},{"title":"module:storage/nostr-client~NostrClient","link":"<a href=\"module-storage_nostr-client-NostrClient.html\">NostrClient</a>","description":"<p>NostrClient - Manages connections to Nostr relays.</p>\n<p>Provides event publishing, querying, subscription management, persistent caching,\nand guaranteed delivery via outbox queue.</p>"},{"title":"module:storage/nostr-wrapper","link":"<a href=\"module-storage_nostr-wrapper.html\">storage/nostr-wrapper</a>","description":"<p>Nostr Storage Wrapper.</p>\n<p>Drop-in replacement for gun-wrapper.js providing the same API.\nHandles path construction and CRUD operations using Nostr relays\nfor distributed P2P storage.</p>"},{"title":"module:storage/nostr-wrapper.buildPath","link":"<a href=\"module-storage_nostr-wrapper.html#.buildPath\">buildPath</a>","description":"<p>Build path from components</p>"},{"title":"module:storage/nostr-wrapper.deleteAll","link":"<a href=\"module-storage_nostr-wrapper.html#.deleteAll\">deleteAll</a>","description":"<p>Delete all data under path prefix (tombstone)</p>"},{"title":"module:storage/nostr-wrapper.deleteData","link":"<a href=\"module-storage_nostr-wrapper.html#.deleteData\">deleteData</a>","description":"<p>Delete data (tombstone)</p>"},{"title":"module:storage/nostr-wrapper.read","link":"<a href=\"module-storage_nostr-wrapper.html#.read\">read</a>","description":"<p>Read data from Nostr</p>"},{"title":"module:storage/nostr-wrapper.readAll","link":"<a href=\"module-storage_nostr-wrapper.html#.readAll\">readAll</a>","description":"<p>Read all data under a path (lens query)</p>"},{"title":"module:storage/nostr-wrapper.subscribe","link":"<a href=\"module-storage_nostr-wrapper.html#.subscribe\">subscribe</a>","description":"<p>Subscribe to data changes</p>"},{"title":"module:storage/nostr-wrapper.update","link":"<a href=\"module-storage_nostr-wrapper.html#.update\">update</a>","description":"<p>Update data (merge fields)</p>"},{"title":"module:storage/nostr-wrapper.write","link":"<a href=\"module-storage_nostr-wrapper.html#.write\">write</a>","description":"<p>Write data to Nostr</p>"},{"title":"module:storage/outbox-queue","link":"<a href=\"module-storage_outbox-queue.html\">storage/outbox-queue</a>","description":"<p>OutboxQueue - Persistent queue for reliable relay delivery.</p>\n<p>Implements guaranteed delivery with exponential backoff retry.\nEvents are persisted to local storage and retried until delivered\nor max retries exceeded.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html\">OutboxQueue</a>","description":"<p>Create a new OutboxQueue.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#clear","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#clear\">clear</a>","description":"<p>Clear all entries from the queue.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#enqueue","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#enqueue\">enqueue</a>","description":"<p>Add an event to the outbox queue.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#getFailedEvents","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#getFailedEvents\">getFailedEvents</a>","description":"<p>Get all failed events (exceeded max retries).</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#getPendingEvents","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#getPendingEvents\">getPendingEvents</a>","description":"<p>Get all pending events ready for retry.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#getStats","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#getStats\">getStats</a>","description":"<p>Get queue statistics.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#markSent","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#markSent\">markSent</a>","description":"<p>Mark an event as sent.</p>\n<p>Removes from queue if at least one relay accepted, otherwise schedules retry.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#purgeOldFailed","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#purgeOldFailed\">purgeOldFailed</a>","description":"<p>Purge failed events older than maxAge.</p>"},{"title":"module:storage/outbox-queue.OutboxQueue#retryFailed","link":"<a href=\"module-storage_outbox-queue.OutboxQueue.html#retryFailed\">retryFailed</a>","description":"<p>Manually retry a failed event.</p>\n<p>Resets retry counter and status to allow manual retry of a failed event.</p>"},{"title":"module:storage/outbox-queue~OutboxQueue","link":"<a href=\"module-storage_outbox-queue-OutboxQueue.html\">OutboxQueue</a>","description":"<p>Persistent queue for reliable event delivery to Nostr relays.</p>\n<p>Features:</p>\n<ul>\n<li>Exponential backoff retry with jitter</li>\n<li>Persistent storage across restarts</li>\n<li>Automatic purging of old failed events</li>\n<li>Queue statistics and monitoring</li>\n</ul>"},{"title":"module:storage/persistent-storage","link":"<a href=\"module-storage_persistent-storage.html\">storage/persistent-storage</a>","description":"<p>Persistent Storage Interface.</p>\n<p>Provides a unified API for local persistence across browser and Node.js.\nAutomatically selects the appropriate storage backend:</p>\n<ul>\n<li>IndexedDB in browsers</li>\n<li>Filesystem in Node.js</li>\n<li>Memory fallback if neither available</li>\n</ul>"},{"title":"module:storage/persistent-storage~PersistentStorage","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html\">PersistentStorage</a>","description":"<p>Base class for persistent storage adapters.</p>\n<p>All storage implementations must extend this class and implement all methods.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#clear","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#clear\">clear</a>","description":"<p>Clear all data in namespace.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#close","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#close\">close</a>","description":"<p>Close storage connection.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#delete","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#delete\">delete</a>","description":"<p>Delete event.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#get","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#get\">get</a>","description":"<p>Retrieve event.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#getAll","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#getAll\">getAll</a>","description":"<p>Get all events matching prefix.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#init","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#init\">init</a>","description":"<p>Initialize storage with namespace.</p>"},{"title":"module:storage/persistent-storage~PersistentStorage#put","link":"<a href=\"module-storage_persistent-storage-PersistentStorage.html#put\">put</a>","description":"<p>Store event.</p>"},{"title":"module:storage/persistent-storage~createPersistentStorage","link":"<a href=\"module-storage_persistent-storage.html#~createPersistentStorage\">createPersistentStorage</a>","description":"<p>Detect environment and return appropriate storage adapter.</p>\n<p>Automatically creates:</p>\n<ul>\n<li>IndexedDBStorage in browsers</li>\n<li>FileSystemStorage in Node.js</li>\n<li>MemoryStorage as fallback</li>\n</ul>"},{"title":"module:storage/sync-service","link":"<a href=\"module-storage_sync-service.html\">storage/sync-service</a>","description":"<p>SyncService - Background service for reliable sync.</p>\n<p>Periodically processes the outbox queue to retry failed deliveries\nand purge old failed events.</p>"},{"title":"module:storage/sync-service.SyncService","link":"<a href=\"module-storage_sync-service.SyncService.html\">SyncService</a>","description":"<p>Create a new SyncService.</p>"},{"title":"module:storage/sync-service.SyncService#getStats","link":"<a href=\"module-storage_sync-service.SyncService.html#getStats\">getStats</a>","description":"<p>Get sync service statistics.</p>"},{"title":"module:storage/sync-service.SyncService#isRunning","link":"<a href=\"module-storage_sync-service.SyncService.html#isRunning\">isRunning</a>","description":"<p>Check if the service is running.</p>"},{"title":"module:storage/sync-service.SyncService#start","link":"<a href=\"module-storage_sync-service.SyncService.html#start\">start</a>","description":"<p>Start the background sync service.</p>"},{"title":"module:storage/sync-service.SyncService#stop","link":"<a href=\"module-storage_sync-service.SyncService.html#stop\">stop</a>","description":"<p>Stop the background sync service.</p>"},{"title":"module:storage/sync-service.SyncService#syncNow","link":"<a href=\"module-storage_sync-service.SyncService.html#syncNow\">syncNow</a>","description":"<p>Force an immediate sync.</p>\n<p>Useful for testing or manual trigger.</p>"},{"title":"module:storage/sync-service~SyncService","link":"<a href=\"module-storage_sync-service-SyncService.html\">SyncService</a>","description":"<p>Background service for reliable event synchronization.</p>\n<p>Runs on a periodic interval to:</p>\n<ul>\n<li>Retry pending events in the outbox queue</li>\n<li>Purge old failed events (24 hour TTL)</li>\n<li>Provide sync statistics</li>\n</ul>"},{"title":"module:storage/unified-storage","link":"<a href=\"module-storage_unified-storage.html\">storage/unified-storage</a>","description":"<p>Unified Storage Adapter.</p>\n<p>Routes storage operations to the correct backend (Nostr or GunDB).\nProvides a consistent API for reading, writing, updating, and deleting\ndata across different storage backends.</p>"},{"title":"module:storage/unified-storage.buildPath","link":"<a href=\"module-storage_unified-storage.html#.buildPath\">buildPath</a>","description":"<p>Build path from components</p>"},{"title":"module:storage/unified-storage.deleteAll","link":"<a href=\"module-storage_unified-storage.html#.deleteAll\">deleteAll</a>","description":"<p>Delete all data under path prefix</p>"},{"title":"module:storage/unified-storage.deleteData","link":"<a href=\"module-storage_unified-storage.html#.deleteData\">deleteData</a>","description":"<p>Delete data at path</p>"},{"title":"module:storage/unified-storage.read","link":"<a href=\"module-storage_unified-storage.html#.read\">read</a>","description":"<p>Read data from storage</p>"},{"title":"module:storage/unified-storage.readAll","link":"<a href=\"module-storage_unified-storage.html#.readAll\">readAll</a>","description":"<p>Read all data under a path prefix</p>"},{"title":"module:storage/unified-storage.subscribe","link":"<a href=\"module-storage_unified-storage.html#.subscribe\">subscribe</a>","description":"<p>Subscribe to data changes</p>"},{"title":"module:storage/unified-storage.update","link":"<a href=\"module-storage_unified-storage.html#.update\">update</a>","description":"<p>Update data (merge fields)</p>"},{"title":"module:storage/unified-storage.write","link":"<a href=\"module-storage_unified-storage.html#.write\">write</a>","description":"<p>Write data to storage</p>"},{"title":"module:subscriptions/manager","link":"<a href=\"module-subscriptions_manager.html\">subscriptions/manager</a>","description":"<p>Real-time subscription management with throttling, filtering, and hologram resolution.\nProvides subscription utilities for real-time data updates from the unified storage layer.</p>"},{"title":"module:subscriptions/manager.SubscriptionRegistry","link":"<a href=\"module-subscriptions_manager.SubscriptionRegistry.html\">SubscriptionRegistry</a>","description":"<p>Create a new subscription registry.</p>"},{"title":"module:subscriptions/manager.SubscriptionRegistry#count","link":"<a href=\"module-subscriptions_manager.SubscriptionRegistry.html#count\">count</a>","description":"<p>Get the count of active subscriptions.</p>"},{"title":"module:subscriptions/manager.SubscriptionRegistry#register","link":"<a href=\"module-subscriptions_manager.SubscriptionRegistry.html#register\">register</a>","description":"<p>Register a subscription by ID.</p>"},{"title":"module:subscriptions/manager.SubscriptionRegistry#unregister","link":"<a href=\"module-subscriptions_manager.SubscriptionRegistry.html#unregister\">unregister</a>","description":"<p>Unregister and unsubscribe a subscription by ID.</p>"},{"title":"module:subscriptions/manager.SubscriptionRegistry#unsubscribeAll","link":"<a href=\"module-subscriptions_manager.SubscriptionRegistry.html#unsubscribeAll\">unsubscribeAll</a>","description":"<p>Unsubscribe all registered subscriptions and clear the registry.</p>"},{"title":"module:subscriptions/manager.createSubscription","link":"<a href=\"module-subscriptions_manager.html#.createSubscription\">createSubscription</a>","description":"<p>Create subscription with throttle and filter support.\nManages real-time data updates with deduplication, hologram resolution, and filtering capabilities.</p>"},{"title":"rejectFederationRequest","link":"<a href=\"global.html#rejectFederationRequest\">rejectFederationRequest</a>","description":"<p>Reject a federation request\nSends rejection DM without creating local federation</p>"},{"title":"removeFederatedPartner","link":"<a href=\"global.html#removeFederatedPartner\">removeFederatedPartner</a>","description":"<p>Remove a federated partner</p>"},{"title":"revokeOutboundCapability","link":"<a href=\"global.html#revokeOutboundCapability\">revokeOutboundCapability</a>","description":"<p>Revoke an outbound capability (by token hash)</p>"},{"title":"saveFederationRegistry","link":"<a href=\"global.html#saveFederationRegistry\">saveFederationRegistry</a>","description":"<p>Save the federation registry</p>"},{"title":"sendFederationRequest","link":"<a href=\"global.html#sendFederationRequest\">sendFederationRequest</a>","description":"<p>Send a federation request to another holosphere via Nostr</p>"},{"title":"sendFederationRequest","link":"<a href=\"global.html#sendFederationRequest\">sendFederationRequest</a>","description":"<p>Send a federation request DM</p>"},{"title":"sendFederationResponse","link":"<a href=\"global.html#sendFederationResponse\">sendFederationResponse</a>","description":"<p>Send a federation response DM</p>"},{"title":"storeInboundCapability","link":"<a href=\"global.html#storeInboundCapability\">storeInboundCapability</a>","description":"<p>Store an inbound capability (one we received from a partner)</p>"},{"title":"storeOutboundCapability","link":"<a href=\"global.html#storeOutboundCapability\">storeOutboundCapability</a>","description":"<p>Store an outbound capability (one we issued to a partner)\nWe only store the hash, not the full token</p>"},{"title":"subscribeFederationAcceptances","link":"<a href=\"global.html#subscribeFederationAcceptances\">subscribeFederationAcceptances</a>","description":"<p>Subscribe to federation acceptances (responses to our requests)</p>"},{"title":"subscribeFederationDeclines","link":"<a href=\"global.html#subscribeFederationDeclines\">subscribeFederationDeclines</a>","description":"<p>Subscribe to federation declines</p>"},{"title":"subscribeFederationRequests","link":"<a href=\"global.html#subscribeFederationRequests\">subscribeFederationRequests</a>","description":"<p>Subscribe to incoming federation requests</p>"},{"title":"subscribeToFederationDMs","link":"<a href=\"global.html#subscribeToFederationDMs\">subscribeToFederationDMs</a>","description":"<p>Subscribe to incoming federation DMs</p>"},{"title":"updateDiscoverySettings","link":"<a href=\"global.html#updateDiscoverySettings\">updateDiscoverySettings</a>","description":"<p>Update federation discovery settings</p>"}]}
|