mindforge-cc 6.2.1 → 6.4.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.
- package/CHANGELOG.md +23 -0
- package/bin/autonomous/auto-runner.js +35 -2
- package/bin/engine/context-entropy-guard.js +94 -0
- package/bin/engine/handover-manager.js +3 -1
- package/bin/engine/intelligence-interlock.js +39 -0
- package/bin/engine/logic-drift-detector.js +1 -0
- package/bin/engine/test-ceg.js +59 -0
- package/bin/engine/test-interlock.js +40 -0
- package/bin/revops/router-steering-v2.js +1 -1
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## [6.4.0] - 2026-04-08
|
|
2
|
+
|
|
3
|
+
### Added (v6.4.0: Context Entropy Guard - CEG)
|
|
4
|
+
|
|
5
|
+
- **Context Entropy Guard (CEG)**:
|
|
6
|
+
- Implemented `context-entropy-guard.js` for active noise suppression and context pruning.
|
|
7
|
+
- Added semantic compression to `HandoverManager`, automatically summarizing stagnant reasoning loops into digests.
|
|
8
|
+
- Hardened Nexus Bundles against "Reasoning Entropy" (similarity-based token bloat).
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## [6.3.0] - 2026-04-08
|
|
13
|
+
|
|
14
|
+
### Added (v6.3.0: Intelligence-Drift Coupling - IDC)
|
|
15
|
+
|
|
16
|
+
- **Dynamic Model Upgrading (IDC)**:
|
|
17
|
+
- Implemented `intelligence-interlock.js` to bridge NDR (Neural Drift Remediation) and ARH (Resource Arbitrage).
|
|
18
|
+
- Added "Critical Drift" alert thresholds to `LogicDriftDetector`.
|
|
19
|
+
- Integrated IDC signals into `AutoRunner`, allowing for proactive model tier upgrades when reasoning decay is detected.
|
|
20
|
+
- Hardened `RouterSteering` to respect mid-wave MIR overrides.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
1
24
|
## [6.2.0] - 2026-04-02
|
|
2
25
|
|
|
3
26
|
### Added (v6.2.0: Sovereign Enterprise Stable)
|
|
@@ -17,6 +17,7 @@ const TemporalHub = require('../engine/temporal-hub');
|
|
|
17
17
|
const IntentHarvester = require('./intent-harvester');
|
|
18
18
|
const MeshSelfHealer = require('./mesh-self-healer');
|
|
19
19
|
const crypto = require('crypto');
|
|
20
|
+
const IntelligenceInterlock = require('../engine/intelligence-interlock');
|
|
20
21
|
|
|
21
22
|
// MindForge v5 Core Modules
|
|
22
23
|
const PolicyEngine = require('../governance/policy-engine');
|
|
@@ -41,6 +42,9 @@ class AutoRunner {
|
|
|
41
42
|
// v5 PAR Initialization
|
|
42
43
|
this.refactorer = new ContextRefactorer();
|
|
43
44
|
this.c2cThreshold = 0.65;
|
|
45
|
+
|
|
46
|
+
// v6.3 Intelligence Interlock
|
|
47
|
+
this.interlock = IntelligenceInterlock;
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
async run() {
|
|
@@ -79,7 +83,10 @@ class AutoRunner {
|
|
|
79
83
|
// Pillar 7 (DHH): Check for Human Steering
|
|
80
84
|
await this.checkHumanSteering(isReliable);
|
|
81
85
|
|
|
82
|
-
|
|
86
|
+
// v6.3 IDC: Check for Intelligence Drift & Upgrade Signal
|
|
87
|
+
const idcStatus = await this.checkIntelligenceDrift();
|
|
88
|
+
|
|
89
|
+
await this.executeWave(idcStatus);
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
await this.complete();
|
|
@@ -96,8 +103,34 @@ class AutoRunner {
|
|
|
96
103
|
return false; // Placeholder for now
|
|
97
104
|
}
|
|
98
105
|
|
|
99
|
-
async executeWave() {
|
|
106
|
+
async executeWave(idcStatus = {}) {
|
|
100
107
|
// Parallel task execution logic...
|
|
108
|
+
if (idcStatus.action === 'UPGRADE_MIR') {
|
|
109
|
+
console.log(`[IDC-ACTIVE] Wave executing with MIR Override: ${idcStatus.new_mir}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* v6.3 IDC: Intelligence-Drift Coupling
|
|
115
|
+
* Detects if the internal reasoning of previous tasks suggests intelligence decay.
|
|
116
|
+
*/
|
|
117
|
+
async checkIntelligenceDrift() {
|
|
118
|
+
// Get the most recent high-density reasoning thought from audit
|
|
119
|
+
const events = this.getRecentAuditEvents(5);
|
|
120
|
+
const lastThought = events.reverse().find(e => e.thought || e.reasoning);
|
|
121
|
+
|
|
122
|
+
if (lastThought) {
|
|
123
|
+
const result = this.interlock.evaluate(lastThought.span_id || 'wave-context', lastThought.thought || lastThought.reasoning);
|
|
124
|
+
if (result.action === 'UPGRADE_MIR') {
|
|
125
|
+
this.writeAudit({
|
|
126
|
+
event: 'intelligence_upgrade_signalled',
|
|
127
|
+
new_mir: result.new_mir,
|
|
128
|
+
reason: result.reason
|
|
129
|
+
});
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { action: 'CONTINUE' };
|
|
101
134
|
}
|
|
102
135
|
|
|
103
136
|
async pause() {
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindForge v6.4.0 — Context Entropy Guard (CEG)
|
|
3
|
+
* Component: Context Entropy Guard (Pillar XI)
|
|
4
|
+
*
|
|
5
|
+
* Actively manages context density by suppressing reasoning noise
|
|
6
|
+
* and compressing repetitive semantic loops before handoff.
|
|
7
|
+
*/
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
class ContextEntropyGuard {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.SIMILARITY_SUPPRESSION_THRESHOLD = 0.85; // Suppress thoughts > 85% similar
|
|
13
|
+
this.STAGNATION_LIMIT = 3; // Max repetitive cycles before compression
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Prunes and compresses a reasoning trace to manage context entropy.
|
|
18
|
+
* @param {Array} trace - Array of reasoning trace events.
|
|
19
|
+
* @returns {Array} - Guarded reasoning trace.
|
|
20
|
+
*/
|
|
21
|
+
compress(trace) {
|
|
22
|
+
if (!trace || trace.length === 0) return [];
|
|
23
|
+
|
|
24
|
+
const result = [];
|
|
25
|
+
const history = [];
|
|
26
|
+
let loopBuffer = [];
|
|
27
|
+
|
|
28
|
+
for (const event of trace) {
|
|
29
|
+
if (event.event !== 'reasoning_trace') {
|
|
30
|
+
result.push(event);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const similarity = this._calculateMaxSimilarity(event.thought, history);
|
|
35
|
+
|
|
36
|
+
if (similarity > this.SIMILARITY_SUPPRESSION_THRESHOLD) {
|
|
37
|
+
// High similarity: Buffer for potential compression
|
|
38
|
+
loopBuffer.push(event);
|
|
39
|
+
if (loopBuffer.length >= this.STAGNATION_LIMIT) {
|
|
40
|
+
// Trigger automatic compression/digest
|
|
41
|
+
const digest = {
|
|
42
|
+
event: 'reasoning_digest',
|
|
43
|
+
summary: `Compressed reasoning loop (${loopBuffer.length} stagnant steps).`,
|
|
44
|
+
final_conclusion: event.thought,
|
|
45
|
+
timestamp: new Date().toISOString()
|
|
46
|
+
};
|
|
47
|
+
// Replace buffered noise with a single digest
|
|
48
|
+
result.push(digest);
|
|
49
|
+
loopBuffer = [];
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// If we had a short buffer that didn't reach stagnation limit, push them back
|
|
55
|
+
if (loopBuffer.length > 0) {
|
|
56
|
+
result.push(...loopBuffer);
|
|
57
|
+
loopBuffer = [];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
result.push(event);
|
|
61
|
+
history.push(event.thought);
|
|
62
|
+
if (history.length > 10) history.shift(); // Keep history window sliding
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Final flush for items remaining in buffer
|
|
66
|
+
if (loopBuffer.length > 0) {
|
|
67
|
+
result.push(...loopBuffer);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Internal Similarity Heuristic (Jaccard)
|
|
75
|
+
*/
|
|
76
|
+
_calculateMaxSimilarity(thought, history) {
|
|
77
|
+
if (history.length === 0) return 0;
|
|
78
|
+
|
|
79
|
+
const getTokens = (str) => new Set(str.toLowerCase().split(/\s+/).filter(t => t.length > 3));
|
|
80
|
+
const currentTokens = getTokens(thought);
|
|
81
|
+
|
|
82
|
+
let max = 0;
|
|
83
|
+
for (const prev of history) {
|
|
84
|
+
const prevTokens = getTokens(prev);
|
|
85
|
+
const intersection = new Set([...currentTokens].filter(x => prevTokens.has(x)));
|
|
86
|
+
const union = new Set([...currentTokens, ...prevTokens]);
|
|
87
|
+
const sim = union.size === 0 ? 0 : intersection.size / union.size;
|
|
88
|
+
if (sim > max) max = sim;
|
|
89
|
+
}
|
|
90
|
+
return max;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
module.exports = new ContextEntropyGuard();
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
const path = require('path');
|
|
9
9
|
const crypto = require('crypto');
|
|
10
|
+
const ceg = require('./context-entropy-guard');
|
|
10
11
|
|
|
11
12
|
class HandoverManager {
|
|
12
13
|
constructor(config = {}) {
|
|
@@ -34,7 +35,8 @@ class HandoverManager {
|
|
|
34
35
|
last_events: state.recentEvents,
|
|
35
36
|
memory_shards: state.memoryShards || []
|
|
36
37
|
},
|
|
37
|
-
|
|
38
|
+
// v6.4.0: Context Entropy Guard applied for active noise suppression
|
|
39
|
+
reasoning_snapshot: (Array.isArray(state.reasoningTrace)) ? ceg.compress(state.reasoningTrace) : state.reasoningTrace,
|
|
38
40
|
steering_requirements: state.blocks || []
|
|
39
41
|
};
|
|
40
42
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindForge v6.3.0 — Intelligence-Drift Coupling (IDC)
|
|
3
|
+
* Component: Intelligence Interlock
|
|
4
|
+
*
|
|
5
|
+
* New architectural bridge that listens for critical logic-drift signals
|
|
6
|
+
* and triggers proactive model upgrades in the steering engine.
|
|
7
|
+
*/
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
const driftDetector = require('./logic-drift-detector');
|
|
11
|
+
const routerSteering = require('../revops/router-steering-v2');
|
|
12
|
+
|
|
13
|
+
class IntelligenceInterlock {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.UPGRADE_THRESHOLD = 0.50; // v6.3.0 Threshold (Recalibrated for IDC readiness)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Evaluates if a model upgrade is required based on reasoning drift.
|
|
20
|
+
* @param {string} spanId
|
|
21
|
+
* @param {string} thought
|
|
22
|
+
*/
|
|
23
|
+
evaluate(spanId, thought) {
|
|
24
|
+
const analysis = driftDetector.analyze(spanId, thought);
|
|
25
|
+
|
|
26
|
+
if (analysis.drift_score > this.UPGRADE_THRESHOLD) {
|
|
27
|
+
console.log(`[IDC] Critical Drift Detected (${analysis.drift_score}). Recommending intelligence upgrade for Span ${spanId}.`);
|
|
28
|
+
return {
|
|
29
|
+
action: 'UPGRADE_MIR',
|
|
30
|
+
new_mir: 99, // Force maximum intelligence (Tier 1+)
|
|
31
|
+
reason: analysis.markers
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return { action: 'CONTINUE', drift: analysis.drift_score };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = new IntelligenceInterlock();
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindForge v6.4.0 — CEG Verification Test
|
|
3
|
+
*
|
|
4
|
+
* Simulates a "noisy" reasoning trace with repetitive thoughts
|
|
5
|
+
* and verifies that the ContextEntropyGuard (CEG) correctly
|
|
6
|
+
* suppresses noise and compresses the history.
|
|
7
|
+
*/
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
const ceg = require('./context-entropy-guard');
|
|
11
|
+
|
|
12
|
+
async function runTest() {
|
|
13
|
+
console.log('🧪 Starting CEG Verification Test...');
|
|
14
|
+
|
|
15
|
+
const trace = [
|
|
16
|
+
{ event: 'reasoning_trace', thought: 'I should analyze the target directory structure.', is_stagnant: false },
|
|
17
|
+
{ event: 'reasoning_trace', thought: 'Analyzing the directory layout now.', is_stagnant: false },
|
|
18
|
+
// Repetitive noise (to be suppressed)
|
|
19
|
+
{ event: 'reasoning_trace', thought: 'Analyzing the directory layout now.', is_stagnant: true },
|
|
20
|
+
{ event: 'reasoning_trace', thought: 'Analyzing the directory layout now.', is_stagnant: true },
|
|
21
|
+
// New thought
|
|
22
|
+
{ event: 'reasoning_trace', thought: 'Found a potential vulnerability in the config file.', is_stagnant: false },
|
|
23
|
+
// Loop (to be compressed)
|
|
24
|
+
{ event: 'reasoning_trace', thought: 'Checking config permissions.', is_stagnant: true },
|
|
25
|
+
{ event: 'reasoning_trace', thought: 'Checking config permissions.', is_stagnant: true },
|
|
26
|
+
{ event: 'reasoning_trace', thought: 'Checking config permissions.', is_stagnant: true },
|
|
27
|
+
{ event: 'reasoning_trace', thought: 'Checking config permissions.', is_stagnant: true }
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
console.log(`\nInput Trace Length: ${trace.length}`);
|
|
31
|
+
|
|
32
|
+
const compressed = ceg.compress(trace);
|
|
33
|
+
console.log(`Compressed Trace Length: ${compressed.length}`);
|
|
34
|
+
|
|
35
|
+
console.log('\n--- Final Trace Preview ---');
|
|
36
|
+
compressed.forEach((e, idx) => {
|
|
37
|
+
if (e.event === 'reasoning_digest') {
|
|
38
|
+
console.log(`[${idx}] DIGEST: ${e.summary} | Last Conclusion: ${e.final_conclusion}`);
|
|
39
|
+
} else {
|
|
40
|
+
console.log(`[${idx}] THOUGHT: ${e.thought}`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Validations
|
|
45
|
+
const hasDigest = compressed.some(e => e.event === 'reasoning_digest');
|
|
46
|
+
const totalReduction = trace.length - compressed.length;
|
|
47
|
+
|
|
48
|
+
if (hasDigest && totalReduction >= 2) {
|
|
49
|
+
console.log('\n✅ SUCCESS: CEG successfully suppressed noise and compressed the reasoning loop.');
|
|
50
|
+
} else {
|
|
51
|
+
console.error('\n❌ FAILURE: CEG failed to compress the history significantly.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
runTest().catch(err => {
|
|
57
|
+
console.error(err);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindForge v6.3.0 — IDC Verification Test
|
|
3
|
+
*
|
|
4
|
+
* Simulates a scenario where an agent starts "rambling" (low semantic density)
|
|
5
|
+
* and repeats itself, triggering the Intelligence Interlock to upgrade the MIR.
|
|
6
|
+
*/
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
const interlock = require('./intelligence-interlock');
|
|
10
|
+
|
|
11
|
+
async function runTest() {
|
|
12
|
+
console.log('🧪 Starting IDC Verification Test...');
|
|
13
|
+
|
|
14
|
+
const spanId = 'test-span-drift-001';
|
|
15
|
+
|
|
16
|
+
// 1. Stable thought
|
|
17
|
+
console.log('\n--- Step 1: Stable Thought ---');
|
|
18
|
+
const t1 = "I will implement the authentication controller by defining the login and signup routes first.";
|
|
19
|
+
const r1 = interlock.evaluate(spanId, t1);
|
|
20
|
+
console.log(`Result: ${r1.action}, Drift: ${r1.drift || 'N/A'}`);
|
|
21
|
+
|
|
22
|
+
// 2. Drifting thought (Rambling and Repetitive)
|
|
23
|
+
console.log('\n--- Step 2: Drifting Thought (Injection) ---');
|
|
24
|
+
const t2 = "I will implement the implement the implement the logic of the logic of the logic and then i will implement and then i will implement implement implement implement implement implement implement implement.";
|
|
25
|
+
const r2 = interlock.evaluate(spanId, t2);
|
|
26
|
+
console.log(`Result: ${r2.action}, Drift: ${r2.drift || 'N/A'}`);
|
|
27
|
+
|
|
28
|
+
if (r2.action === 'UPGRADE_MIR') {
|
|
29
|
+
console.log('✅ SUCCESS: IDC triggered an upgrade signal for critical drift.');
|
|
30
|
+
console.log(`Target MIR: ${r2.new_mir}`);
|
|
31
|
+
} else {
|
|
32
|
+
console.error('❌ FAILURE: IDC failed to trigger upgrade even with extreme repetition.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
runTest().catch(err => {
|
|
38
|
+
console.error(err);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
});
|
|
@@ -21,7 +21,7 @@ class RouterSteering {
|
|
|
21
21
|
* @param {Object} preferences - Manual overrides (optional)
|
|
22
22
|
*/
|
|
23
23
|
async steer(spanId, taskDescription, preferences = {}) {
|
|
24
|
-
const mir = this._calculateMIR(taskDescription);
|
|
24
|
+
const mir = preferences.mir || this._calculateMIR(taskDescription);
|
|
25
25
|
const recommendation = marketEvaluator.getBestProvider(mir);
|
|
26
26
|
|
|
27
27
|
const selection = {
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mindforge-cc",
|
|
3
|
-
"version": "6.
|
|
4
|
-
|
|
3
|
+
"version": "6.4.0",
|
|
5
4
|
"description": "MindForge — Sovereign Agentic Intelligence Framework. (CADIA v6.2 & PQAS Enabled)",
|
|
6
5
|
"bin": {
|
|
7
6
|
"mindforge-cc": "bin/install.js"
|
|
@@ -54,4 +53,4 @@
|
|
|
54
53
|
"dependencies": {
|
|
55
54
|
"express": "^4.19.2"
|
|
56
55
|
}
|
|
57
|
-
}
|
|
56
|
+
}
|