holosphere 2.0.0-alpha7 → 2.0.0-alpha9
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 +446 -0
- package/FEATURES.md +431 -0
- package/LICENSE +29 -166
- package/LICENSE-AGPL.md +180 -0
- package/dist/cdn/holosphere.min.js +55 -0
- package/dist/cdn/holosphere.min.js.map +1 -0
- package/dist/cjs/holosphere.cjs +1 -1
- package/dist/esm/holosphere.js +1 -1
- package/dist/{index-C-IlLYlk.cjs → index-DDGt_V9o.cjs} +2 -2
- package/dist/{index-C-IlLYlk.cjs.map → index-DDGt_V9o.cjs.map} +1 -1
- package/dist/{index-d6f4RJBM.js → index-DJXftyvB.js} +2253 -387
- 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-jmTHEbR2.js → index-DeZ1xz_s.js} +2 -2
- package/dist/{index-jmTHEbR2.js.map → index-DeZ1xz_s.js.map} +1 -1
- package/dist/{indexeddb-storage-D8kOl0oK.js → indexeddb-storage-BFt6hMeF.js} +48 -4
- package/dist/indexeddb-storage-BFt6hMeF.js.map +1 -0
- package/dist/{indexeddb-storage-a8GipaDr.cjs → indexeddb-storage-BK5tv4Sh.cjs} +2 -2
- package/dist/indexeddb-storage-BK5tv4Sh.cjs.map +1 -0
- package/dist/{memory-storage-DBQK622V.js → memory-storage-C9HuoL2E.js} +44 -4
- package/dist/memory-storage-C9HuoL2E.js.map +1 -0
- package/dist/{memory-storage-gfRovk2O.cjs → memory-storage-Dao7jfYG.cjs} +2 -2
- package/dist/memory-storage-Dao7jfYG.cjs.map +1 -0
- package/dist/{secp256k1-BCAPF45D.cjs → secp256k1-BbKzbLtD.cjs} +2 -2
- package/dist/{secp256k1-BCAPF45D.cjs.map → secp256k1-BbKzbLtD.cjs.map} +1 -1
- package/dist/{secp256k1-DYm_CMqW.js → secp256k1-CreY7Pcl.js} +2 -2
- package/dist/{secp256k1-DYm_CMqW.js.map → secp256k1-CreY7Pcl.js.map} +1 -1
- 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/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 +16 -3
- 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/chain-manager.js +68 -40
- package/src/contracts/deployer.js +70 -42
- package/src/contracts/event-listener.js +61 -29
- package/src/contracts/holon-contracts.js +46 -31
- package/src/contracts/index.js +5 -6
- package/src/contracts/networks.js +19 -14
- package/src/contracts/operations.js +58 -41
- package/src/contracts/queries.js +70 -21
- package/src/core/holosphere.js +37 -8
- package/src/crypto/nostr-utils.js +105 -65
- package/src/crypto/secp256k1.js +7 -2
- package/src/federation/handshake.js +23 -11
- package/src/federation/hologram.js +9 -1
- package/src/hierarchical/upcast.js +34 -20
- package/src/index.js +671 -7
- package/src/lib/ai-methods.js +352 -3
- package/src/lib/contract-methods.js +152 -3
- package/src/lib/errors.js +31 -1
- package/src/lib/federation-methods.js +110 -3
- package/src/lib/index.js +9 -5
- package/src/schema/validator.js +22 -3
- package/src/spatial/h3-operations.js +17 -1
- 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 +322 -11
- 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 +7 -2
- package/src/storage/gun-async.js +20 -11
- package/src/storage/gun-auth.js +15 -4
- package/src/storage/gun-federation.js +14 -5
- package/src/storage/gun-references.js +16 -5
- package/src/storage/gun-schema.js +25 -10
- package/src/storage/gun-wrapper.js +160 -49
- package/src/storage/indexeddb-storage.js +65 -4
- package/src/storage/key-storage-simple.js +32 -9
- package/src/storage/key-storage.js +45 -13
- package/src/storage/memory-storage.js +65 -4
- package/src/storage/migration.js +20 -7
- package/src/storage/nostr-async.js +195 -90
- package/src/storage/nostr-client.js +173 -49
- package/src/storage/nostr-wrapper.js +6 -2
- package/src/storage/outbox-queue.js +55 -18
- package/src/storage/persistent-storage.js +56 -13
- package/src/storage/sync-service.js +51 -17
- package/src/storage/unified-storage.js +38 -3
- package/src/subscriptions/manager.js +33 -16
- package/vite.config.cdn.js +60 -0
- package/dist/index-Bvwyvd0T.cjs +0 -5
- package/dist/index-Bvwyvd0T.cjs.map +0 -1
- package/dist/index-d6f4RJBM.js.map +0 -1
- package/dist/indexeddb-storage-D8kOl0oK.js.map +0 -1
- package/dist/indexeddb-storage-a8GipaDr.cjs.map +0 -1
- package/dist/memory-storage-DBQK622V.js.map +0 -1
- package/dist/memory-storage-gfRovk2O.cjs.map +0 -1
- /package/{cleanup-test-data.js → scripts/cleanup-test-data.js} +0 -0
- /package/{test-ai-real-api.js → scripts/test-ai-real-api.js} +0 -0
package/src/lib/ai-methods.js
CHANGED
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AI
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview AI methods mixin providing comprehensive AI-powered operations for HoloSphere.
|
|
3
|
+
* Includes LLM operations, embeddings, semantic search, natural language queries, spatial analysis,
|
|
4
|
+
* and specialized AI features for geographic and hierarchical data processing.
|
|
5
|
+
* @module lib/ai-methods
|
|
4
6
|
*/
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
|
-
* Mixin that adds AI methods to a HoloSphere class
|
|
9
|
+
* Mixin that adds AI methods to a HoloSphere class.
|
|
10
|
+
* Provides access to LLM, embeddings, semantic search, council, classification,
|
|
11
|
+
* spatial analysis, aggregation, federation advisor, relationships, and task breakdown.
|
|
8
12
|
* @param {Class} Base - Base class to extend
|
|
9
13
|
* @returns {Class} Extended class with AI methods
|
|
10
14
|
*/
|
|
11
15
|
export function withAIMethods(Base) {
|
|
12
16
|
return class extends Base {
|
|
17
|
+
/**
|
|
18
|
+
* Internal method to ensure AI services are initialized.
|
|
19
|
+
* @private
|
|
20
|
+
* @throws {Error} If AI services are not initialized
|
|
21
|
+
*/
|
|
13
22
|
_requireAI() {
|
|
14
23
|
if (!this._ai) {
|
|
15
24
|
throw new Error('AI services not initialized. Provide openaiKey in config.');
|
|
@@ -18,31 +27,70 @@ export function withAIMethods(Base) {
|
|
|
18
27
|
|
|
19
28
|
// --- Core LLM Methods ---
|
|
20
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Summarize text using AI.
|
|
32
|
+
* @param {string} text - Text content to summarize
|
|
33
|
+
* @param {Object} [options={}] - Summarization options (model, maxLength, etc.)
|
|
34
|
+
* @returns {Promise<string>} Generated summary
|
|
35
|
+
*/
|
|
21
36
|
async summarize(text, options = {}) {
|
|
22
37
|
this._requireAI();
|
|
23
38
|
return this._ai.llm.summarize(text, options);
|
|
24
39
|
}
|
|
25
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Analyze text for a specific aspect using AI.
|
|
43
|
+
* @param {string} text - Text content to analyze
|
|
44
|
+
* @param {string} aspect - Aspect to analyze (e.g., 'sentiment', 'tone', 'themes')
|
|
45
|
+
* @param {Object} [options={}] - Analysis options
|
|
46
|
+
* @returns {Promise<string>} Analysis result
|
|
47
|
+
*/
|
|
26
48
|
async analyze(text, aspect, options = {}) {
|
|
27
49
|
this._requireAI();
|
|
28
50
|
return this._ai.llm.analyze(text, aspect, options);
|
|
29
51
|
}
|
|
30
52
|
|
|
53
|
+
/**
|
|
54
|
+
* Extract keywords from text using AI.
|
|
55
|
+
* @param {string} text - Text content to process
|
|
56
|
+
* @param {Object} [options={}] - Extraction options (count, focus, etc.)
|
|
57
|
+
* @returns {Promise<string[]>} Array of extracted keywords
|
|
58
|
+
*/
|
|
31
59
|
async extractKeywords(text, options = {}) {
|
|
32
60
|
this._requireAI();
|
|
33
61
|
return this._ai.llm.extractKeywords(text, options);
|
|
34
62
|
}
|
|
35
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Categorize text into one of the provided categories.
|
|
66
|
+
* @param {string} text - Text content to categorize
|
|
67
|
+
* @param {string[]} categories - Array of possible categories
|
|
68
|
+
* @param {Object} [options={}] - Categorization options
|
|
69
|
+
* @returns {Promise<string>} Selected category
|
|
70
|
+
*/
|
|
36
71
|
async categorize(text, categories, options = {}) {
|
|
37
72
|
this._requireAI();
|
|
38
73
|
return this._ai.llm.categorize(text, categories, options);
|
|
39
74
|
}
|
|
40
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Translate text to target language using AI.
|
|
78
|
+
* @param {string} text - Text to translate
|
|
79
|
+
* @param {string} targetLanguage - Target language (e.g., 'Spanish', 'French')
|
|
80
|
+
* @param {Object} [options={}] - Translation options
|
|
81
|
+
* @returns {Promise<string>} Translated text
|
|
82
|
+
*/
|
|
41
83
|
async translate(text, targetLanguage, options = {}) {
|
|
42
84
|
this._requireAI();
|
|
43
85
|
return this._ai.llm.translate(text, targetLanguage, options);
|
|
44
86
|
}
|
|
45
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Generate questions from text using AI.
|
|
90
|
+
* @param {string} text - Text content to generate questions from
|
|
91
|
+
* @param {Object} [options={}] - Generation options (count, type, etc.)
|
|
92
|
+
* @returns {Promise<string[]>} Array of generated questions
|
|
93
|
+
*/
|
|
46
94
|
async generateQuestions(text, options = {}) {
|
|
47
95
|
this._requireAI();
|
|
48
96
|
return this._ai.llm.generateQuestions(text, options);
|
|
@@ -50,6 +98,14 @@ export function withAIMethods(Base) {
|
|
|
50
98
|
|
|
51
99
|
// --- Schema Extraction ---
|
|
52
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Extract structured data from text according to a lens schema.
|
|
103
|
+
* @param {string} text - Text to extract data from
|
|
104
|
+
* @param {string} lensName - Name of lens with defined schema
|
|
105
|
+
* @param {Object} [options={}] - Extraction options
|
|
106
|
+
* @returns {Promise<Object>} Extracted data matching schema
|
|
107
|
+
* @throws {Error} If schema not found for lens
|
|
108
|
+
*/
|
|
53
109
|
async extractToSchema(text, lensName, options = {}) {
|
|
54
110
|
this._requireAI();
|
|
55
111
|
const schemaObj = await this.getSchema(lensName);
|
|
@@ -61,26 +117,61 @@ export function withAIMethods(Base) {
|
|
|
61
117
|
|
|
62
118
|
// --- Fuzzy JSON Operations ---
|
|
63
119
|
|
|
120
|
+
/**
|
|
121
|
+
* AI-powered fuzzy addition of JSON objects.
|
|
122
|
+
* @param {Object} obj1 - First object
|
|
123
|
+
* @param {Object} obj2 - Second object
|
|
124
|
+
* @param {Object} [options={}] - Operation options
|
|
125
|
+
* @returns {Promise<Object>} Result of fuzzy addition
|
|
126
|
+
*/
|
|
64
127
|
async jsonAdd(obj1, obj2, options = {}) {
|
|
65
128
|
this._requireAI();
|
|
66
129
|
return this._ai.jsonOps.add(obj1, obj2, options);
|
|
67
130
|
}
|
|
68
131
|
|
|
132
|
+
/**
|
|
133
|
+
* AI-powered fuzzy subtraction of JSON objects.
|
|
134
|
+
* @param {Object} obj1 - Object to subtract from
|
|
135
|
+
* @param {Object} obj2 - Object to subtract
|
|
136
|
+
* @param {Object} [options={}] - Operation options
|
|
137
|
+
* @returns {Promise<Object>} Result of fuzzy subtraction
|
|
138
|
+
*/
|
|
69
139
|
async jsonSubtract(obj1, obj2, options = {}) {
|
|
70
140
|
this._requireAI();
|
|
71
141
|
return this._ai.jsonOps.subtract(obj1, obj2, options);
|
|
72
142
|
}
|
|
73
143
|
|
|
144
|
+
/**
|
|
145
|
+
* AI-powered fuzzy union of JSON objects.
|
|
146
|
+
* @param {Object} obj1 - First object
|
|
147
|
+
* @param {Object} obj2 - Second object
|
|
148
|
+
* @param {Object} [options={}] - Operation options
|
|
149
|
+
* @returns {Promise<Object>} Result of fuzzy union
|
|
150
|
+
*/
|
|
74
151
|
async jsonUnion(obj1, obj2, options = {}) {
|
|
75
152
|
this._requireAI();
|
|
76
153
|
return this._ai.jsonOps.union(obj1, obj2, options);
|
|
77
154
|
}
|
|
78
155
|
|
|
156
|
+
/**
|
|
157
|
+
* AI-powered fuzzy difference of JSON objects.
|
|
158
|
+
* @param {Object} obj1 - First object
|
|
159
|
+
* @param {Object} obj2 - Second object
|
|
160
|
+
* @param {Object} [options={}] - Operation options
|
|
161
|
+
* @returns {Promise<Object>} Result of fuzzy difference
|
|
162
|
+
*/
|
|
79
163
|
async jsonDifference(obj1, obj2, options = {}) {
|
|
80
164
|
this._requireAI();
|
|
81
165
|
return this._ai.jsonOps.difference(obj1, obj2, options);
|
|
82
166
|
}
|
|
83
167
|
|
|
168
|
+
/**
|
|
169
|
+
* AI-powered fuzzy concatenation of JSON objects.
|
|
170
|
+
* @param {Object} obj1 - First object
|
|
171
|
+
* @param {Object} obj2 - Second object
|
|
172
|
+
* @param {Object} [options={}] - Operation options
|
|
173
|
+
* @returns {Promise<Object>} Result of fuzzy concatenation
|
|
174
|
+
*/
|
|
84
175
|
async jsonConcatenate(obj1, obj2, options = {}) {
|
|
85
176
|
this._requireAI();
|
|
86
177
|
return this._ai.jsonOps.concatenate(obj1, obj2, options);
|
|
@@ -88,16 +179,37 @@ export function withAIMethods(Base) {
|
|
|
88
179
|
|
|
89
180
|
// --- Embeddings & Semantic Search ---
|
|
90
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Generate embedding vector for text.
|
|
184
|
+
* @param {string} text - Text to embed
|
|
185
|
+
* @returns {Promise<number[]>} Embedding vector
|
|
186
|
+
*/
|
|
91
187
|
async embed(text) {
|
|
92
188
|
this._requireAI();
|
|
93
189
|
return this._ai.embeddings.embed(text);
|
|
94
190
|
}
|
|
95
191
|
|
|
192
|
+
/**
|
|
193
|
+
* Perform semantic search on holon data using embeddings.
|
|
194
|
+
* @param {string} query - Search query text
|
|
195
|
+
* @param {string} holonId - Holon to search within
|
|
196
|
+
* @param {string} lensName - Lens to search within
|
|
197
|
+
* @param {Object} [options={}] - Search options (limit, threshold, etc.)
|
|
198
|
+
* @returns {Promise<Object[]>} Ranked search results
|
|
199
|
+
*/
|
|
96
200
|
async semanticSearch(query, holonId, lensName, options = {}) {
|
|
97
201
|
this._requireAI();
|
|
98
202
|
return this._ai.embeddings.semanticSearch(query, holonId, lensName, options);
|
|
99
203
|
}
|
|
100
204
|
|
|
205
|
+
/**
|
|
206
|
+
* Store data with automatically generated embedding.
|
|
207
|
+
* @param {string} holonId - Holon ID to store in
|
|
208
|
+
* @param {string} lensName - Lens name to store under
|
|
209
|
+
* @param {Object} data - Data object to store
|
|
210
|
+
* @param {string} [textField='description'] - Field to use for embedding generation
|
|
211
|
+
* @returns {Promise<Object>} Stored data with embedding
|
|
212
|
+
*/
|
|
101
213
|
async storeWithEmbedding(holonId, lensName, data, textField = 'description') {
|
|
102
214
|
this._requireAI();
|
|
103
215
|
return this._ai.embeddings.storeWithEmbedding(holonId, lensName, data, textField);
|
|
@@ -105,11 +217,24 @@ export function withAIMethods(Base) {
|
|
|
105
217
|
|
|
106
218
|
// --- Multi-Perspective Council ---
|
|
107
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Ask a question to the multi-perspective AI council.
|
|
222
|
+
* @param {string} question - Question to ask
|
|
223
|
+
* @param {Object} [options={}] - Council options (perspectives, synthesis, etc.)
|
|
224
|
+
* @returns {Promise<Object>} Council responses and synthesis
|
|
225
|
+
*/
|
|
108
226
|
async askCouncil(question, options = {}) {
|
|
109
227
|
this._requireAI();
|
|
110
228
|
return this._ai.council.ask(question, options);
|
|
111
229
|
}
|
|
112
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Ask a question to a custom set of perspectives.
|
|
233
|
+
* @param {string} question - Question to ask
|
|
234
|
+
* @param {string[]} perspectives - Array of perspective descriptions
|
|
235
|
+
* @param {Object} [options={}] - Council options
|
|
236
|
+
* @returns {Promise<Object>} Custom council responses and synthesis
|
|
237
|
+
*/
|
|
113
238
|
async askCouncilCustom(question, perspectives, options = {}) {
|
|
114
239
|
this._requireAI();
|
|
115
240
|
return this._ai.council.askCustom(question, perspectives, options);
|
|
@@ -117,11 +242,25 @@ export function withAIMethods(Base) {
|
|
|
117
242
|
|
|
118
243
|
// --- Text-to-Speech ---
|
|
119
244
|
|
|
245
|
+
/**
|
|
246
|
+
* Convert text to speech audio.
|
|
247
|
+
* @param {string} text - Text to convert to speech
|
|
248
|
+
* @param {string} [voice='nova'] - Voice to use (alloy, echo, fable, onyx, nova, shimmer)
|
|
249
|
+
* @param {Object} [options={}] - TTS options (speed, format, etc.)
|
|
250
|
+
* @returns {Promise<Buffer>} Audio buffer
|
|
251
|
+
*/
|
|
120
252
|
async textToSpeech(text, voice = 'nova', options = {}) {
|
|
121
253
|
this._requireAI();
|
|
122
254
|
return this._ai.tts.speak(text, voice, options);
|
|
123
255
|
}
|
|
124
256
|
|
|
257
|
+
/**
|
|
258
|
+
* Convert text to speech audio (base64 encoded).
|
|
259
|
+
* @param {string} text - Text to convert to speech
|
|
260
|
+
* @param {string} [voice='nova'] - Voice to use
|
|
261
|
+
* @param {Object} [options={}] - TTS options
|
|
262
|
+
* @returns {Promise<string>} Base64-encoded audio
|
|
263
|
+
*/
|
|
125
264
|
async textToSpeechBase64(text, voice = 'nova', options = {}) {
|
|
126
265
|
this._requireAI();
|
|
127
266
|
return this._ai.tts.speakBase64(text, voice, options);
|
|
@@ -129,11 +268,24 @@ export function withAIMethods(Base) {
|
|
|
129
268
|
|
|
130
269
|
// --- Natural Language Queries ---
|
|
131
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Execute a natural language query on holon data.
|
|
273
|
+
* @param {string} query - Natural language query
|
|
274
|
+
* @param {string|null} [holonId=null] - Optional holon to query
|
|
275
|
+
* @param {string|null} [lensName=null] - Optional lens to query
|
|
276
|
+
* @param {Object} [options={}] - Query options
|
|
277
|
+
* @returns {Promise<Object>} Query results
|
|
278
|
+
*/
|
|
132
279
|
async nlQuery(query, holonId = null, lensName = null, options = {}) {
|
|
133
280
|
this._requireAI();
|
|
134
281
|
return this._ai.nlQuery.execute(query, holonId, lensName, options);
|
|
135
282
|
}
|
|
136
283
|
|
|
284
|
+
/**
|
|
285
|
+
* Parse a natural language query into structured components.
|
|
286
|
+
* @param {string} query - Natural language query
|
|
287
|
+
* @returns {Promise<Object>} Parsed query structure
|
|
288
|
+
*/
|
|
137
289
|
async parseNLQuery(query) {
|
|
138
290
|
this._requireAI();
|
|
139
291
|
return this._ai.nlQuery.parse(query);
|
|
@@ -141,16 +293,35 @@ export function withAIMethods(Base) {
|
|
|
141
293
|
|
|
142
294
|
// --- Auto-Classification ---
|
|
143
295
|
|
|
296
|
+
/**
|
|
297
|
+
* Classify content to determine appropriate lens.
|
|
298
|
+
* @param {string|Object} content - Content to classify
|
|
299
|
+
* @param {Object} [options={}] - Classification options
|
|
300
|
+
* @returns {Promise<string>} Recommended lens name
|
|
301
|
+
*/
|
|
144
302
|
async classifyToLens(content, options = {}) {
|
|
145
303
|
this._requireAI();
|
|
146
304
|
return this._ai.classifier.classifyToLens(content, options);
|
|
147
305
|
}
|
|
148
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Automatically classify and store content in appropriate lens.
|
|
309
|
+
* @param {string} holonId - Holon to store in
|
|
310
|
+
* @param {string|Object} content - Content to classify and store
|
|
311
|
+
* @param {Object} [options={}] - Storage options
|
|
312
|
+
* @returns {Promise<Object>} Stored data with classification info
|
|
313
|
+
*/
|
|
149
314
|
async autoStore(holonId, content, options = {}) {
|
|
150
315
|
this._requireAI();
|
|
151
316
|
return this._ai.classifier.autoStore(holonId, content, options);
|
|
152
317
|
}
|
|
153
318
|
|
|
319
|
+
/**
|
|
320
|
+
* Register a lens for auto-classification.
|
|
321
|
+
* @param {string} lensName - Lens name to register
|
|
322
|
+
* @param {string} description - Lens description for classification
|
|
323
|
+
* @param {string[]} [keywords=[]] - Keywords associated with lens
|
|
324
|
+
*/
|
|
154
325
|
registerLensForClassification(lensName, description, keywords = []) {
|
|
155
326
|
this._requireAI();
|
|
156
327
|
this._ai.classifier.registerLens(lensName, description, keywords);
|
|
@@ -158,16 +329,38 @@ export function withAIMethods(Base) {
|
|
|
158
329
|
|
|
159
330
|
// --- Spatial Analysis ---
|
|
160
331
|
|
|
332
|
+
/**
|
|
333
|
+
* Analyze a geographic region using AI.
|
|
334
|
+
* @param {string} holonId - H3 holon ID to analyze
|
|
335
|
+
* @param {string|null} [lensName=null] - Optional lens to focus on
|
|
336
|
+
* @param {string|null} [aspect=null] - Optional aspect to analyze
|
|
337
|
+
* @param {Object} [options={}] - Analysis options
|
|
338
|
+
* @returns {Promise<Object>} Region analysis
|
|
339
|
+
*/
|
|
161
340
|
async analyzeRegion(holonId, lensName = null, aspect = null, options = {}) {
|
|
162
341
|
this._requireAI();
|
|
163
342
|
return this._ai.spatial.analyzeRegion(holonId, lensName, aspect, options);
|
|
164
343
|
}
|
|
165
344
|
|
|
345
|
+
/**
|
|
346
|
+
* Compare two geographic regions using AI.
|
|
347
|
+
* @param {string} holon1 - First H3 holon ID
|
|
348
|
+
* @param {string} holon2 - Second H3 holon ID
|
|
349
|
+
* @param {string|null} [lensName=null] - Optional lens to focus comparison
|
|
350
|
+
* @returns {Promise<Object>} Comparison analysis
|
|
351
|
+
*/
|
|
166
352
|
async compareRegions(holon1, holon2, lensName = null) {
|
|
167
353
|
this._requireAI();
|
|
168
354
|
return this._ai.spatial.compareRegions(holon1, holon2, lensName);
|
|
169
355
|
}
|
|
170
356
|
|
|
357
|
+
/**
|
|
358
|
+
* Analyze spatial trends over time.
|
|
359
|
+
* @param {string} holonId - H3 holon ID
|
|
360
|
+
* @param {string} lensName - Lens to analyze trends for
|
|
361
|
+
* @param {Object|null} [timeRange=null] - Time range for trend analysis
|
|
362
|
+
* @returns {Promise<Object>} Trend analysis
|
|
363
|
+
*/
|
|
171
364
|
async spatialTrends(holonId, lensName, timeRange = null) {
|
|
172
365
|
this._requireAI();
|
|
173
366
|
return this._ai.spatial.spatialTrends(holonId, lensName, timeRange);
|
|
@@ -175,11 +368,23 @@ export function withAIMethods(Base) {
|
|
|
175
368
|
|
|
176
369
|
// --- Smart Aggregation ---
|
|
177
370
|
|
|
371
|
+
/**
|
|
372
|
+
* Intelligently upcast data with AI-powered aggregation.
|
|
373
|
+
* @param {string} holonId - H3 holon ID to upcast from
|
|
374
|
+
* @param {string} lensName - Lens to upcast
|
|
375
|
+
* @param {Object} [options={}] - Upcast options
|
|
376
|
+
* @returns {Promise<Object>} Smart upcast result
|
|
377
|
+
*/
|
|
178
378
|
async smartUpcast(holonId, lensName, options = {}) {
|
|
179
379
|
this._requireAI();
|
|
180
380
|
return this._ai.aggregation.smartUpcast(holonId, lensName, options);
|
|
181
381
|
}
|
|
182
382
|
|
|
383
|
+
/**
|
|
384
|
+
* Generate AI-powered summary of holon data.
|
|
385
|
+
* @param {string} holonId - Holon ID to summarize
|
|
386
|
+
* @returns {Promise<string>} Generated holon summary
|
|
387
|
+
*/
|
|
183
388
|
async generateHolonSummary(holonId) {
|
|
184
389
|
this._requireAI();
|
|
185
390
|
return this._ai.aggregation.generateHolonSummary(holonId);
|
|
@@ -187,16 +392,32 @@ export function withAIMethods(Base) {
|
|
|
187
392
|
|
|
188
393
|
// --- Federation Advisor ---
|
|
189
394
|
|
|
395
|
+
/**
|
|
396
|
+
* Get AI suggestions for holon federations.
|
|
397
|
+
* @param {string} holonId - Holon to analyze for federation
|
|
398
|
+
* @param {Object} [options={}] - Suggestion options
|
|
399
|
+
* @returns {Promise<Object[]>} Array of federation suggestions
|
|
400
|
+
*/
|
|
190
401
|
async suggestFederations(holonId, options = {}) {
|
|
191
402
|
this._requireAI();
|
|
192
403
|
return this._ai.federationAdvisor.suggestFederations(holonId, options);
|
|
193
404
|
}
|
|
194
405
|
|
|
406
|
+
/**
|
|
407
|
+
* Analyze health of holon's federations.
|
|
408
|
+
* @param {string} holonId - Holon to analyze
|
|
409
|
+
* @returns {Promise<Object>} Federation health report
|
|
410
|
+
*/
|
|
195
411
|
async analyzeFederationHealth(holonId) {
|
|
196
412
|
this._requireAI();
|
|
197
413
|
return this._ai.federationAdvisor.analyzeFederationHealth(holonId);
|
|
198
414
|
}
|
|
199
415
|
|
|
416
|
+
/**
|
|
417
|
+
* Get AI recommendations for optimizing federations.
|
|
418
|
+
* @param {string} holonId - Holon to optimize
|
|
419
|
+
* @returns {Promise<Object>} Optimization recommendations
|
|
420
|
+
*/
|
|
200
421
|
async optimizeFederation(holonId) {
|
|
201
422
|
this._requireAI();
|
|
202
423
|
return this._ai.federationAdvisor.optimizeFederation(holonId);
|
|
@@ -204,21 +425,48 @@ export function withAIMethods(Base) {
|
|
|
204
425
|
|
|
205
426
|
// --- Relationship Discovery ---
|
|
206
427
|
|
|
428
|
+
/**
|
|
429
|
+
* Discover relationships between data items using AI.
|
|
430
|
+
* @param {string} holonId - Holon to analyze
|
|
431
|
+
* @param {string|null} [lensName=null] - Optional lens to focus on
|
|
432
|
+
* @returns {Promise<Object[]>} Discovered relationships
|
|
433
|
+
*/
|
|
207
434
|
async discoverRelationships(holonId, lensName = null) {
|
|
208
435
|
this._requireAI();
|
|
209
436
|
return this._ai.relationships.discoverRelationships(holonId, lensName);
|
|
210
437
|
}
|
|
211
438
|
|
|
439
|
+
/**
|
|
440
|
+
* Find similar items using AI and embeddings.
|
|
441
|
+
* @param {Object} item - Item to find similar items for
|
|
442
|
+
* @param {string} holonId - Holon to search within
|
|
443
|
+
* @param {string|null} [lensName=null] - Optional lens to search
|
|
444
|
+
* @param {Object} [options={}] - Search options (limit, threshold, etc.)
|
|
445
|
+
* @returns {Promise<Object[]>} Similar items
|
|
446
|
+
*/
|
|
212
447
|
async findSimilar(item, holonId, lensName = null, options = {}) {
|
|
213
448
|
this._requireAI();
|
|
214
449
|
return this._ai.relationships.findSimilar(item, holonId, lensName, options);
|
|
215
450
|
}
|
|
216
451
|
|
|
452
|
+
/**
|
|
453
|
+
* Build relationship graph for holon data.
|
|
454
|
+
* @param {string} holonId - Holon ID
|
|
455
|
+
* @param {string} lensName - Lens to build graph for
|
|
456
|
+
* @returns {Promise<Object>} Relationship graph structure
|
|
457
|
+
*/
|
|
217
458
|
async buildRelationshipGraph(holonId, lensName) {
|
|
218
459
|
this._requireAI();
|
|
219
460
|
return this._ai.relationships.buildGraph(holonId, lensName);
|
|
220
461
|
}
|
|
221
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Get AI suggestions for connecting an item to others.
|
|
465
|
+
* @param {Object} item - Item to suggest connections for
|
|
466
|
+
* @param {string} holonId - Holon context
|
|
467
|
+
* @param {string} lensName - Lens context
|
|
468
|
+
* @returns {Promise<Object[]>} Connection suggestions
|
|
469
|
+
*/
|
|
222
470
|
async suggestConnections(item, holonId, lensName) {
|
|
223
471
|
this._requireAI();
|
|
224
472
|
return this._ai.relationships.suggestConnections(item, holonId, lensName);
|
|
@@ -226,26 +474,56 @@ export function withAIMethods(Base) {
|
|
|
226
474
|
|
|
227
475
|
// --- Task Breakdown ---
|
|
228
476
|
|
|
477
|
+
/**
|
|
478
|
+
* Break down complex item into subtasks using AI.
|
|
479
|
+
* @param {Object} item - Item to break down
|
|
480
|
+
* @param {string} holonId - Holon to store breakdown in
|
|
481
|
+
* @param {string} lensName - Lens to use for subtasks
|
|
482
|
+
* @param {Object} [options={}] - Breakdown options (depth, strategy, etc.)
|
|
483
|
+
* @returns {Promise<Object>} Breakdown structure
|
|
484
|
+
*/
|
|
229
485
|
async breakdown(item, holonId, lensName, options = {}) {
|
|
230
486
|
this._requireAI();
|
|
231
487
|
return this._ai.taskBreakdown.breakdown(item, holonId, lensName, options);
|
|
232
488
|
}
|
|
233
489
|
|
|
490
|
+
/**
|
|
491
|
+
* Get AI suggestion for breakdown strategy.
|
|
492
|
+
* @param {Object} item - Item to analyze
|
|
493
|
+
* @returns {Promise<Object>} Suggested breakdown strategy
|
|
494
|
+
*/
|
|
234
495
|
async suggestBreakdownStrategy(item) {
|
|
235
496
|
this._requireAI();
|
|
236
497
|
return this._ai.taskBreakdown.suggestStrategy(item);
|
|
237
498
|
}
|
|
238
499
|
|
|
500
|
+
/**
|
|
501
|
+
* Flatten hierarchical breakdown into linear array.
|
|
502
|
+
* @param {Object} breakdownResult - Breakdown structure to flatten
|
|
503
|
+
* @returns {Object[]} Flattened breakdown items
|
|
504
|
+
*/
|
|
239
505
|
flattenBreakdown(breakdownResult) {
|
|
240
506
|
this._requireAI();
|
|
241
507
|
return this._ai.taskBreakdown.flatten(breakdownResult);
|
|
242
508
|
}
|
|
243
509
|
|
|
510
|
+
/**
|
|
511
|
+
* Get dependency-ordered list of breakdown items.
|
|
512
|
+
* @param {Object} breakdownResult - Breakdown structure
|
|
513
|
+
* @returns {Object[]} Items ordered by dependencies
|
|
514
|
+
*/
|
|
244
515
|
getBreakdownDependencyOrder(breakdownResult) {
|
|
245
516
|
this._requireAI();
|
|
246
517
|
return this._ai.taskBreakdown.getDependencyOrder(breakdownResult);
|
|
247
518
|
}
|
|
248
519
|
|
|
520
|
+
/**
|
|
521
|
+
* Get progress status of breakdown items.
|
|
522
|
+
* @param {string} holonId - Holon ID
|
|
523
|
+
* @param {string} lensName - Lens name
|
|
524
|
+
* @param {string} itemId - Parent item ID
|
|
525
|
+
* @returns {Promise<Object>} Progress report
|
|
526
|
+
*/
|
|
249
527
|
async getBreakdownProgress(holonId, lensName, itemId) {
|
|
250
528
|
this._requireAI();
|
|
251
529
|
return this._ai.taskBreakdown.getProgress(holonId, lensName, itemId);
|
|
@@ -253,51 +531,122 @@ export function withAIMethods(Base) {
|
|
|
253
531
|
|
|
254
532
|
// --- H3 Geospatial AI ---
|
|
255
533
|
|
|
534
|
+
/**
|
|
535
|
+
* Get AI suggestion for optimal H3 resolution for item.
|
|
536
|
+
* @param {Object} item - Item to analyze
|
|
537
|
+
* @param {Object} [options={}] - Analysis options
|
|
538
|
+
* @returns {Promise<number>} Suggested H3 resolution level
|
|
539
|
+
*/
|
|
256
540
|
async suggestH3Resolution(item, options = {}) {
|
|
257
541
|
this._requireAI();
|
|
258
542
|
return this._ai.h3ai.suggestResolution(item, options);
|
|
259
543
|
}
|
|
260
544
|
|
|
545
|
+
/**
|
|
546
|
+
* Analyze H3 distribution patterns in data.
|
|
547
|
+
* @param {string} holonId - H3 holon to analyze
|
|
548
|
+
* @param {string} lensName - Lens to analyze
|
|
549
|
+
* @param {Object} [options={}] - Analysis options
|
|
550
|
+
* @returns {Promise<Object>} Distribution analysis
|
|
551
|
+
*/
|
|
261
552
|
async analyzeH3Distribution(holonId, lensName, options = {}) {
|
|
262
553
|
this._requireAI();
|
|
263
554
|
return this._ai.h3ai.analyzeDistribution(holonId, lensName, options);
|
|
264
555
|
}
|
|
265
556
|
|
|
557
|
+
/**
|
|
558
|
+
* Find relevance of neighbor H3 cells.
|
|
559
|
+
* @param {string} holonId - H3 holon ID
|
|
560
|
+
* @param {string} lensName - Lens to analyze
|
|
561
|
+
* @param {Object} [options={}] - Analysis options
|
|
562
|
+
* @returns {Promise<Object[]>} Neighbor relevance scores
|
|
563
|
+
*/
|
|
266
564
|
async findH3NeighborRelevance(holonId, lensName, options = {}) {
|
|
267
565
|
this._requireAI();
|
|
268
566
|
return this._ai.h3ai.findNeighborRelevance(holonId, lensName, options);
|
|
269
567
|
}
|
|
270
568
|
|
|
569
|
+
/**
|
|
570
|
+
* Get AI suggestion for geographic scope of item.
|
|
571
|
+
* @param {Object} item - Item to analyze
|
|
572
|
+
* @param {string} holonId - Context holon
|
|
573
|
+
* @param {string} lensName - Context lens
|
|
574
|
+
* @param {Object} [options={}] - Analysis options
|
|
575
|
+
* @returns {Promise<Object>} Geographic scope suggestion
|
|
576
|
+
*/
|
|
271
577
|
async suggestGeographicScope(item, holonId, lensName, options = {}) {
|
|
272
578
|
this._requireAI();
|
|
273
579
|
return this._ai.h3ai.suggestGeographicScope(item, holonId, lensName, options);
|
|
274
580
|
}
|
|
275
581
|
|
|
582
|
+
/**
|
|
583
|
+
* Analyze H3 coverage patterns.
|
|
584
|
+
* @param {string} holonId - H3 holon to analyze
|
|
585
|
+
* @param {string} lensName - Lens to analyze
|
|
586
|
+
* @param {Object} [options={}] - Analysis options
|
|
587
|
+
* @returns {Promise<Object>} Coverage analysis
|
|
588
|
+
*/
|
|
276
589
|
async analyzeH3Coverage(holonId, lensName, options = {}) {
|
|
277
590
|
this._requireAI();
|
|
278
591
|
return this._ai.h3ai.analyzeCoverage(holonId, lensName, options);
|
|
279
592
|
}
|
|
280
593
|
|
|
594
|
+
/**
|
|
595
|
+
* Get insights across different H3 resolutions.
|
|
596
|
+
* @param {string} holonId - H3 holon to analyze
|
|
597
|
+
* @param {string} lensName - Lens to analyze
|
|
598
|
+
* @param {Object} [options={}] - Analysis options
|
|
599
|
+
* @returns {Promise<Object>} Cross-resolution insights
|
|
600
|
+
*/
|
|
281
601
|
async crossH3ResolutionInsights(holonId, lensName, options = {}) {
|
|
282
602
|
this._requireAI();
|
|
283
603
|
return this._ai.h3ai.crossResolutionInsights(holonId, lensName, options);
|
|
284
604
|
}
|
|
285
605
|
|
|
606
|
+
/**
|
|
607
|
+
* Get AI suggestion for migrating item to different H3 resolution.
|
|
608
|
+
* @param {Object} item - Item to migrate
|
|
609
|
+
* @param {string} holonId - Current holon
|
|
610
|
+
* @param {string} lensName - Lens context
|
|
611
|
+
* @param {Object} [options={}] - Migration options
|
|
612
|
+
* @returns {Promise<Object>} Migration suggestion
|
|
613
|
+
*/
|
|
286
614
|
async suggestH3Migration(item, holonId, lensName, options = {}) {
|
|
287
615
|
this._requireAI();
|
|
288
616
|
return this._ai.h3ai.suggestMigration(item, holonId, lensName, options);
|
|
289
617
|
}
|
|
290
618
|
|
|
619
|
+
/**
|
|
620
|
+
* Generate comprehensive geographic report for holon.
|
|
621
|
+
* @param {string} holonId - H3 holon to report on
|
|
622
|
+
* @param {Object} [options={}] - Report options
|
|
623
|
+
* @returns {Promise<string>} Generated geographic report
|
|
624
|
+
*/
|
|
291
625
|
async generateH3Report(holonId, options = {}) {
|
|
292
626
|
this._requireAI();
|
|
293
627
|
return this._ai.h3ai.generateGeographicReport(holonId, options);
|
|
294
628
|
}
|
|
295
629
|
|
|
630
|
+
/**
|
|
631
|
+
* Find geographic clusters in holon data.
|
|
632
|
+
* @param {string} holonId - H3 holon to analyze
|
|
633
|
+
* @param {string} lensName - Lens to analyze
|
|
634
|
+
* @param {Object} [options={}] - Clustering options
|
|
635
|
+
* @returns {Promise<Object[]>} Identified clusters
|
|
636
|
+
*/
|
|
296
637
|
async findH3Clusters(holonId, lensName, options = {}) {
|
|
297
638
|
this._requireAI();
|
|
298
639
|
return this._ai.h3ai.findGeographicClusters(holonId, lensName, options);
|
|
299
640
|
}
|
|
300
641
|
|
|
642
|
+
/**
|
|
643
|
+
* Analyze geographic impact of an item.
|
|
644
|
+
* @param {Object} item - Item to analyze impact for
|
|
645
|
+
* @param {string} holonId - Context holon
|
|
646
|
+
* @param {string} lensName - Context lens
|
|
647
|
+
* @param {Object} [options={}] - Analysis options
|
|
648
|
+
* @returns {Promise<Object>} Impact analysis
|
|
649
|
+
*/
|
|
301
650
|
async analyzeH3Impact(item, holonId, lensName, options = {}) {
|
|
302
651
|
this._requireAI();
|
|
303
652
|
return this._ai.h3ai.analyzeGeographicImpact(item, holonId, lensName, options);
|