@affectively/aeon 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/compression/index.cjs.map +1 -1
  2. package/dist/compression/index.js.map +1 -1
  3. package/dist/core/index.d.cts +136 -66
  4. package/dist/core/index.d.ts +136 -66
  5. package/dist/crypto/index.cjs.map +1 -1
  6. package/dist/crypto/index.d.cts +310 -271
  7. package/dist/crypto/index.d.ts +310 -271
  8. package/dist/crypto/index.js.map +1 -1
  9. package/dist/distributed/index.cjs +8 -2
  10. package/dist/distributed/index.cjs.map +1 -1
  11. package/dist/distributed/index.d.cts +871 -756
  12. package/dist/distributed/index.d.ts +871 -756
  13. package/dist/distributed/index.js +8 -2
  14. package/dist/distributed/index.js.map +1 -1
  15. package/dist/index.cjs +177 -10
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +3 -3
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.js +177 -10
  20. package/dist/index.js.map +1 -1
  21. package/dist/offline/index.cjs.map +1 -1
  22. package/dist/offline/index.d.cts +128 -122
  23. package/dist/offline/index.d.ts +128 -122
  24. package/dist/offline/index.js.map +1 -1
  25. package/dist/optimization/index.cjs.map +1 -1
  26. package/dist/optimization/index.js.map +1 -1
  27. package/dist/persistence/index.cjs.map +1 -1
  28. package/dist/persistence/index.d.cts +38 -38
  29. package/dist/persistence/index.d.ts +38 -38
  30. package/dist/persistence/index.js.map +1 -1
  31. package/dist/presence/index.cjs +151 -0
  32. package/dist/presence/index.cjs.map +1 -1
  33. package/dist/presence/index.d.cts +116 -1
  34. package/dist/presence/index.d.ts +116 -1
  35. package/dist/presence/index.js +151 -0
  36. package/dist/presence/index.js.map +1 -1
  37. package/dist/{types-CMxO7QF0.d.cts → types-B7gCpNX9.d.cts} +6 -6
  38. package/dist/{types-CMxO7QF0.d.ts → types-B7gCpNX9.d.ts} +6 -6
  39. package/dist/utils/index.d.cts +4 -4
  40. package/dist/utils/index.d.ts +4 -4
  41. package/dist/versioning/index.cjs +18 -8
  42. package/dist/versioning/index.cjs.map +1 -1
  43. package/dist/versioning/index.d.cts +1 -1
  44. package/dist/versioning/index.d.ts +1 -1
  45. package/dist/versioning/index.js +18 -8
  46. package/dist/versioning/index.js.map +1 -1
  47. package/package.json +6 -2
package/dist/index.d.cts CHANGED
@@ -1,12 +1,12 @@
1
- export { BandwidthProfile, CRDTOperation, ConflictDetectionResult, EventCallback, EventUnsubscribe, IEventEmitter, NetworkState, Operation, OperationPriority, OperationStatus, OperationType, PresenceInfo, ResolutionStrategy, SyncBatch, SyncCoordinatorConfig, SyncResult, VectorClock } from './core/index.cjs';
1
+ export { BandwidthProfile, CRDTOperation, ConflictDetectionResult, EventCallback, EventUnsubscribe, IEventEmitter, NetworkState, Operation, OperationPriority, OperationStatus, OperationType, PresenceEmotion, PresenceInfo, PresenceInputState, PresenceScroll, PresenceSelection, PresenceTyping, PresenceViewport, ResolutionStrategy, SyncBatch, SyncCoordinatorConfig, SyncResult, VectorClock } from './core/index.cjs';
2
2
  export { Logger, createNamespacedLogger, disableLogging, getLogger, logger, resetLogger, setLogger } from './utils/index.cjs';
3
3
  export { DashStorageAdapter, DashStorageAdapterOptions, DashStorageBackend, DashStorageChange, DashSyncClient, InMemoryStorageAdapter } from './persistence/index.cjs';
4
- export { P as PersistedEnvelope, a as PersistenceDeserializer, b as PersistenceSerializer, S as StorageAdapter } from './types-CMxO7QF0.cjs';
4
+ export { P as PersistedEnvelope, a as PersistenceDeserializer, b as PersistenceSerializer, S as StorageAdapter } from './types-B7gCpNX9.cjs';
5
5
  export { CompatibilityRule, DataTransformer, FieldTransformer, Migration, MigrationEngine, MigrationIntegrityEntry, MigrationRecord, MigrationResult, MigrationState, MigrationTracker, MigrationTrackerOptions, MigrationTrackerPersistenceConfig, MigrationTrackerPersistenceData, RollbackPath, SchemaVersion, SchemaVersionManager, TransformationResult, TransformationRule, VersionMetadata } from './versioning/index.cjs';
6
6
  export { Handshake, MergeStrategy, ProtocolError, ReconciliationResult, Replica, ReplicationEvent, ReplicationManager, ReplicationManagerOptions, ReplicationPersistenceConfig, ReplicationPersistenceData, ReplicationPolicy, StateDiff, StateReconciler, StateVersion, SyncCoordinator, SyncEvent, SyncMessage, SyncNode, SyncProtocol, SyncProtocolOptions, SyncProtocolPersistenceConfig, SyncProtocolPersistenceData, SyncRequest, SyncResponse, SyncSession } from './distributed/index.cjs';
7
7
  export { OfflineOperation, OfflineOperationQueue, OfflineOperationQueueOptions, OfflineQueueEvents, OfflineQueuePersistenceConfig, OfflineQueueStats, getOfflineOperationQueue, resetOfflineOperationQueue } from './offline/index.cjs';
8
8
  export { CompressedBatch, CompressedChunk, CompressionEngine, CompressionStats, DeltaBatch, DeltaOperation, DeltaStats, DeltaSyncOptimizer, getCompressionEngine, getDeltaSyncOptimizer, resetCompressionEngine, resetDeltaSyncOptimizer } from './compression/index.cjs';
9
9
  export { ActivityPattern, AdaptiveCompressionOptimizer, AdaptiveStats, BatchTimingOptimizer, BatchTimingStats, CompressionRecommendation, DeviceProfile, NetworkProfile, NetworkWindow, OperationPattern, OperationPrediction, PrefetchedBatch, PrefetchingEngine, PrefetchingStats, SchedulingDecision, getAdaptiveCompressionOptimizer, getBatchTimingOptimizer, getPrefetchingEngine, resetAdaptiveCompressionOptimizer, resetBatchTimingOptimizer, resetPrefetchingEngine } from './optimization/index.cjs';
10
- export { AgentPresence, AgentPresenceManager, PresenceEvents, PresenceUpdate, clearAgentPresenceManager, getAgentPresenceManager } from './presence/index.cjs';
10
+ export { AgentEmotionState, AgentInputState, AgentPresence, AgentPresenceManager, AgentScrollState, AgentSelectionRange, AgentTypingState, AgentViewportState, PresenceEvents, PresenceUpdate, clearAgentPresenceManager, getAgentPresenceManager } from './presence/index.cjs';
11
11
  export { AEON_CAPABILITIES, AeonCapability, AeonCapabilityResult, AeonCryptoConfig, AeonEncryptionMode, AuthenticatedMessageFields, Capability, DEFAULT_CRYPTO_CONFIG, DID, DecryptionResult, DomainCategory, ECKeyPair, EncryptedPayload, EncryptionAlgorithm, ICryptoProvider, Identity, KeyPair, NullCryptoProvider, SecureNodeInfo, SecureSyncSession, SignedSyncData, SigningAlgorithm, UCANPayload, UCANToken, VerificationResult } from './crypto/index.cjs';
12
12
  import 'eventemitter3';
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- export { BandwidthProfile, CRDTOperation, ConflictDetectionResult, EventCallback, EventUnsubscribe, IEventEmitter, NetworkState, Operation, OperationPriority, OperationStatus, OperationType, PresenceInfo, ResolutionStrategy, SyncBatch, SyncCoordinatorConfig, SyncResult, VectorClock } from './core/index.js';
1
+ export { BandwidthProfile, CRDTOperation, ConflictDetectionResult, EventCallback, EventUnsubscribe, IEventEmitter, NetworkState, Operation, OperationPriority, OperationStatus, OperationType, PresenceEmotion, PresenceInfo, PresenceInputState, PresenceScroll, PresenceSelection, PresenceTyping, PresenceViewport, ResolutionStrategy, SyncBatch, SyncCoordinatorConfig, SyncResult, VectorClock } from './core/index.js';
2
2
  export { Logger, createNamespacedLogger, disableLogging, getLogger, logger, resetLogger, setLogger } from './utils/index.js';
3
3
  export { DashStorageAdapter, DashStorageAdapterOptions, DashStorageBackend, DashStorageChange, DashSyncClient, InMemoryStorageAdapter } from './persistence/index.js';
4
- export { P as PersistedEnvelope, a as PersistenceDeserializer, b as PersistenceSerializer, S as StorageAdapter } from './types-CMxO7QF0.js';
4
+ export { P as PersistedEnvelope, a as PersistenceDeserializer, b as PersistenceSerializer, S as StorageAdapter } from './types-B7gCpNX9.js';
5
5
  export { CompatibilityRule, DataTransformer, FieldTransformer, Migration, MigrationEngine, MigrationIntegrityEntry, MigrationRecord, MigrationResult, MigrationState, MigrationTracker, MigrationTrackerOptions, MigrationTrackerPersistenceConfig, MigrationTrackerPersistenceData, RollbackPath, SchemaVersion, SchemaVersionManager, TransformationResult, TransformationRule, VersionMetadata } from './versioning/index.js';
6
6
  export { Handshake, MergeStrategy, ProtocolError, ReconciliationResult, Replica, ReplicationEvent, ReplicationManager, ReplicationManagerOptions, ReplicationPersistenceConfig, ReplicationPersistenceData, ReplicationPolicy, StateDiff, StateReconciler, StateVersion, SyncCoordinator, SyncEvent, SyncMessage, SyncNode, SyncProtocol, SyncProtocolOptions, SyncProtocolPersistenceConfig, SyncProtocolPersistenceData, SyncRequest, SyncResponse, SyncSession } from './distributed/index.js';
7
7
  export { OfflineOperation, OfflineOperationQueue, OfflineOperationQueueOptions, OfflineQueueEvents, OfflineQueuePersistenceConfig, OfflineQueueStats, getOfflineOperationQueue, resetOfflineOperationQueue } from './offline/index.js';
8
8
  export { CompressedBatch, CompressedChunk, CompressionEngine, CompressionStats, DeltaBatch, DeltaOperation, DeltaStats, DeltaSyncOptimizer, getCompressionEngine, getDeltaSyncOptimizer, resetCompressionEngine, resetDeltaSyncOptimizer } from './compression/index.js';
9
9
  export { ActivityPattern, AdaptiveCompressionOptimizer, AdaptiveStats, BatchTimingOptimizer, BatchTimingStats, CompressionRecommendation, DeviceProfile, NetworkProfile, NetworkWindow, OperationPattern, OperationPrediction, PrefetchedBatch, PrefetchingEngine, PrefetchingStats, SchedulingDecision, getAdaptiveCompressionOptimizer, getBatchTimingOptimizer, getPrefetchingEngine, resetAdaptiveCompressionOptimizer, resetBatchTimingOptimizer, resetPrefetchingEngine } from './optimization/index.js';
10
- export { AgentPresence, AgentPresenceManager, PresenceEvents, PresenceUpdate, clearAgentPresenceManager, getAgentPresenceManager } from './presence/index.js';
10
+ export { AgentEmotionState, AgentInputState, AgentPresence, AgentPresenceManager, AgentScrollState, AgentSelectionRange, AgentTypingState, AgentViewportState, PresenceEvents, PresenceUpdate, clearAgentPresenceManager, getAgentPresenceManager } from './presence/index.js';
11
11
  export { AEON_CAPABILITIES, AeonCapability, AeonCapabilityResult, AeonCryptoConfig, AeonEncryptionMode, AuthenticatedMessageFields, Capability, DEFAULT_CRYPTO_CONFIG, DID, DecryptionResult, DomainCategory, ECKeyPair, EncryptedPayload, EncryptionAlgorithm, ICryptoProvider, Identity, KeyPair, NullCryptoProvider, SecureNodeInfo, SecureSyncSession, SignedSyncData, SigningAlgorithm, UCANPayload, UCANToken, VerificationResult } from './crypto/index.js';
12
12
  import 'eventemitter3';
package/dist/index.js CHANGED
@@ -1086,11 +1086,13 @@ var MigrationTracker = class _MigrationTracker {
1086
1086
  });
1087
1087
  previousHash = hash;
1088
1088
  }
1089
- const persistedMigrations = normalizedMigrations.map((migration, index) => ({
1090
- ...migration,
1091
- previousHash: integrityEntries[index]?.previousHash,
1092
- integrityHash: integrityEntries[index]?.hash
1093
- }));
1089
+ const persistedMigrations = normalizedMigrations.map(
1090
+ (migration, index) => ({
1091
+ ...migration,
1092
+ previousHash: integrityEntries[index]?.previousHash,
1093
+ integrityHash: integrityEntries[index]?.hash
1094
+ })
1095
+ );
1094
1096
  const data = {
1095
1097
  migrations: persistedMigrations,
1096
1098
  snapshots: Array.from(this.snapshots.entries()).map(
@@ -1113,7 +1115,10 @@ var MigrationTracker = class _MigrationTracker {
1113
1115
  data
1114
1116
  };
1115
1117
  const serialize = this.persistence.serializer ?? ((value) => JSON.stringify(value));
1116
- await this.persistence.adapter.setItem(this.persistence.key, serialize(envelope));
1118
+ await this.persistence.adapter.setItem(
1119
+ this.persistence.key,
1120
+ serialize(envelope)
1121
+ );
1117
1122
  }
1118
1123
  /**
1119
1124
  * Load tracker state and verify integrity chain.
@@ -1126,7 +1131,9 @@ var MigrationTracker = class _MigrationTracker {
1126
1131
  if (!raw) {
1127
1132
  return { migrations: 0, snapshots: 0 };
1128
1133
  }
1129
- const deserialize = this.persistence.deserializer ?? ((value) => JSON.parse(value));
1134
+ const deserialize = this.persistence.deserializer ?? ((value) => JSON.parse(
1135
+ value
1136
+ ));
1130
1137
  const envelope = deserialize(raw);
1131
1138
  if (envelope.version !== 1 || !envelope.data) {
1132
1139
  throw new Error("Invalid migration tracker persistence payload");
@@ -1189,7 +1196,10 @@ var MigrationTracker = class _MigrationTracker {
1189
1196
  migrations: this.migrations.length,
1190
1197
  snapshots: this.snapshots.size
1191
1198
  });
1192
- return { migrations: this.migrations.length, snapshots: this.snapshots.size };
1199
+ return {
1200
+ migrations: this.migrations.length,
1201
+ snapshots: this.snapshots.size
1202
+ };
1193
1203
  }
1194
1204
  /**
1195
1205
  * Remove persisted migration tracker state.
@@ -2275,7 +2285,10 @@ var ReplicationManager = class _ReplicationManager {
2275
2285
  data
2276
2286
  };
2277
2287
  const serialize = this.persistence.serializer ?? ((value) => JSON.stringify(value));
2278
- await this.persistence.adapter.setItem(this.persistence.key, serialize(envelope));
2288
+ await this.persistence.adapter.setItem(
2289
+ this.persistence.key,
2290
+ serialize(envelope)
2291
+ );
2279
2292
  }
2280
2293
  /**
2281
2294
  * Load replication snapshot from persistence.
@@ -2988,7 +3001,10 @@ var SyncProtocol = class _SyncProtocol {
2988
3001
  data
2989
3002
  };
2990
3003
  const serialize = this.persistence.serializer ?? ((value) => JSON.stringify(value));
2991
- await this.persistence.adapter.setItem(this.persistence.key, serialize(envelope));
3004
+ await this.persistence.adapter.setItem(
3005
+ this.persistence.key,
3006
+ serialize(envelope)
3007
+ );
2992
3008
  }
2993
3009
  /**
2994
3010
  * Load protocol state from persistence.
@@ -5339,6 +5355,157 @@ var AgentPresenceManager = class extends EventEmitter {
5339
5355
  });
5340
5356
  }
5341
5357
  }
5358
+ /**
5359
+ * Update focused node path
5360
+ */
5361
+ updateFocusNode(agentId, nodePath) {
5362
+ const presence = this.presences.get(agentId);
5363
+ if (presence) {
5364
+ presence.focusNode = nodePath;
5365
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5366
+ this.presences.set(agentId, presence);
5367
+ this.emit("focus_updated", {
5368
+ agentId,
5369
+ focusNode: nodePath
5370
+ });
5371
+ }
5372
+ }
5373
+ /**
5374
+ * Update text selection range
5375
+ */
5376
+ updateSelection(agentId, selectionRange) {
5377
+ const presence = this.presences.get(agentId);
5378
+ if (presence) {
5379
+ presence.selectionRange = selectionRange;
5380
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5381
+ this.presences.set(agentId, presence);
5382
+ this.emit("selection_updated", {
5383
+ agentId,
5384
+ selectionRange
5385
+ });
5386
+ }
5387
+ }
5388
+ /**
5389
+ * Update typing state
5390
+ */
5391
+ updateTyping(agentId, isTyping, field, isComposing = false) {
5392
+ const presence = this.presences.get(agentId);
5393
+ if (presence) {
5394
+ const now = (/* @__PURE__ */ new Date()).toISOString();
5395
+ const previous = presence.typingState;
5396
+ const typingState = {
5397
+ isTyping,
5398
+ field,
5399
+ isComposing,
5400
+ startedAt: isTyping && !previous?.isTyping ? now : isTyping ? previous?.startedAt : void 0,
5401
+ stoppedAt: isTyping ? void 0 : now
5402
+ };
5403
+ presence.typingState = typingState;
5404
+ presence.lastSeen = now;
5405
+ this.presences.set(agentId, presence);
5406
+ this.emit("typing_updated", {
5407
+ agentId,
5408
+ typingState
5409
+ });
5410
+ }
5411
+ }
5412
+ /**
5413
+ * Update scroll state
5414
+ */
5415
+ updateScroll(agentId, scrollState) {
5416
+ const presence = this.presences.get(agentId);
5417
+ if (presence) {
5418
+ presence.scrollState = {
5419
+ ...scrollState,
5420
+ depth: Math.max(0, Math.min(1, scrollState.depth))
5421
+ };
5422
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5423
+ this.presences.set(agentId, presence);
5424
+ this.emit("scroll_updated", {
5425
+ agentId,
5426
+ scrollState: presence.scrollState
5427
+ });
5428
+ }
5429
+ }
5430
+ /**
5431
+ * Update viewport size
5432
+ */
5433
+ updateViewport(agentId, width, height) {
5434
+ const presence = this.presences.get(agentId);
5435
+ if (presence) {
5436
+ presence.viewport = { width, height };
5437
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5438
+ this.presences.set(agentId, presence);
5439
+ this.emit("viewport_updated", {
5440
+ agentId,
5441
+ viewport: presence.viewport
5442
+ });
5443
+ }
5444
+ }
5445
+ /**
5446
+ * Update input state
5447
+ */
5448
+ updateInputState(agentId, inputState) {
5449
+ const presence = this.presences.get(agentId);
5450
+ if (presence) {
5451
+ presence.inputState = inputState;
5452
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5453
+ this.presences.set(agentId, presence);
5454
+ this.emit("input_state_updated", {
5455
+ agentId,
5456
+ inputState
5457
+ });
5458
+ }
5459
+ }
5460
+ /**
5461
+ * Clear input state
5462
+ */
5463
+ clearInputState(agentId) {
5464
+ const presence = this.presences.get(agentId);
5465
+ if (presence) {
5466
+ presence.inputState = void 0;
5467
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5468
+ this.presences.set(agentId, presence);
5469
+ this.emit("input_state_updated", {
5470
+ agentId,
5471
+ inputState: void 0
5472
+ });
5473
+ }
5474
+ }
5475
+ /**
5476
+ * Update emotional state
5477
+ */
5478
+ updateEmotionState(agentId, emotionState) {
5479
+ const presence = this.presences.get(agentId);
5480
+ if (presence) {
5481
+ const enrichedState = {
5482
+ ...emotionState,
5483
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
5484
+ };
5485
+ presence.emotionState = enrichedState;
5486
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5487
+ this.presences.set(agentId, presence);
5488
+ this.emit("emotion_updated", {
5489
+ agentId,
5490
+ emotionState: enrichedState
5491
+ });
5492
+ }
5493
+ }
5494
+ /**
5495
+ * Clear emotional state
5496
+ */
5497
+ clearEmotionState(agentId) {
5498
+ const presence = this.presences.get(agentId);
5499
+ if (presence) {
5500
+ presence.emotionState = void 0;
5501
+ presence.lastSeen = (/* @__PURE__ */ new Date()).toISOString();
5502
+ this.presences.set(agentId, presence);
5503
+ this.emit("emotion_updated", {
5504
+ agentId,
5505
+ emotionState: void 0
5506
+ });
5507
+ }
5508
+ }
5342
5509
  /**
5343
5510
  * Update status
5344
5511
  */