genesis-ai-cli 7.4.5
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/.env.example +78 -0
- package/README.md +282 -0
- package/dist/src/active-inference/actions.d.ts +75 -0
- package/dist/src/active-inference/actions.js +250 -0
- package/dist/src/active-inference/autonomous-loop.d.ts +103 -0
- package/dist/src/active-inference/autonomous-loop.js +289 -0
- package/dist/src/active-inference/core.d.ts +85 -0
- package/dist/src/active-inference/core.js +555 -0
- package/dist/src/active-inference/demo-autonomous-loop.d.ts +8 -0
- package/dist/src/active-inference/demo-autonomous-loop.js +338 -0
- package/dist/src/active-inference/demo-value-integration.d.ts +8 -0
- package/dist/src/active-inference/demo-value-integration.js +174 -0
- package/dist/src/active-inference/index.d.ts +32 -0
- package/dist/src/active-inference/index.js +88 -0
- package/dist/src/active-inference/integration.d.ts +114 -0
- package/dist/src/active-inference/integration.js +698 -0
- package/dist/src/active-inference/memory-integration.d.ts +51 -0
- package/dist/src/active-inference/memory-integration.js +232 -0
- package/dist/src/active-inference/observations.d.ts +67 -0
- package/dist/src/active-inference/observations.js +147 -0
- package/dist/src/active-inference/test-active-inference.d.ts +8 -0
- package/dist/src/active-inference/test-active-inference.js +320 -0
- package/dist/src/active-inference/test-value-integration.d.ts +6 -0
- package/dist/src/active-inference/test-value-integration.js +168 -0
- package/dist/src/active-inference/types.d.ts +150 -0
- package/dist/src/active-inference/types.js +59 -0
- package/dist/src/active-inference/value-integration.d.ts +164 -0
- package/dist/src/active-inference/value-integration.js +459 -0
- package/dist/src/agents/base-agent.d.ts +53 -0
- package/dist/src/agents/base-agent.js +178 -0
- package/dist/src/agents/builder.d.ts +67 -0
- package/dist/src/agents/builder.js +537 -0
- package/dist/src/agents/critic.d.ts +35 -0
- package/dist/src/agents/critic.js +322 -0
- package/dist/src/agents/ethicist.d.ts +54 -0
- package/dist/src/agents/ethicist.js +393 -0
- package/dist/src/agents/explorer.d.ts +26 -0
- package/dist/src/agents/explorer.js +216 -0
- package/dist/src/agents/feeling.d.ts +41 -0
- package/dist/src/agents/feeling.js +320 -0
- package/dist/src/agents/index.d.ts +111 -0
- package/dist/src/agents/index.js +222 -0
- package/dist/src/agents/memory.d.ts +69 -0
- package/dist/src/agents/memory.js +404 -0
- package/dist/src/agents/message-bus.d.ts +88 -0
- package/dist/src/agents/message-bus.js +267 -0
- package/dist/src/agents/narrator.d.ts +90 -0
- package/dist/src/agents/narrator.js +473 -0
- package/dist/src/agents/planner.d.ts +38 -0
- package/dist/src/agents/planner.js +341 -0
- package/dist/src/agents/predictor.d.ts +73 -0
- package/dist/src/agents/predictor.js +506 -0
- package/dist/src/agents/sensor.d.ts +88 -0
- package/dist/src/agents/sensor.js +377 -0
- package/dist/src/agents/test-agents.d.ts +6 -0
- package/dist/src/agents/test-agents.js +73 -0
- package/dist/src/agents/types.d.ts +194 -0
- package/dist/src/agents/types.js +7 -0
- package/dist/src/brain/index.d.ts +185 -0
- package/dist/src/brain/index.js +843 -0
- package/dist/src/brain/trace.d.ts +91 -0
- package/dist/src/brain/trace.js +327 -0
- package/dist/src/brain/types.d.ts +165 -0
- package/dist/src/brain/types.js +51 -0
- package/dist/src/cli/chat.d.ts +237 -0
- package/dist/src/cli/chat.js +1959 -0
- package/dist/src/cli/dispatcher.d.ts +182 -0
- package/dist/src/cli/dispatcher.js +718 -0
- package/dist/src/cli/human-loop.d.ts +170 -0
- package/dist/src/cli/human-loop.js +543 -0
- package/dist/src/cli/index.d.ts +12 -0
- package/dist/src/cli/index.js +28 -0
- package/dist/src/cli/interactive.d.ts +141 -0
- package/dist/src/cli/interactive.js +757 -0
- package/dist/src/cli/ui.d.ts +205 -0
- package/dist/src/cli/ui.js +632 -0
- package/dist/src/consciousness/attention-schema.d.ts +154 -0
- package/dist/src/consciousness/attention-schema.js +432 -0
- package/dist/src/consciousness/global-workspace.d.ts +149 -0
- package/dist/src/consciousness/global-workspace.js +422 -0
- package/dist/src/consciousness/index.d.ts +186 -0
- package/dist/src/consciousness/index.js +476 -0
- package/dist/src/consciousness/phi-calculator.d.ts +119 -0
- package/dist/src/consciousness/phi-calculator.js +445 -0
- package/dist/src/consciousness/phi-decisions.d.ts +169 -0
- package/dist/src/consciousness/phi-decisions.js +383 -0
- package/dist/src/consciousness/phi-monitor.d.ts +153 -0
- package/dist/src/consciousness/phi-monitor.js +465 -0
- package/dist/src/consciousness/types.d.ts +260 -0
- package/dist/src/consciousness/types.js +44 -0
- package/dist/src/daemon/dream-mode.d.ts +115 -0
- package/dist/src/daemon/dream-mode.js +470 -0
- package/dist/src/daemon/index.d.ts +162 -0
- package/dist/src/daemon/index.js +542 -0
- package/dist/src/daemon/maintenance.d.ts +139 -0
- package/dist/src/daemon/maintenance.js +549 -0
- package/dist/src/daemon/process.d.ts +82 -0
- package/dist/src/daemon/process.js +442 -0
- package/dist/src/daemon/scheduler.d.ts +90 -0
- package/dist/src/daemon/scheduler.js +494 -0
- package/dist/src/daemon/types.d.ts +213 -0
- package/dist/src/daemon/types.js +50 -0
- package/dist/src/epistemic/index.d.ts +74 -0
- package/dist/src/epistemic/index.js +225 -0
- package/dist/src/grounding/epistemic-stack.d.ts +100 -0
- package/dist/src/grounding/epistemic-stack.js +408 -0
- package/dist/src/grounding/feedback.d.ts +98 -0
- package/dist/src/grounding/feedback.js +276 -0
- package/dist/src/grounding/index.d.ts +123 -0
- package/dist/src/grounding/index.js +224 -0
- package/dist/src/grounding/verifier.d.ts +149 -0
- package/dist/src/grounding/verifier.js +484 -0
- package/dist/src/healing/detector.d.ts +110 -0
- package/dist/src/healing/detector.js +436 -0
- package/dist/src/healing/fixer.d.ts +138 -0
- package/dist/src/healing/fixer.js +572 -0
- package/dist/src/healing/index.d.ts +23 -0
- package/dist/src/healing/index.js +43 -0
- package/dist/src/hooks/index.d.ts +135 -0
- package/dist/src/hooks/index.js +317 -0
- package/dist/src/index.d.ts +23 -0
- package/dist/src/index.js +1266 -0
- package/dist/src/kernel/index.d.ts +155 -0
- package/dist/src/kernel/index.js +795 -0
- package/dist/src/kernel/invariants.d.ts +153 -0
- package/dist/src/kernel/invariants.js +355 -0
- package/dist/src/kernel/test-kernel.d.ts +6 -0
- package/dist/src/kernel/test-kernel.js +108 -0
- package/dist/src/kernel/test-real-mcp.d.ts +10 -0
- package/dist/src/kernel/test-real-mcp.js +295 -0
- package/dist/src/llm/index.d.ts +146 -0
- package/dist/src/llm/index.js +428 -0
- package/dist/src/llm/router.d.ts +136 -0
- package/dist/src/llm/router.js +510 -0
- package/dist/src/mcp/index.d.ts +85 -0
- package/dist/src/mcp/index.js +657 -0
- package/dist/src/mcp/resilient.d.ts +139 -0
- package/dist/src/mcp/resilient.js +417 -0
- package/dist/src/memory/cache.d.ts +118 -0
- package/dist/src/memory/cache.js +356 -0
- package/dist/src/memory/cognitive-workspace.d.ts +231 -0
- package/dist/src/memory/cognitive-workspace.js +521 -0
- package/dist/src/memory/consolidation.d.ts +99 -0
- package/dist/src/memory/consolidation.js +443 -0
- package/dist/src/memory/episodic.d.ts +114 -0
- package/dist/src/memory/episodic.js +394 -0
- package/dist/src/memory/forgetting.d.ts +134 -0
- package/dist/src/memory/forgetting.js +324 -0
- package/dist/src/memory/index.d.ts +211 -0
- package/dist/src/memory/index.js +367 -0
- package/dist/src/memory/indexer.d.ts +123 -0
- package/dist/src/memory/indexer.js +479 -0
- package/dist/src/memory/procedural.d.ts +136 -0
- package/dist/src/memory/procedural.js +479 -0
- package/dist/src/memory/semantic.d.ts +132 -0
- package/dist/src/memory/semantic.js +497 -0
- package/dist/src/memory/types.d.ts +193 -0
- package/dist/src/memory/types.js +15 -0
- package/dist/src/orchestrator.d.ts +65 -0
- package/dist/src/orchestrator.js +317 -0
- package/dist/src/persistence/index.d.ts +257 -0
- package/dist/src/persistence/index.js +763 -0
- package/dist/src/pipeline/executor.d.ts +51 -0
- package/dist/src/pipeline/executor.js +695 -0
- package/dist/src/pipeline/index.d.ts +7 -0
- package/dist/src/pipeline/index.js +11 -0
- package/dist/src/self-production.d.ts +67 -0
- package/dist/src/self-production.js +205 -0
- package/dist/src/subagents/executor.d.ts +58 -0
- package/dist/src/subagents/executor.js +283 -0
- package/dist/src/subagents/index.d.ts +37 -0
- package/dist/src/subagents/index.js +53 -0
- package/dist/src/subagents/registry.d.ts +23 -0
- package/dist/src/subagents/registry.js +167 -0
- package/dist/src/subagents/types.d.ts +79 -0
- package/dist/src/subagents/types.js +14 -0
- package/dist/src/tools/bash.d.ts +139 -0
- package/dist/src/tools/bash.js +583 -0
- package/dist/src/tools/edit.d.ts +125 -0
- package/dist/src/tools/edit.js +424 -0
- package/dist/src/tools/git.d.ts +179 -0
- package/dist/src/tools/git.js +504 -0
- package/dist/src/tools/index.d.ts +21 -0
- package/dist/src/tools/index.js +163 -0
- package/dist/src/types.d.ts +145 -0
- package/dist/src/types.js +7 -0
- package/dist/src/world-model/decoder.d.ts +163 -0
- package/dist/src/world-model/decoder.js +517 -0
- package/dist/src/world-model/digital-twin.d.ts +219 -0
- package/dist/src/world-model/digital-twin.js +695 -0
- package/dist/src/world-model/encoder.d.ts +141 -0
- package/dist/src/world-model/encoder.js +564 -0
- package/dist/src/world-model/index.d.ts +221 -0
- package/dist/src/world-model/index.js +772 -0
- package/dist/src/world-model/predictor.d.ts +161 -0
- package/dist/src/world-model/predictor.js +681 -0
- package/dist/src/world-model/test-value-jepa.d.ts +8 -0
- package/dist/src/world-model/test-value-jepa.js +430 -0
- package/dist/src/world-model/types.d.ts +341 -0
- package/dist/src/world-model/types.js +69 -0
- package/dist/src/world-model/value-jepa.d.ts +247 -0
- package/dist/src/world-model/value-jepa.js +622 -0
- package/dist/test/brain.test.d.ts +11 -0
- package/dist/test/brain.test.js +358 -0
- package/dist/test/cli/dispatcher.test.d.ts +4 -0
- package/dist/test/cli/dispatcher.test.js +332 -0
- package/dist/test/cli/human-loop.test.d.ts +4 -0
- package/dist/test/cli/human-loop.test.js +270 -0
- package/dist/test/grounding/feedback.test.d.ts +4 -0
- package/dist/test/grounding/feedback.test.js +462 -0
- package/dist/test/grounding/verifier.test.d.ts +4 -0
- package/dist/test/grounding/verifier.test.js +442 -0
- package/dist/test/grounding.test.d.ts +6 -0
- package/dist/test/grounding.test.js +246 -0
- package/dist/test/healing/detector.test.d.ts +4 -0
- package/dist/test/healing/detector.test.js +266 -0
- package/dist/test/healing/fixer.test.d.ts +4 -0
- package/dist/test/healing/fixer.test.js +369 -0
- package/dist/test/integration.test.d.ts +5 -0
- package/dist/test/integration.test.js +290 -0
- package/dist/test/tools/bash.test.d.ts +4 -0
- package/dist/test/tools/bash.test.js +348 -0
- package/dist/test/tools/edit.test.d.ts +4 -0
- package/dist/test/tools/edit.test.js +350 -0
- package/dist/test/tools/git.test.d.ts +4 -0
- package/dist/test/tools/git.test.js +350 -0
- package/package.json +60 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis 6.3 - Memory 2.0 Integration with Active Inference
|
|
3
|
+
*
|
|
4
|
+
* Connects CognitiveWorkspace to Active Inference for:
|
|
5
|
+
* - Anticipatory memory pre-loading based on inferred context
|
|
6
|
+
* - Enhanced recall.memory action using workspace
|
|
7
|
+
* - Memory state observation for inference
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { integrateMemory } from './memory-integration.js';
|
|
12
|
+
* import { getMemorySystem } from '../memory/index.js';
|
|
13
|
+
* import { createAutonomousLoop } from './autonomous-loop.js';
|
|
14
|
+
*
|
|
15
|
+
* const memory = getMemorySystem();
|
|
16
|
+
* const loop = createAutonomousLoop();
|
|
17
|
+
*
|
|
18
|
+
* integrateMemory(loop, memory);
|
|
19
|
+
*
|
|
20
|
+
* // Now the loop will:
|
|
21
|
+
* // 1. Anticipate memories before each cycle
|
|
22
|
+
* // 2. Use cognitive workspace for recall.memory action
|
|
23
|
+
* // 3. Track memory reuse metrics
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { AutonomousLoop } from './autonomous-loop.js';
|
|
27
|
+
import type { MemorySystem, MemoryReuseMetrics } from '../memory/index.js';
|
|
28
|
+
export interface MemoryIntegrationConfig {
|
|
29
|
+
enableAnticipation: boolean;
|
|
30
|
+
anticipationDepth: number;
|
|
31
|
+
recallLimit: number;
|
|
32
|
+
logMetrics: boolean;
|
|
33
|
+
metricsInterval: number;
|
|
34
|
+
}
|
|
35
|
+
export declare const DEFAULT_MEMORY_INTEGRATION_CONFIG: MemoryIntegrationConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Integrate Memory 2.0 with Active Inference loop
|
|
38
|
+
*/
|
|
39
|
+
export declare function integrateMemory(loop: AutonomousLoop, memory: MemorySystem, config?: Partial<MemoryIntegrationConfig>): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get memory reuse metrics from memory system
|
|
42
|
+
*/
|
|
43
|
+
export declare function getMemoryMetrics(memory: MemorySystem): MemoryReuseMetrics;
|
|
44
|
+
/**
|
|
45
|
+
* Get workspace state for observation
|
|
46
|
+
*/
|
|
47
|
+
export declare function getWorkspaceState(memory: MemorySystem): {
|
|
48
|
+
itemCount: number;
|
|
49
|
+
avgActivation: number;
|
|
50
|
+
reuseRate: number;
|
|
51
|
+
};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Genesis 6.3 - Memory 2.0 Integration with Active Inference
|
|
4
|
+
*
|
|
5
|
+
* Connects CognitiveWorkspace to Active Inference for:
|
|
6
|
+
* - Anticipatory memory pre-loading based on inferred context
|
|
7
|
+
* - Enhanced recall.memory action using workspace
|
|
8
|
+
* - Memory state observation for inference
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { integrateMemory } from './memory-integration.js';
|
|
13
|
+
* import { getMemorySystem } from '../memory/index.js';
|
|
14
|
+
* import { createAutonomousLoop } from './autonomous-loop.js';
|
|
15
|
+
*
|
|
16
|
+
* const memory = getMemorySystem();
|
|
17
|
+
* const loop = createAutonomousLoop();
|
|
18
|
+
*
|
|
19
|
+
* integrateMemory(loop, memory);
|
|
20
|
+
*
|
|
21
|
+
* // Now the loop will:
|
|
22
|
+
* // 1. Anticipate memories before each cycle
|
|
23
|
+
* // 2. Use cognitive workspace for recall.memory action
|
|
24
|
+
* // 3. Track memory reuse metrics
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.DEFAULT_MEMORY_INTEGRATION_CONFIG = void 0;
|
|
29
|
+
exports.integrateMemory = integrateMemory;
|
|
30
|
+
exports.getMemoryMetrics = getMemoryMetrics;
|
|
31
|
+
exports.getWorkspaceState = getWorkspaceState;
|
|
32
|
+
const actions_js_1 = require("./actions.js");
|
|
33
|
+
exports.DEFAULT_MEMORY_INTEGRATION_CONFIG = {
|
|
34
|
+
enableAnticipation: true,
|
|
35
|
+
anticipationDepth: 5,
|
|
36
|
+
recallLimit: 10,
|
|
37
|
+
logMetrics: false,
|
|
38
|
+
metricsInterval: 10,
|
|
39
|
+
};
|
|
40
|
+
// ============================================================================
|
|
41
|
+
// Context Building
|
|
42
|
+
// ============================================================================
|
|
43
|
+
/**
|
|
44
|
+
* Build anticipation context from current beliefs and goal
|
|
45
|
+
*/
|
|
46
|
+
function buildAnticipationContext(beliefs, goal, recentActions) {
|
|
47
|
+
// Extract keywords from goal
|
|
48
|
+
const keywords = [];
|
|
49
|
+
if (goal) {
|
|
50
|
+
keywords.push(...goal.split(/\s+/).filter(w => w.length > 3));
|
|
51
|
+
}
|
|
52
|
+
// Map beliefs to context
|
|
53
|
+
const context = {
|
|
54
|
+
goal,
|
|
55
|
+
keywords,
|
|
56
|
+
recentActions,
|
|
57
|
+
};
|
|
58
|
+
// Add tags based on beliefs
|
|
59
|
+
const tags = [];
|
|
60
|
+
// Viability tags
|
|
61
|
+
const viabilityLevel = beliefs.viability.indexOf(Math.max(...beliefs.viability));
|
|
62
|
+
if (viabilityLevel <= 1)
|
|
63
|
+
tags.push('energy', 'survival', 'low-energy');
|
|
64
|
+
else if (viabilityLevel >= 3)
|
|
65
|
+
tags.push('high-energy', 'optimal');
|
|
66
|
+
// World state tags
|
|
67
|
+
const worldStateLevel = beliefs.worldState.indexOf(Math.max(...beliefs.worldState));
|
|
68
|
+
if (worldStateLevel === 0)
|
|
69
|
+
tags.push('unknown', 'exploration');
|
|
70
|
+
else if (worldStateLevel === 1)
|
|
71
|
+
tags.push('stable', 'routine');
|
|
72
|
+
else if (worldStateLevel === 2)
|
|
73
|
+
tags.push('changing', 'adaptation');
|
|
74
|
+
else if (worldStateLevel === 3)
|
|
75
|
+
tags.push('hostile', 'threat');
|
|
76
|
+
// Goal progress tags
|
|
77
|
+
const goalLevel = beliefs.goalProgress.indexOf(Math.max(...beliefs.goalProgress));
|
|
78
|
+
if (goalLevel === 0)
|
|
79
|
+
tags.push('blocked', 'problem');
|
|
80
|
+
else if (goalLevel === 3)
|
|
81
|
+
tags.push('achieved', 'success');
|
|
82
|
+
context.tags = tags;
|
|
83
|
+
return context;
|
|
84
|
+
}
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// Memory-Enhanced Actions
|
|
87
|
+
// ============================================================================
|
|
88
|
+
/**
|
|
89
|
+
* Register enhanced recall.memory action that uses CognitiveWorkspace
|
|
90
|
+
*/
|
|
91
|
+
function registerMemoryActions(memory, config) {
|
|
92
|
+
(0, actions_js_1.registerAction)('recall.memory', async (context) => {
|
|
93
|
+
const query = context.goal || '';
|
|
94
|
+
// Try workspace first (cache hit)
|
|
95
|
+
const activeItems = memory.workspace.getActive();
|
|
96
|
+
// Filter active items by query
|
|
97
|
+
const relevant = activeItems.filter(item => {
|
|
98
|
+
const content = JSON.stringify(item.memory).toLowerCase();
|
|
99
|
+
const terms = query.toLowerCase().split(/\s+/);
|
|
100
|
+
return terms.some(t => t.length > 2 && content.includes(t));
|
|
101
|
+
});
|
|
102
|
+
if (relevant.length > 0) {
|
|
103
|
+
// Access items to update metrics
|
|
104
|
+
relevant.forEach(item => memory.workspace.access(item.id));
|
|
105
|
+
return {
|
|
106
|
+
success: true,
|
|
107
|
+
action: 'recall.memory',
|
|
108
|
+
data: {
|
|
109
|
+
recalled: relevant.map(r => r.memory),
|
|
110
|
+
source: 'workspace',
|
|
111
|
+
count: relevant.length,
|
|
112
|
+
},
|
|
113
|
+
duration: 0,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Fall back to store search
|
|
117
|
+
if (query.length > 0) {
|
|
118
|
+
const results = memory.recall(query, { limit: config.recallLimit });
|
|
119
|
+
// Add to workspace for future access
|
|
120
|
+
results.forEach(mem => {
|
|
121
|
+
memory.workspace.addToBuffer(mem, 'recall', 0.6);
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
success: true,
|
|
125
|
+
action: 'recall.memory',
|
|
126
|
+
data: {
|
|
127
|
+
recalled: results,
|
|
128
|
+
source: 'store',
|
|
129
|
+
count: results.length,
|
|
130
|
+
},
|
|
131
|
+
duration: 0,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
success: true,
|
|
136
|
+
action: 'recall.memory',
|
|
137
|
+
data: {
|
|
138
|
+
recalled: [],
|
|
139
|
+
source: 'none',
|
|
140
|
+
count: 0,
|
|
141
|
+
},
|
|
142
|
+
duration: 0,
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
// Enhanced dream.cycle that uses consolidation
|
|
146
|
+
(0, actions_js_1.registerAction)('dream.cycle', async (context) => {
|
|
147
|
+
try {
|
|
148
|
+
const result = await memory.consolidate();
|
|
149
|
+
// Clear workspace to simulate "waking up"
|
|
150
|
+
const stats = memory.workspace.getStats();
|
|
151
|
+
memory.workspace.clear();
|
|
152
|
+
return {
|
|
153
|
+
success: true,
|
|
154
|
+
action: 'dream.cycle',
|
|
155
|
+
data: {
|
|
156
|
+
consolidated: result,
|
|
157
|
+
workspaceCleared: stats.itemCount,
|
|
158
|
+
},
|
|
159
|
+
duration: 0,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
return {
|
|
164
|
+
success: false,
|
|
165
|
+
action: 'dream.cycle',
|
|
166
|
+
error: error instanceof Error ? error.message : String(error),
|
|
167
|
+
duration: 0,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// ============================================================================
|
|
173
|
+
// Loop Integration
|
|
174
|
+
// ============================================================================
|
|
175
|
+
/**
|
|
176
|
+
* Add anticipation hook to autonomous loop
|
|
177
|
+
*/
|
|
178
|
+
function addAnticipationHook(loop, memory, config) {
|
|
179
|
+
const recentActions = [];
|
|
180
|
+
// Subscribe to cycle events
|
|
181
|
+
loop.onCycle((cycle, action, beliefs) => {
|
|
182
|
+
// Track recent actions
|
|
183
|
+
recentActions.push(action);
|
|
184
|
+
if (recentActions.length > 5)
|
|
185
|
+
recentActions.shift();
|
|
186
|
+
// Anticipate memories for next cycle
|
|
187
|
+
if (config.enableAnticipation) {
|
|
188
|
+
const context = buildAnticipationContext(beliefs, undefined, // goal could come from context
|
|
189
|
+
recentActions);
|
|
190
|
+
// Fire and forget - don't block the cycle
|
|
191
|
+
memory.anticipate(context).catch(() => {
|
|
192
|
+
// Silently ignore anticipation errors
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// Log metrics periodically
|
|
196
|
+
if (config.logMetrics && cycle % config.metricsInterval === 0) {
|
|
197
|
+
const metrics = memory.getReuseMetrics();
|
|
198
|
+
console.log(`[Memory 2.0] Cycle ${cycle} | Reuse: ${(metrics.reuseRate * 100).toFixed(1)}% | Anticipation: ${(metrics.anticipationAccuracy * 100).toFixed(1)}%`);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// Main Integration Function
|
|
204
|
+
// ============================================================================
|
|
205
|
+
/**
|
|
206
|
+
* Integrate Memory 2.0 with Active Inference loop
|
|
207
|
+
*/
|
|
208
|
+
function integrateMemory(loop, memory, config = {}) {
|
|
209
|
+
const fullConfig = { ...exports.DEFAULT_MEMORY_INTEGRATION_CONFIG, ...config };
|
|
210
|
+
// Register enhanced actions
|
|
211
|
+
registerMemoryActions(memory, fullConfig);
|
|
212
|
+
// Add anticipation hook
|
|
213
|
+
addAnticipationHook(loop, memory, fullConfig);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get memory reuse metrics from memory system
|
|
217
|
+
*/
|
|
218
|
+
function getMemoryMetrics(memory) {
|
|
219
|
+
return memory.getReuseMetrics();
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get workspace state for observation
|
|
223
|
+
*/
|
|
224
|
+
function getWorkspaceState(memory) {
|
|
225
|
+
const stats = memory.workspace.getStats();
|
|
226
|
+
const metrics = memory.getReuseMetrics();
|
|
227
|
+
return {
|
|
228
|
+
itemCount: stats.itemCount,
|
|
229
|
+
avgActivation: stats.avgActivation,
|
|
230
|
+
reuseRate: metrics.reuseRate,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis 6.1 - Observations Bridge
|
|
3
|
+
*
|
|
4
|
+
* Connects existing agents to Active Inference observations.
|
|
5
|
+
*
|
|
6
|
+
* Maps:
|
|
7
|
+
* - SensorAgent → tool perception
|
|
8
|
+
* - FeelingAgent → interoceptive state
|
|
9
|
+
* - PhiMonitor → consciousness level
|
|
10
|
+
* - WorldModel → coherence metric
|
|
11
|
+
* - Kernel → energy/task status
|
|
12
|
+
*/
|
|
13
|
+
import { Observation } from './types.js';
|
|
14
|
+
export interface KernelState {
|
|
15
|
+
energy: number;
|
|
16
|
+
state: string;
|
|
17
|
+
taskStatus?: 'none' | 'pending' | 'running' | 'completed' | 'failed';
|
|
18
|
+
}
|
|
19
|
+
export interface PhiState {
|
|
20
|
+
phi: number;
|
|
21
|
+
state: 'dormant' | 'alert' | 'aware' | 'drowsy' | 'fragmented';
|
|
22
|
+
}
|
|
23
|
+
export interface SensorResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
latency: number;
|
|
26
|
+
error?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface WorldModelState {
|
|
29
|
+
consistent: boolean;
|
|
30
|
+
issues: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class ObservationGatherer {
|
|
33
|
+
private getKernelState?;
|
|
34
|
+
private getPhiState?;
|
|
35
|
+
private getSensorResult?;
|
|
36
|
+
private getWorldModelState?;
|
|
37
|
+
/**
|
|
38
|
+
* Configure observation sources
|
|
39
|
+
*/
|
|
40
|
+
configure(sources: {
|
|
41
|
+
kernelState?: () => KernelState;
|
|
42
|
+
phiState?: () => PhiState;
|
|
43
|
+
sensorResult?: () => Promise<SensorResult>;
|
|
44
|
+
worldModelState?: () => WorldModelState;
|
|
45
|
+
}): void;
|
|
46
|
+
/**
|
|
47
|
+
* Gather all observations from system components
|
|
48
|
+
*/
|
|
49
|
+
gather(): Promise<Observation>;
|
|
50
|
+
/**
|
|
51
|
+
* Create observation from raw values (for testing)
|
|
52
|
+
*/
|
|
53
|
+
fromRaw(raw: {
|
|
54
|
+
energy?: number;
|
|
55
|
+
phi?: number;
|
|
56
|
+
toolSuccess?: boolean;
|
|
57
|
+
coherent?: boolean;
|
|
58
|
+
taskStatus?: string;
|
|
59
|
+
}): Observation;
|
|
60
|
+
private mapEnergy;
|
|
61
|
+
private mapPhi;
|
|
62
|
+
private mapTool;
|
|
63
|
+
private mapCoherence;
|
|
64
|
+
private mapTask;
|
|
65
|
+
}
|
|
66
|
+
export declare function createObservationGatherer(): ObservationGatherer;
|
|
67
|
+
export declare function getObservationGatherer(): ObservationGatherer;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Genesis 6.1 - Observations Bridge
|
|
4
|
+
*
|
|
5
|
+
* Connects existing agents to Active Inference observations.
|
|
6
|
+
*
|
|
7
|
+
* Maps:
|
|
8
|
+
* - SensorAgent → tool perception
|
|
9
|
+
* - FeelingAgent → interoceptive state
|
|
10
|
+
* - PhiMonitor → consciousness level
|
|
11
|
+
* - WorldModel → coherence metric
|
|
12
|
+
* - Kernel → energy/task status
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ObservationGatherer = void 0;
|
|
16
|
+
exports.createObservationGatherer = createObservationGatherer;
|
|
17
|
+
exports.getObservationGatherer = getObservationGatherer;
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Observation Gatherer
|
|
20
|
+
// ============================================================================
|
|
21
|
+
class ObservationGatherer {
|
|
22
|
+
// References to system components (injected)
|
|
23
|
+
getKernelState;
|
|
24
|
+
getPhiState;
|
|
25
|
+
getSensorResult;
|
|
26
|
+
getWorldModelState;
|
|
27
|
+
/**
|
|
28
|
+
* Configure observation sources
|
|
29
|
+
*/
|
|
30
|
+
configure(sources) {
|
|
31
|
+
if (sources.kernelState)
|
|
32
|
+
this.getKernelState = sources.kernelState;
|
|
33
|
+
if (sources.phiState)
|
|
34
|
+
this.getPhiState = sources.phiState;
|
|
35
|
+
if (sources.sensorResult)
|
|
36
|
+
this.getSensorResult = sources.sensorResult;
|
|
37
|
+
if (sources.worldModelState)
|
|
38
|
+
this.getWorldModelState = sources.worldModelState;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Gather all observations from system components
|
|
42
|
+
*/
|
|
43
|
+
async gather() {
|
|
44
|
+
// Get states from components (with defaults if not configured)
|
|
45
|
+
const kernelState = this.getKernelState?.() ?? {
|
|
46
|
+
energy: 0.5,
|
|
47
|
+
state: 'idle',
|
|
48
|
+
taskStatus: 'none',
|
|
49
|
+
};
|
|
50
|
+
const phiState = this.getPhiState?.() ?? {
|
|
51
|
+
phi: 0.5,
|
|
52
|
+
state: 'aware',
|
|
53
|
+
};
|
|
54
|
+
const sensorResult = this.getSensorResult
|
|
55
|
+
? await this.getSensorResult()
|
|
56
|
+
: { success: true, latency: 100 };
|
|
57
|
+
const worldModelState = this.getWorldModelState?.() ?? {
|
|
58
|
+
consistent: true,
|
|
59
|
+
issues: 0,
|
|
60
|
+
};
|
|
61
|
+
// Map to discrete observations
|
|
62
|
+
return {
|
|
63
|
+
energy: this.mapEnergy(kernelState.energy),
|
|
64
|
+
phi: this.mapPhi(phiState),
|
|
65
|
+
tool: this.mapTool(sensorResult),
|
|
66
|
+
coherence: this.mapCoherence(worldModelState),
|
|
67
|
+
task: this.mapTask(kernelState.taskStatus),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create observation from raw values (for testing)
|
|
72
|
+
*/
|
|
73
|
+
fromRaw(raw) {
|
|
74
|
+
return {
|
|
75
|
+
energy: this.mapEnergy(raw.energy ?? 0.5),
|
|
76
|
+
phi: this.mapPhi({ phi: raw.phi ?? 0.5, state: 'aware' }),
|
|
77
|
+
tool: raw.toolSuccess === undefined ? 1 : (raw.toolSuccess ? 2 : 0),
|
|
78
|
+
coherence: raw.coherent === undefined ? 2 : (raw.coherent ? 2 : 0),
|
|
79
|
+
task: this.mapTask(raw.taskStatus ?? 'none'),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Mapping Functions
|
|
84
|
+
// ============================================================================
|
|
85
|
+
mapEnergy(energy) {
|
|
86
|
+
// Map 0.0-1.0 to 0-4
|
|
87
|
+
if (energy < 0.1)
|
|
88
|
+
return 0; // depleted
|
|
89
|
+
if (energy < 0.3)
|
|
90
|
+
return 1; // low
|
|
91
|
+
if (energy < 0.6)
|
|
92
|
+
return 2; // medium
|
|
93
|
+
if (energy < 0.85)
|
|
94
|
+
return 3; // high
|
|
95
|
+
return 4; // full
|
|
96
|
+
}
|
|
97
|
+
mapPhi(phiState) {
|
|
98
|
+
// Map phi level and state to 0-3
|
|
99
|
+
if (phiState.state === 'dormant' || phiState.phi < 0.1)
|
|
100
|
+
return 0;
|
|
101
|
+
if (phiState.phi < 0.4)
|
|
102
|
+
return 1; // low
|
|
103
|
+
if (phiState.phi < 0.7)
|
|
104
|
+
return 2; // medium
|
|
105
|
+
return 3; // high
|
|
106
|
+
}
|
|
107
|
+
mapTool(result) {
|
|
108
|
+
// Map sensor result to 0-2
|
|
109
|
+
if (!result.success)
|
|
110
|
+
return 0; // failed
|
|
111
|
+
if (result.latency > 5000)
|
|
112
|
+
return 1; // partial (slow)
|
|
113
|
+
return 2; // success
|
|
114
|
+
}
|
|
115
|
+
mapCoherence(state) {
|
|
116
|
+
// Map world model consistency to 0-2
|
|
117
|
+
if (!state.consistent || state.issues > 5)
|
|
118
|
+
return 0; // broken
|
|
119
|
+
if (state.issues > 0)
|
|
120
|
+
return 1; // degraded
|
|
121
|
+
return 2; // consistent
|
|
122
|
+
}
|
|
123
|
+
mapTask(status) {
|
|
124
|
+
switch (status) {
|
|
125
|
+
case 'pending': return 1;
|
|
126
|
+
case 'running': return 2;
|
|
127
|
+
case 'completed': return 3;
|
|
128
|
+
case 'failed': return 0;
|
|
129
|
+
case 'none':
|
|
130
|
+
default: return 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.ObservationGatherer = ObservationGatherer;
|
|
135
|
+
// ============================================================================
|
|
136
|
+
// Factory
|
|
137
|
+
// ============================================================================
|
|
138
|
+
let gathererInstance = null;
|
|
139
|
+
function createObservationGatherer() {
|
|
140
|
+
return new ObservationGatherer();
|
|
141
|
+
}
|
|
142
|
+
function getObservationGatherer() {
|
|
143
|
+
if (!gathererInstance) {
|
|
144
|
+
gathererInstance = createObservationGatherer();
|
|
145
|
+
}
|
|
146
|
+
return gathererInstance;
|
|
147
|
+
}
|