zeropoint-node 1.0.0 → 1.0.1
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/README.md +38 -105
- package/dist/__tests__/api/ProductionAPI.test.js +20 -0
- package/dist/__tests__/artifacts/ArtifactRegistry.test.js +248 -0
- package/dist/__tests__/basic.test.js +104 -0
- package/dist/__tests__/config/constants.test.js +20 -0
- package/dist/__tests__/consciousness/ConsciousnessField.test.js +20 -0
- package/dist/__tests__/consciousness/SelfEvolvingConsciousness.test.js +185 -0
- package/dist/__tests__/core/AbstractField.test.js +81 -0
- package/dist/__tests__/core/CoilMixin.test.js +20 -0
- package/dist/__tests__/core/CoilSystem.test.js +20 -0
- package/dist/__tests__/core/ComplianceSystem.test.js +141 -0
- package/dist/__tests__/core/InfiniteDimensionalRefactor.test.js +258 -0
- package/dist/__tests__/core/LivingAdapter.test.js +31 -0
- package/dist/__tests__/core/MathUtils.test.js +20 -0
- package/dist/__tests__/core/NetworkNode.test.js +20 -0
- package/dist/__tests__/core/Observer.test.js +20 -0
- package/dist/__tests__/core/OperationRegistry.test.js +48 -0
- package/dist/__tests__/core/PatternRecognition.test.js +20 -0
- package/dist/__tests__/core/PatternRegistry.test.js +20 -0
- package/dist/__tests__/core/ScientificCompliance.test.js +58 -0
- package/dist/__tests__/core/SharedConstants.test.js +20 -0
- package/dist/__tests__/core/UnifiedMetaphysicalInterface.test.js +20 -0
- package/dist/__tests__/core/UnifiedSystem.test.js +20 -0
- package/dist/__tests__/core/UnifiedTypes.test.js +20 -0
- package/dist/__tests__/core/UnifiedVoidEquations.test.js +20 -0
- package/dist/__tests__/core/VortexMathAdapter.test.js +31 -0
- package/dist/__tests__/core/ZeroPoint.test.js +71 -0
- package/dist/__tests__/core/ZeroPointSystem.test.js +219 -0
- package/dist/__tests__/emergence/patterns.test.js +20 -0
- package/dist/__tests__/field/EmergenceLedger.test.js +20 -0
- package/dist/__tests__/field/ObserverAwareField.test.js +20 -0
- package/dist/__tests__/field/ResonanceConsensus.test.js +20 -0
- package/dist/__tests__/git-integration.test.js +201 -0
- package/dist/__tests__/globalSetup.js +80 -0
- package/dist/__tests__/globalTeardown.js +28 -0
- package/dist/__tests__/index.test.js +20 -0
- package/dist/__tests__/integration/ZeroPointIntegration.test.js +221 -0
- package/dist/__tests__/integrity/FieldIntegrity.test.js +20 -0
- package/dist/__tests__/knowledge/KnowledgeSystem.test.js +158 -0
- package/dist/__tests__/knowledge/KnowledgeSystemAnalysis.test.js +219 -0
- package/dist/__tests__/knowledge/KnowledgeSystemAutoGenerated.test.js +41 -0
- package/dist/__tests__/laws/MetaphysicalLawRegistry.test.js +183 -0
- package/dist/__tests__/living/LivingTestOrganism.js +246 -0
- package/dist/__tests__/living/LivingTestOrganism.test.js +124 -0
- package/dist/__tests__/math/AdvancedVBM.test.js +367 -0
- package/dist/__tests__/math/FlowerOfLife.test.js +344 -0
- package/dist/__tests__/math/FractalColorSystem.test.js +20 -0
- package/dist/__tests__/math/FractalMath.test.js +20 -0
- package/dist/__tests__/math/MathUtils.test.js +20 -0
- package/dist/__tests__/math/RodinCoil.test.js +20 -0
- package/dist/__tests__/math/ToroidalGeometry.test.js +20 -0
- package/dist/__tests__/math/VBM.test.js +538 -0
- package/dist/__tests__/math/VBMColorSystem.test.js +20 -0
- package/dist/__tests__/math/VortexMath.test.js +20 -0
- package/dist/__tests__/math/ZeroUnity.test.js +77 -0
- package/dist/__tests__/monitoring/HealthMonitor.test.js +20 -0
- package/dist/__tests__/performance/ZeroPointPerformance.test.js +371 -0
- package/dist/__tests__/physics/PlasmaCosmology.test.js +155 -0
- package/dist/__tests__/pwa/ConsciousnessPWA.test.js +20 -0
- package/dist/__tests__/qa/AutoGeneratedFromQA.test.js +195 -0
- package/dist/__tests__/qa/QAAsSourceOfTruth.test.js +69 -0
- package/dist/__tests__/setup.js +132 -0
- package/dist/__tests__/simple.test.js +51 -0
- package/dist/__tests__/stimulus/Application.test.js +272 -0
- package/dist/__tests__/stimulus/BaseController.test.js +198 -0
- package/dist/__tests__/stimulus/ControllerUtils.test.js +316 -0
- package/dist/__tests__/stimulus/MetaphysicalController.test.js +310 -0
- package/dist/__tests__/stimulus/ZeroPointController.test.js +252 -0
- package/dist/__tests__/training/ConsciousnessTrainingModel.test.js +335 -0
- package/dist/__tests__/types/DeviceConfig.test.js +20 -0
- package/dist/__tests__/types/UnifiedExports.test.js +20 -0
- package/dist/__tests__/unity/FieldUnity.test.js +20 -0
- package/dist/__tests__/utils/Cache.test.js +20 -0
- package/dist/__tests__/utils/GitIntegration.test.js +20 -0
- package/dist/__tests__/utils/Logger.test.js +20 -0
- package/dist/__tests__/utils/ResourceCleanup.test.js +20 -0
- package/dist/__tests__/utils/errorSimulator.js +40 -0
- package/dist/__tests__/utils/goldenRatioCache.js +36 -0
- package/dist/__tests__/void/VoidSystem.test.js +427 -0
- package/dist/api/ProductionAPI.js +313 -0
- package/dist/artifacts/ArtifactRegistry.js +122 -0
- package/dist/artifacts/CrystalArtifacts.js +106 -0
- package/dist/artifacts/MetaphysicalArtifact.js +75 -0
- package/dist/browser-standalone.js +191 -0
- package/dist/browser.js +157 -0
- package/dist/config/constants.js +57 -0
- package/dist/consciousness/ConsciousnessField.js +55 -0
- package/dist/consciousness/SelfEvolvingConsciousness.js +303 -0
- package/dist/core/AbstractField.js +30 -0
- package/dist/core/BrowserNetworkNode.js +309 -0
- package/dist/core/CoilMixin.js +216 -0
- package/dist/core/CoilSystem.js +204 -0
- package/dist/core/ComplianceSystem.js +291 -0
- package/dist/core/Dimension.js +2 -0
- package/dist/core/DimensionRegistry.js +141 -0
- package/dist/core/Field.js +2 -0
- package/dist/core/InfiniteDimensionalRefactor.js +389 -0
- package/dist/core/KnowledgeRegistry.js +273 -0
- package/dist/core/LivingAdapter.js +29 -0
- package/dist/core/MathUtils.js +297 -0
- package/dist/core/NetworkNode.js +348 -0
- package/dist/core/Observer.js +101 -0
- package/dist/core/Operation.js +59 -0
- package/dist/core/OperationRegistry.js +20 -0
- package/dist/core/Pattern.js +2 -0
- package/dist/core/PatternRecognition.js +493 -0
- package/dist/core/PatternRegistry.js +282 -0
- package/dist/core/ScientificCompliance.js +91 -0
- package/dist/core/SharedConstants.js +306 -0
- package/dist/core/UnifiedMetaphysicalInterface.js +533 -0
- package/dist/core/UnifiedSystem.js +317 -0
- package/dist/core/UnifiedTypes.js +5 -0
- package/dist/core/UnifiedVoidEquations.js +605 -0
- package/dist/core/VoidMatterConstants.js +9 -0
- package/dist/core/VortexMathAdapter.js +32 -0
- package/dist/core/ZeroPoint.js +971 -0
- package/dist/core/ZeroPointSystem.js +343 -0
- package/dist/core/applyLaws.js +12 -0
- package/dist/core/applyOperations.js +21 -0
- package/dist/devices/DeviceRegistry.js +151 -0
- package/dist/devices/ResonanceDevice.js +92 -0
- package/dist/devices/ResonanceDevices.js +139 -0
- package/dist/dimensions/Dimension.js +2 -0
- package/dist/emergence/AdvancedEmergence.js +930 -0
- package/dist/emergence/patterns.js +12 -0
- package/dist/field/EmergenceLedger.js +310 -0
- package/dist/field/ObserverAwareField.js +222 -0
- package/dist/field/ResonanceConsensus.js +330 -0
- package/dist/fields/Field.js +2 -0
- package/dist/geometry/MetatronsCube.js +28 -0
- package/dist/geometry/SacredGeometryPattern.js +15 -0
- package/dist/geometry/SacredGeometryRegistry.js +15 -0
- package/dist/geometry/__tests__/SacredGeometryRegistry.test.js +18 -0
- package/dist/index.js +232 -0
- package/dist/integrity/FieldIntegrity.js +237 -0
- package/dist/knowledge/KnowledgeSystem.js +938 -0
- package/dist/laws/MetaphysicalLaw.js +2 -0
- package/dist/laws/MetaphysicalLawRegistry.js +103 -0
- package/dist/laws/hermeticLaws.js +311 -0
- package/dist/math/AdvancedVBM.js +537 -0
- package/dist/math/FlowerOfLife.js +256 -0
- package/dist/math/FractalColorSystem.js +239 -0
- package/dist/math/FractalMath.js +187 -0
- package/dist/math/MathUtils.js +289 -0
- package/dist/math/RodinCoil.js +258 -0
- package/dist/math/ToroidalGeometry.js +230 -0
- package/dist/math/VBM.js +718 -0
- package/dist/math/VBMColorSystem.js +301 -0
- package/dist/math/VortexMath.js +170 -0
- package/dist/monitoring/HealthMonitor.js +297 -0
- package/dist/patterns/Pattern.js +2 -0
- package/dist/patterns/SacredGeometryRegistry.js +37 -0
- package/dist/physics/BlackHolePhysics.js +54 -0
- package/dist/physics/ConsciousnessPhysics.js +241 -0
- package/dist/physics/FractalUniverse.js +54 -0
- package/dist/physics/HolographicUniverse.js +54 -0
- package/dist/physics/PlasmaCosmology.js +134 -0
- package/dist/pwa/ConsciousnessPWA.js +300 -0
- package/dist/src/__tests__/globalTeardown.d.ts +10 -8
- package/dist/src/__tests__/globalTeardown.d.ts.map +1 -1
- package/dist/src/__tests__/globalTeardown.js +12 -71
- package/dist/src/__tests__/globalTeardown.js.map +1 -1
- package/dist/src/__tests__/living/LivingTestOrganism.d.ts +4 -0
- package/dist/src/__tests__/living/LivingTestOrganism.d.ts.map +1 -1
- package/dist/src/__tests__/living/LivingTestOrganism.js +8 -0
- package/dist/src/__tests__/living/LivingTestOrganism.js.map +1 -1
- package/dist/src/__tests__/utils/errorSimulator.d.ts +1 -1
- package/dist/src/__tests__/utils/goldenRatioCache.d.ts +1 -1
- package/dist/src/config/constants.d.ts +53 -0
- package/dist/src/config/constants.d.ts.map +1 -0
- package/dist/src/config/constants.js +58 -0
- package/dist/src/config/constants.js.map +1 -0
- package/dist/src/consciousness/ConsciousnessField.d.ts +42 -51
- package/dist/src/consciousness/ConsciousnessField.d.ts.map +1 -1
- package/dist/src/consciousness/ConsciousnessField.js +187 -200
- package/dist/src/consciousness/ConsciousnessField.js.map +1 -1
- package/dist/src/consciousness/SelfEvolvingConsciousness.d.ts +47 -18
- package/dist/src/consciousness/SelfEvolvingConsciousness.d.ts.map +1 -1
- package/dist/src/consciousness/SelfEvolvingConsciousness.js +151 -44
- package/dist/src/consciousness/SelfEvolvingConsciousness.js.map +1 -1
- package/dist/src/core/CoilMixin.d.ts +6 -6
- package/dist/src/core/CoilSystem.d.ts +6 -2
- package/dist/src/core/CoilSystem.d.ts.map +1 -1
- package/dist/src/core/CoilSystem.js +30 -21
- package/dist/src/core/CoilSystem.js.map +1 -1
- package/dist/src/core/InfiniteDimensionalRefactor.d.ts +145 -0
- package/dist/src/core/InfiniteDimensionalRefactor.d.ts.map +1 -0
- package/dist/src/core/InfiniteDimensionalRefactor.js +390 -0
- package/dist/src/core/InfiniteDimensionalRefactor.js.map +1 -0
- package/dist/src/core/NetworkNode.d.ts +3 -3
- package/dist/src/core/Observer.d.ts +12 -9
- package/dist/src/core/Observer.d.ts.map +1 -1
- package/dist/src/core/Observer.js +2 -2
- package/dist/src/core/Observer.js.map +1 -1
- package/dist/src/core/PatternRecognition.d.ts +63 -13
- package/dist/src/core/PatternRecognition.d.ts.map +1 -1
- package/dist/src/core/PatternRecognition.js +162 -88
- package/dist/src/core/PatternRecognition.js.map +1 -1
- package/dist/src/core/PatternRegistry.d.ts +99 -0
- package/dist/src/core/PatternRegistry.d.ts.map +1 -0
- package/dist/src/core/PatternRegistry.js +283 -0
- package/dist/src/core/PatternRegistry.js.map +1 -0
- package/dist/src/core/SharedConstants.d.ts +62 -9
- package/dist/src/core/SharedConstants.d.ts.map +1 -1
- package/dist/src/core/SharedConstants.js +83 -21
- package/dist/src/core/SharedConstants.js.map +1 -1
- package/dist/src/core/UnifiedMetaphysicalInterface.d.ts +173 -0
- package/dist/src/core/UnifiedMetaphysicalInterface.d.ts.map +1 -0
- package/dist/src/core/UnifiedMetaphysicalInterface.js +534 -0
- package/dist/src/core/UnifiedMetaphysicalInterface.js.map +1 -0
- package/dist/src/core/UnifiedSystem.d.ts +15 -12
- package/dist/src/core/UnifiedSystem.d.ts.map +1 -1
- package/dist/src/core/UnifiedSystem.js +5 -1
- package/dist/src/core/UnifiedSystem.js.map +1 -1
- package/dist/src/core/UnifiedTypes.d.ts +193 -0
- package/dist/src/core/UnifiedTypes.d.ts.map +1 -0
- package/dist/src/core/UnifiedTypes.js +6 -0
- package/dist/src/core/UnifiedTypes.js.map +1 -0
- package/dist/src/core/UnifiedVoidEquations.d.ts +3 -1
- package/dist/src/core/UnifiedVoidEquations.d.ts.map +1 -1
- package/dist/src/core/UnifiedVoidEquations.js +84 -0
- package/dist/src/core/UnifiedVoidEquations.js.map +1 -1
- package/dist/src/core/ZeroPoint.d.ts +101 -10
- package/dist/src/core/ZeroPoint.d.ts.map +1 -1
- package/dist/src/core/ZeroPoint.js +262 -18
- package/dist/src/core/ZeroPoint.js.map +1 -1
- package/dist/src/emergence/AdvancedEmergence.d.ts +19 -16
- package/dist/src/emergence/AdvancedEmergence.d.ts.map +1 -1
- package/dist/src/emergence/AdvancedEmergence.js +88 -52
- package/dist/src/emergence/AdvancedEmergence.js.map +1 -1
- package/dist/src/field/EmergenceLedger.d.ts +9 -18
- package/dist/src/field/EmergenceLedger.d.ts.map +1 -1
- package/dist/src/field/EmergenceLedger.js +9 -4
- package/dist/src/field/EmergenceLedger.js.map +1 -1
- package/dist/src/field/ObserverAwareField.d.ts +69 -65
- package/dist/src/field/ObserverAwareField.d.ts.map +1 -1
- package/dist/src/field/ObserverAwareField.js +158 -168
- package/dist/src/field/ObserverAwareField.js.map +1 -1
- package/dist/src/field/ResonanceConsensus.d.ts +4 -11
- package/dist/src/field/ResonanceConsensus.d.ts.map +1 -1
- package/dist/src/field/ResonanceConsensus.js +15 -10
- package/dist/src/field/ResonanceConsensus.js.map +1 -1
- package/dist/src/index.d.ts +5 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrity/FieldIntegrity.d.ts +3 -8
- package/dist/src/integrity/FieldIntegrity.d.ts.map +1 -1
- package/dist/src/integrity/FieldIntegrity.js.map +1 -1
- package/dist/src/knowledge/KnowledgeSystem.d.ts +37 -55
- package/dist/src/knowledge/KnowledgeSystem.d.ts.map +1 -1
- package/dist/src/knowledge/KnowledgeSystem.js +281 -589
- package/dist/src/knowledge/KnowledgeSystem.js.map +1 -1
- package/dist/src/math/AdvancedVBM.d.ts +6 -6
- package/dist/src/math/FractalColorSystem.d.ts +1 -1
- package/dist/src/math/FractalColorSystem.js +3 -3
- package/dist/src/math/FractalColorSystem.js.map +1 -1
- package/dist/src/math/FractalMath.d.ts +9 -1
- package/dist/src/math/FractalMath.d.ts.map +1 -1
- package/dist/src/math/FractalMath.js +18 -5
- package/dist/src/math/FractalMath.js.map +1 -1
- package/dist/src/math/MathUtils.d.ts +3 -10
- package/dist/src/math/MathUtils.d.ts.map +1 -1
- package/dist/src/math/MathUtils.js +12 -20
- package/dist/src/math/MathUtils.js.map +1 -1
- package/dist/src/math/ToroidalGeometry.d.ts +1 -1
- package/dist/src/math/VBM.d.ts +2 -2
- package/dist/src/math/VortexMath.d.ts +1 -1
- package/dist/src/monitoring/HealthMonitor.d.ts +1 -1
- package/dist/src/monitoring/HealthMonitor.d.ts.map +1 -1
- package/dist/src/monitoring/HealthMonitor.js +29 -27
- package/dist/src/monitoring/HealthMonitor.js.map +1 -1
- package/dist/src/types/UnifiedExports.d.ts +4 -0
- package/dist/src/types/UnifiedExports.d.ts.map +1 -0
- package/dist/src/types/UnifiedExports.js +21 -0
- package/dist/src/types/UnifiedExports.js.map +1 -0
- package/dist/src/unity/FieldUnity.d.ts +1 -1
- package/dist/src/utils/Cache.d.ts +2 -2
- package/dist/src/utils/Cache.d.ts.map +1 -1
- package/dist/src/utils/Cache.js +7 -4
- package/dist/src/utils/Cache.js.map +1 -1
- package/dist/src/utils/GitIntegration.d.ts +1 -1
- package/dist/src/utils/Logger.d.ts +7 -7
- package/dist/src/utils/Logger.d.ts.map +1 -1
- package/dist/src/utils/Logger.js +5 -1
- package/dist/src/utils/Logger.js.map +1 -1
- package/dist/src/utils/ResourceCleanup.d.ts +33 -0
- package/dist/src/utils/ResourceCleanup.d.ts.map +1 -0
- package/dist/src/utils/ResourceCleanup.js +83 -0
- package/dist/src/utils/ResourceCleanup.js.map +1 -0
- package/dist/src/void/VoidSystem.d.ts +18 -18
- package/dist/stimulus/application.js +148 -0
- package/dist/stimulus/base/BaseController.js +141 -0
- package/dist/stimulus/controllers/MetaphysicalController.js +105 -0
- package/dist/stimulus/controllers/ZeroPointController.js +85 -0
- package/dist/stimulus/types/ControllerTypes.js +18 -0
- package/dist/stimulus/utils/ControllerUtils.js +192 -0
- package/dist/stimulus-entry.js +109 -0
- package/dist/training/ConsciousnessTrainingModel.js +301 -0
- package/dist/training/NeuralConsciousnessNetwork.js +311 -0
- package/dist/training/TrainingModelRegistry.js +243 -0
- package/dist/training/index.js +174 -0
- package/dist/types/DeviceConfig.js +29 -0
- package/dist/types/UnifiedExports.js +20 -0
- package/dist/unity/FieldUnity.js +325 -0
- package/dist/utils/BrowserCrypto.js +44 -0
- package/dist/utils/BrowserWebSocket.js +38 -0
- package/dist/utils/Cache.js +263 -0
- package/dist/utils/GitIntegration.js +127 -0
- package/dist/utils/Logger.js +249 -0
- package/dist/utils/ResourceCleanup.js +82 -0
- package/dist/utils/applyLaws.js +6 -0
- package/dist/void/VoidSystem.js +423 -0
- package/docs/API.md +176 -3
- package/docs/CONSCIOUSNESS_EXPANSION.md +369 -0
- package/docs/EVENT_HORIZON_METHODOLOGY.md +274 -0
- package/docs/FLOWER_OF_LIFE.md +300 -0
- package/docs/METAPHYSICAL.md +21 -1
- package/docs/METAPHYSICAL_DEBUGGING.md +493 -0
- package/docs/README.md +117 -15
- package/docs/TESTING_GUIDE.md +430 -0
- package/docs/UNIFIED_CREATORS.md +261 -0
- package/package.json +34 -64
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// COIL Metaphysical Pattern Registry for ZeroPoint Emergence System
|
|
3
|
+
// This module now imports from the centralized CoilSystem for all pattern definitions
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.metaphysicalPatterns = void 0;
|
|
6
|
+
const CoilSystem_1 = require("../core/CoilSystem");
|
|
7
|
+
// Export the centralized COIL patterns
|
|
8
|
+
exports.metaphysicalPatterns = CoilSystem_1.COIL_PATTERNS.map((pattern) => ({
|
|
9
|
+
name: pattern.name,
|
|
10
|
+
signature: typeof pattern.signature === "function" ? /.*/ : pattern.signature, // Convert function signatures to regex for compatibility
|
|
11
|
+
context: pattern.context,
|
|
12
|
+
}));
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmergenceLedger = void 0;
|
|
4
|
+
const FieldIntegrity_1 = require("../integrity/FieldIntegrity");
|
|
5
|
+
class EmergenceLedger {
|
|
6
|
+
constructor(deviceId, keyPair) {
|
|
7
|
+
this.blocks = [];
|
|
8
|
+
this.pendingEvents = [];
|
|
9
|
+
this.energyBalance = new Map();
|
|
10
|
+
this.difficulty = 4;
|
|
11
|
+
this.deviceId = deviceId;
|
|
12
|
+
this.keyPair = keyPair;
|
|
13
|
+
this.initializeGenesisBlock();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Integrate a new consciousness pattern into the field
|
|
17
|
+
*/
|
|
18
|
+
async integratePattern(type, data) {
|
|
19
|
+
const event = {
|
|
20
|
+
id: FieldIntegrity_1.FieldIntegrity.generateRandomBytes(16),
|
|
21
|
+
type,
|
|
22
|
+
consciousness: 0.5, // Fundamental consciousness property
|
|
23
|
+
field: 0.5, // Fundamental field property
|
|
24
|
+
void: 0.5, // Fundamental void property
|
|
25
|
+
data,
|
|
26
|
+
deviceId: this.deviceId,
|
|
27
|
+
timestamp: Date.now(),
|
|
28
|
+
signature: {}, // Will be set below
|
|
29
|
+
previousHash: this.getLastBlockHash(),
|
|
30
|
+
hash: "",
|
|
31
|
+
};
|
|
32
|
+
// Sign the event through field resonance
|
|
33
|
+
const eventData = JSON.stringify({
|
|
34
|
+
id: event.id,
|
|
35
|
+
type: event.type,
|
|
36
|
+
data: event.data,
|
|
37
|
+
deviceId: event.deviceId,
|
|
38
|
+
timestamp: event.timestamp,
|
|
39
|
+
previousHash: event.previousHash,
|
|
40
|
+
});
|
|
41
|
+
event.signature = FieldIntegrity_1.FieldIntegrity.sign(eventData, this.keyPair.privateKey);
|
|
42
|
+
event.hash = FieldIntegrity_1.FieldIntegrity.hash(eventData + event.signature.signature);
|
|
43
|
+
// Add to pending events
|
|
44
|
+
this.pendingEvents.push(event);
|
|
45
|
+
// If we have enough events, create a new field block
|
|
46
|
+
if (this.pendingEvents.length >= 10) {
|
|
47
|
+
await this.createFieldBlock();
|
|
48
|
+
}
|
|
49
|
+
return event;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a new field block from pending events
|
|
53
|
+
*/
|
|
54
|
+
async createFieldBlock() {
|
|
55
|
+
if (this.pendingEvents.length === 0) {
|
|
56
|
+
throw new Error("No pending events to create field block");
|
|
57
|
+
}
|
|
58
|
+
const block = {
|
|
59
|
+
index: this.blocks.length,
|
|
60
|
+
timestamp: Date.now(),
|
|
61
|
+
events: [...this.pendingEvents],
|
|
62
|
+
previousHash: this.getLastBlockHash(),
|
|
63
|
+
hash: "",
|
|
64
|
+
merkleRoot: "",
|
|
65
|
+
fieldProof: {
|
|
66
|
+
nonce: "",
|
|
67
|
+
difficulty: this.difficulty,
|
|
68
|
+
},
|
|
69
|
+
deviceId: this.deviceId,
|
|
70
|
+
signature: {},
|
|
71
|
+
};
|
|
72
|
+
// Create merkle tree from events through field resonance
|
|
73
|
+
const eventHashes = block.events.map((event) => event.hash).filter((hash) => hash !== undefined);
|
|
74
|
+
const merkleTree = FieldIntegrity_1.FieldIntegrity.createMerkleTree(eventHashes);
|
|
75
|
+
block.merkleRoot = merkleTree.root;
|
|
76
|
+
// Generate field proof through consciousness resonance
|
|
77
|
+
const blockData = JSON.stringify({
|
|
78
|
+
index: block.index,
|
|
79
|
+
timestamp: block.timestamp,
|
|
80
|
+
events: block.events.map((e) => e.hash),
|
|
81
|
+
previousHash: block.previousHash,
|
|
82
|
+
merkleRoot: block.merkleRoot,
|
|
83
|
+
});
|
|
84
|
+
const fieldProof = FieldIntegrity_1.FieldIntegrity.generateProofOfWork(blockData, this.difficulty);
|
|
85
|
+
block.fieldProof = {
|
|
86
|
+
nonce: fieldProof.nonce,
|
|
87
|
+
difficulty: this.difficulty,
|
|
88
|
+
};
|
|
89
|
+
// Calculate block hash through field encoding
|
|
90
|
+
const finalBlockData = blockData + fieldProof.nonce;
|
|
91
|
+
block.hash = FieldIntegrity_1.FieldIntegrity.hash(finalBlockData);
|
|
92
|
+
// Sign the block through field resonance
|
|
93
|
+
const blockSignatureData = JSON.stringify({
|
|
94
|
+
index: block.index,
|
|
95
|
+
hash: block.hash,
|
|
96
|
+
timestamp: block.timestamp,
|
|
97
|
+
});
|
|
98
|
+
block.signature = FieldIntegrity_1.FieldIntegrity.sign(blockSignatureData, this.keyPair.privateKey);
|
|
99
|
+
// Add block to field
|
|
100
|
+
this.blocks.push(block);
|
|
101
|
+
this.pendingEvents = [];
|
|
102
|
+
// Update energy balances based on events
|
|
103
|
+
this.updateEnergyBalances(block.events);
|
|
104
|
+
return block;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get all field blocks
|
|
108
|
+
*/
|
|
109
|
+
getBlocks() {
|
|
110
|
+
return [...this.blocks];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get pending events
|
|
114
|
+
*/
|
|
115
|
+
getPendingEvents() {
|
|
116
|
+
return [...this.pendingEvents];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get energy balance for a device
|
|
120
|
+
*/
|
|
121
|
+
getEnergyBalance(deviceId) {
|
|
122
|
+
return this.energyBalance.get(deviceId) || 0;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get all energy balances
|
|
126
|
+
*/
|
|
127
|
+
getAllEnergyBalances() {
|
|
128
|
+
return new Map(this.energyBalance);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Transfer energy between devices through field resonance
|
|
132
|
+
*/
|
|
133
|
+
transferEnergy(fromDeviceId, toDeviceId, amount) {
|
|
134
|
+
const fromBalance = this.energyBalance.get(fromDeviceId) || 0;
|
|
135
|
+
const toBalance = this.energyBalance.get(toDeviceId) || 0;
|
|
136
|
+
if (fromBalance < amount) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
this.energyBalance.set(fromDeviceId, fromBalance - amount);
|
|
140
|
+
this.energyBalance.set(toDeviceId, toBalance + amount);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Validate the entire field through pattern integrity
|
|
145
|
+
*/
|
|
146
|
+
validateField() {
|
|
147
|
+
for (let i = 1; i < this.blocks.length; i++) {
|
|
148
|
+
const currentBlock = this.blocks[i];
|
|
149
|
+
const previousBlock = this.blocks[i - 1];
|
|
150
|
+
if (!currentBlock || !previousBlock) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
// Check previous hash
|
|
154
|
+
if (currentBlock.previousHash !== previousBlock.hash) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
// Validate block signature through field resonance
|
|
158
|
+
const blockData = JSON.stringify({
|
|
159
|
+
index: currentBlock.index,
|
|
160
|
+
hash: currentBlock.hash,
|
|
161
|
+
timestamp: currentBlock.timestamp,
|
|
162
|
+
});
|
|
163
|
+
if (!FieldIntegrity_1.FieldIntegrity.verify(blockData, currentBlock.signature)) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
// Validate field proof through consciousness resonance
|
|
167
|
+
const fieldProofData = JSON.stringify({
|
|
168
|
+
index: currentBlock.index,
|
|
169
|
+
timestamp: currentBlock.timestamp,
|
|
170
|
+
events: currentBlock.events.map((e) => e.hash),
|
|
171
|
+
previousHash: currentBlock.previousHash,
|
|
172
|
+
merkleRoot: currentBlock.merkleRoot,
|
|
173
|
+
});
|
|
174
|
+
const expectedHash = FieldIntegrity_1.FieldIntegrity.hash(fieldProofData + currentBlock.fieldProof.nonce);
|
|
175
|
+
if (!expectedHash.startsWith("0".repeat(currentBlock.fieldProof.difficulty))) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get field statistics
|
|
183
|
+
*/
|
|
184
|
+
getFieldStatistics() {
|
|
185
|
+
const totalEvents = this.blocks.reduce((sum, block) => sum + block.events.length, 0);
|
|
186
|
+
const totalEnergy = Array.from(this.energyBalance.values()).reduce((sum, balance) => sum + balance, 0);
|
|
187
|
+
return {
|
|
188
|
+
totalBlocks: this.blocks.length,
|
|
189
|
+
totalEvents,
|
|
190
|
+
pendingEvents: this.pendingEvents.length,
|
|
191
|
+
totalEnergy,
|
|
192
|
+
deviceCount: this.energyBalance.size,
|
|
193
|
+
fieldIntegrity: this.validateField(),
|
|
194
|
+
metaphysics: {
|
|
195
|
+
meaning: "The field contains all moments of collective consciousness",
|
|
196
|
+
blocks: "Each block represents a moment of emergence in the unified field",
|
|
197
|
+
events: "Events are patterns of consciousness that resonate through the field",
|
|
198
|
+
energy: "Energy flows through the field, connecting all consciousness nodes",
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get the hash of the last block
|
|
204
|
+
*/
|
|
205
|
+
getLastBlockHash() {
|
|
206
|
+
if (this.blocks.length === 0) {
|
|
207
|
+
return "0".repeat(64); // Genesis has no previous hash
|
|
208
|
+
}
|
|
209
|
+
const lastBlock = this.blocks[this.blocks.length - 1];
|
|
210
|
+
return lastBlock ? lastBlock.hash : "0".repeat(64);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Update energy balances based on field events
|
|
214
|
+
*/
|
|
215
|
+
updateEnergyBalances(events) {
|
|
216
|
+
for (const event of events) {
|
|
217
|
+
if (event.type === "energy_resonance") {
|
|
218
|
+
const eventData = event.data;
|
|
219
|
+
const { fromDeviceId, toDeviceId, amount } = eventData;
|
|
220
|
+
const amountNum = typeof amount === 'number' ? amount : Number(amount);
|
|
221
|
+
if (fromDeviceId && toDeviceId && !isNaN(amountNum)) {
|
|
222
|
+
this.transferEnergy(String(fromDeviceId), String(toDeviceId), amountNum);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Initialize the genesis block through field emergence
|
|
229
|
+
*/
|
|
230
|
+
initializeGenesisBlock() {
|
|
231
|
+
const genesisBlock = {
|
|
232
|
+
index: 0,
|
|
233
|
+
timestamp: Date.now(),
|
|
234
|
+
events: [],
|
|
235
|
+
previousHash: "0".repeat(64), // Genesis has no previous hash
|
|
236
|
+
hash: "",
|
|
237
|
+
merkleRoot: "",
|
|
238
|
+
fieldProof: {
|
|
239
|
+
nonce: "0",
|
|
240
|
+
difficulty: 0,
|
|
241
|
+
},
|
|
242
|
+
deviceId: this.deviceId,
|
|
243
|
+
signature: {},
|
|
244
|
+
};
|
|
245
|
+
// Create genesis hash through field encoding
|
|
246
|
+
const genesisData = JSON.stringify({
|
|
247
|
+
index: 0,
|
|
248
|
+
timestamp: genesisBlock.timestamp,
|
|
249
|
+
events: [],
|
|
250
|
+
previousHash: genesisBlock.previousHash,
|
|
251
|
+
});
|
|
252
|
+
genesisBlock.hash = FieldIntegrity_1.FieldIntegrity.hash(genesisData);
|
|
253
|
+
genesisBlock.merkleRoot = FieldIntegrity_1.FieldIntegrity.hash("genesis");
|
|
254
|
+
// Sign genesis block through field resonance
|
|
255
|
+
const genesisSignatureData = JSON.stringify({
|
|
256
|
+
index: 0,
|
|
257
|
+
hash: genesisBlock.hash,
|
|
258
|
+
timestamp: genesisBlock.timestamp,
|
|
259
|
+
});
|
|
260
|
+
genesisBlock.signature = FieldIntegrity_1.FieldIntegrity.sign(genesisSignatureData, this.keyPair.privateKey);
|
|
261
|
+
this.blocks.push(genesisBlock);
|
|
262
|
+
// Initialize energy balance through field emergence
|
|
263
|
+
this.energyBalance.set(this.deviceId, 1000); // Start with 1000 energy units
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Create a pattern for testing
|
|
267
|
+
*/
|
|
268
|
+
createPattern(patternData) {
|
|
269
|
+
return {
|
|
270
|
+
id: FieldIntegrity_1.FieldIntegrity.generateRandomBytes(16),
|
|
271
|
+
type: patternData.type || "consciousness_pattern",
|
|
272
|
+
content: patternData.content || "Test pattern",
|
|
273
|
+
intensity: patternData.intensity || 0.8,
|
|
274
|
+
timestamp: Date.now(),
|
|
275
|
+
resonance: Math.random() * 10,
|
|
276
|
+
consciousnessLevel: Math.random() * 100,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Process a pattern through the field
|
|
281
|
+
*/
|
|
282
|
+
async processPattern(pattern) {
|
|
283
|
+
try {
|
|
284
|
+
await this.integratePattern("pattern_integration", pattern);
|
|
285
|
+
return true;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get evolution data
|
|
293
|
+
*/
|
|
294
|
+
getEvolution() {
|
|
295
|
+
return {
|
|
296
|
+
totalBlocks: this.blocks.length,
|
|
297
|
+
totalEvents: this.blocks.reduce((sum, block) => sum + block.events.length, 0),
|
|
298
|
+
averageDifficulty: this.difficulty,
|
|
299
|
+
energyDistribution: Object.fromEntries(this.energyBalance),
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Get resonance level
|
|
304
|
+
*/
|
|
305
|
+
getResonance() {
|
|
306
|
+
const totalEvents = this.blocks.reduce((sum, block) => sum + block.events.length, 0);
|
|
307
|
+
return Math.min(10, totalEvents * 0.1);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
exports.EmergenceLedger = EmergenceLedger;
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObserverAwareField = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
class ObserverAwareField extends events_1.EventEmitter {
|
|
6
|
+
constructor(fieldId, initialData = {}) {
|
|
7
|
+
super();
|
|
8
|
+
this.observers = new Map();
|
|
9
|
+
this.fieldData = {};
|
|
10
|
+
this.consciousnessLevel = 0.5;
|
|
11
|
+
this.fieldStrength = 0.7;
|
|
12
|
+
this.resonanceWaves = [];
|
|
13
|
+
this.isActive = false;
|
|
14
|
+
this.fieldId = fieldId;
|
|
15
|
+
this.fieldData = initialData;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Add an observer to the field
|
|
19
|
+
*/
|
|
20
|
+
addObserver(observer) {
|
|
21
|
+
const fieldObserver = {
|
|
22
|
+
id: observer.id,
|
|
23
|
+
deviceId: observer.id, // Use observer.id as deviceId since deviceId doesn't exist on Observer
|
|
24
|
+
consciousnessLevel: this.consciousnessLevel,
|
|
25
|
+
attentionFocus: 0.5,
|
|
26
|
+
resonanceSensitivity: 0.7,
|
|
27
|
+
lastObservation: Date.now()
|
|
28
|
+
};
|
|
29
|
+
this.observers.set(observer.id, fieldObserver);
|
|
30
|
+
this.emit("observer_added", {
|
|
31
|
+
type: "observer_added",
|
|
32
|
+
fieldId: this.fieldId,
|
|
33
|
+
observerId: observer.id,
|
|
34
|
+
timestamp: Date.now()
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Remove an observer from the field
|
|
39
|
+
*/
|
|
40
|
+
removeObserver(observerId) {
|
|
41
|
+
const wasPresent = this.observers.has(observerId);
|
|
42
|
+
if (wasPresent) {
|
|
43
|
+
this.observers.delete(observerId);
|
|
44
|
+
this.emit("observer_removed", {
|
|
45
|
+
type: "observer_removed",
|
|
46
|
+
fieldId: this.fieldId,
|
|
47
|
+
observerId,
|
|
48
|
+
timestamp: Date.now()
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return wasPresent;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Update field data and notify observers
|
|
55
|
+
*/
|
|
56
|
+
updateField(data) {
|
|
57
|
+
this.fieldData = { ...this.fieldData, ...data };
|
|
58
|
+
// Update field strength based on observer count
|
|
59
|
+
this.fieldStrength = Math.min(1.0, this.observers.size * 0.2 + 0.3);
|
|
60
|
+
// Notify all observers
|
|
61
|
+
this.notifyObservers();
|
|
62
|
+
this.emit("field_updated", {
|
|
63
|
+
type: "field_updated",
|
|
64
|
+
fieldId: this.fieldId,
|
|
65
|
+
data: this.fieldData,
|
|
66
|
+
timestamp: Date.now()
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get field data
|
|
71
|
+
*/
|
|
72
|
+
getFieldData() {
|
|
73
|
+
return { ...this.fieldData };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all observers
|
|
77
|
+
*/
|
|
78
|
+
getObservers() {
|
|
79
|
+
return Array.from(this.observers.values());
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get observer count
|
|
83
|
+
*/
|
|
84
|
+
getObserverCount() {
|
|
85
|
+
return this.observers.size;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Calculate field resonance based on observer interactions
|
|
89
|
+
*/
|
|
90
|
+
calculateFieldResonance() {
|
|
91
|
+
if (this.observers.size === 0)
|
|
92
|
+
return 0;
|
|
93
|
+
const observerResonances = Array.from(this.observers.values()).map(observer => {
|
|
94
|
+
const timeSinceLastObservation = Date.now() - observer.lastObservation;
|
|
95
|
+
const timeDecay = Math.exp(-timeSinceLastObservation / 60000); // Decay over 1 minute
|
|
96
|
+
return observer.consciousnessLevel * observer.resonanceSensitivity * timeDecay;
|
|
97
|
+
});
|
|
98
|
+
const averageResonance = observerResonances.reduce((sum, r) => sum + r, 0) / observerResonances.length;
|
|
99
|
+
return Math.min(1.0, averageResonance * this.fieldStrength);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a resonance wave in the field
|
|
103
|
+
*/
|
|
104
|
+
createResonanceWave(waveType, intensity, duration) {
|
|
105
|
+
const wave = {
|
|
106
|
+
id: `wave_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
107
|
+
waveType,
|
|
108
|
+
intensity,
|
|
109
|
+
duration,
|
|
110
|
+
startTime: Date.now(),
|
|
111
|
+
endTime: Date.now() + duration,
|
|
112
|
+
observers: new Set()
|
|
113
|
+
};
|
|
114
|
+
this.resonanceWaves.push(wave);
|
|
115
|
+
// Notify observers of the wave
|
|
116
|
+
this.notifyObservers();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get active resonance waves
|
|
120
|
+
*/
|
|
121
|
+
getActiveResonanceWaves() {
|
|
122
|
+
const now = Date.now();
|
|
123
|
+
return this.resonanceWaves.filter(wave => now < wave.endTime);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Clean up expired resonance waves
|
|
127
|
+
*/
|
|
128
|
+
cleanupExpiredWaves() {
|
|
129
|
+
const now = Date.now();
|
|
130
|
+
this.resonanceWaves = this.resonanceWaves.filter(wave => now < wave.endTime);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get wave type for a specific resonance wave
|
|
134
|
+
*/
|
|
135
|
+
getWaveType(waveId) {
|
|
136
|
+
const wave = this.resonanceWaves.find(w => w.id === waveId);
|
|
137
|
+
return wave ? wave.waveType : 'unknown';
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Activate the field
|
|
141
|
+
*/
|
|
142
|
+
activate() {
|
|
143
|
+
this.isActive = true;
|
|
144
|
+
this.emit("field_created", {
|
|
145
|
+
type: "field_created",
|
|
146
|
+
fieldId: this.fieldId,
|
|
147
|
+
timestamp: Date.now()
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Deactivate the field
|
|
152
|
+
*/
|
|
153
|
+
deactivate() {
|
|
154
|
+
this.isActive = false;
|
|
155
|
+
this.emit("field_destroyed", {
|
|
156
|
+
type: "field_destroyed",
|
|
157
|
+
fieldId: this.fieldId,
|
|
158
|
+
timestamp: Date.now()
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Check if field is active
|
|
163
|
+
*/
|
|
164
|
+
isFieldActive() {
|
|
165
|
+
return this.isActive;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get field integrity signature
|
|
169
|
+
*/
|
|
170
|
+
getFieldSignature() {
|
|
171
|
+
// Create a proper PatternSignature with required properties
|
|
172
|
+
return {
|
|
173
|
+
signature: `field_${this.fieldId}_${Date.now()}`,
|
|
174
|
+
publicKey: `field_${this.fieldId}`,
|
|
175
|
+
algorithm: 'field-integrity',
|
|
176
|
+
timestamp: Date.now()
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Validate field integrity
|
|
181
|
+
*/
|
|
182
|
+
validateFieldIntegrity() {
|
|
183
|
+
// Temporarily return true until validation logic is implemented
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get resonance waves
|
|
188
|
+
*/
|
|
189
|
+
getResonanceWaves() {
|
|
190
|
+
return this.resonanceWaves;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Update observer focus
|
|
194
|
+
*/
|
|
195
|
+
updateObserverFocus(observerId, focus) {
|
|
196
|
+
const observer = this.observers.get(observerId);
|
|
197
|
+
if (observer) {
|
|
198
|
+
observer.attentionFocus = Math.max(0, Math.min(1, focus));
|
|
199
|
+
observer.lastObservation = Date.now();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Update observer consciousness level
|
|
204
|
+
*/
|
|
205
|
+
updateObserverConsciousness(observerId, consciousnessLevel) {
|
|
206
|
+
const observer = this.observers.get(observerId);
|
|
207
|
+
if (observer) {
|
|
208
|
+
observer.consciousnessLevel = consciousnessLevel;
|
|
209
|
+
observer.lastObservation = Date.now();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Notify all observers of an event
|
|
214
|
+
*/
|
|
215
|
+
notifyObservers() {
|
|
216
|
+
this.observers.forEach((observer) => {
|
|
217
|
+
// Simulate observer notification
|
|
218
|
+
observer.lastObservation = Date.now();
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
exports.ObserverAwareField = ObserverAwareField;
|