agentic-qe 2.8.0 → 2.8.2
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 +148 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +329 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +657 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/cli/commands/supabase/index.d.ts +20 -0
- package/dist/cli/commands/supabase/index.d.ts.map +1 -0
- package/dist/cli/commands/supabase/index.js +632 -0
- package/dist/cli/commands/supabase/index.js.map +1 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
- package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
- package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
- package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
- package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
- package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
- package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/index.js +28 -0
- package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
- package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/backends/types.js +30 -0
- package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
- package/dist/code-intelligence/embeddings/index.d.ts +7 -0
- package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
- package/dist/code-intelligence/embeddings/index.js +16 -1
- package/dist/code-intelligence/embeddings/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/infrastructure/index.d.ts +15 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +44 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
- package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
- package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
- package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
- package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
- package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
- package/dist/infrastructure/network/AuditLogger.js +284 -0
- package/dist/infrastructure/network/AuditLogger.js.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
- package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
- package/dist/infrastructure/network/DomainWhitelist.js +216 -0
- package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
- package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
- package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
- package/dist/infrastructure/network/index.d.ts +19 -0
- package/dist/infrastructure/network/index.d.ts.map +1 -0
- package/dist/infrastructure/network/index.js +46 -0
- package/dist/infrastructure/network/index.js.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
- package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
- package/dist/infrastructure/network/policies/default-policies.js +312 -0
- package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
- package/dist/infrastructure/network/types.d.ts +214 -0
- package/dist/infrastructure/network/types.d.ts.map +1 -0
- package/dist/infrastructure/network/types.js +25 -0
- package/dist/infrastructure/network/types.js.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
- package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
- package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
- package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
- package/dist/infrastructure/sandbox/index.d.ts +18 -0
- package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/index.js +38 -0
- package/dist/infrastructure/sandbox/index.js.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
- package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
- package/dist/infrastructure/sandbox/types.d.ts +227 -0
- package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/types.js +63 -0
- package/dist/infrastructure/sandbox/types.js.map +1 -0
- package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
- package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
- package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
- package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
- package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
- package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
- package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
- package/dist/mcp/handlers/ruvector/index.js +9 -0
- package/dist/mcp/handlers/ruvector/index.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +100 -22
- package/dist/mcp/server.js.map +1 -1
- package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
- package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
- package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
- package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
- package/dist/nervous-system/adapters/CircadianController.js +882 -0
- package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
- package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
- package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
- package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
- package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
- package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
- package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
- package/dist/nervous-system/index.d.ts +25 -0
- package/dist/nervous-system/index.d.ts.map +1 -0
- package/dist/nervous-system/index.js +80 -0
- package/dist/nervous-system/index.js.map +1 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
- package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
- package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
- package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
- package/dist/nervous-system/integration/CircadianAgent.js +696 -0
- package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
- package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
- package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
- package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
- package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
- package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
- package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
- package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
- package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
- package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
- package/dist/nervous-system/integration/index.d.ts +22 -0
- package/dist/nervous-system/integration/index.d.ts.map +1 -0
- package/dist/nervous-system/integration/index.js +44 -0
- package/dist/nervous-system/integration/index.js.map +1 -0
- package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
- package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
- package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
- package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
- package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
- package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
- package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
- package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
- package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
- package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
- package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
- package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
- package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
- package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
- package/dist/nervous-system/persistence/index.d.ts +22 -0
- package/dist/nervous-system/persistence/index.d.ts.map +1 -0
- package/dist/nervous-system/persistence/index.js +45 -0
- package/dist/nervous-system/persistence/index.js.map +1 -0
- package/dist/nervous-system/wasm-loader.d.ts +52 -0
- package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
- package/dist/nervous-system/wasm-loader.js +188 -0
- package/dist/nervous-system/wasm-loader.js.map +1 -0
- package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
- package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/HybridPersistenceProvider.js +1086 -0
- package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
- package/dist/persistence/IPersistenceProvider.d.ts +657 -0
- package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/IPersistenceProvider.js +11 -0
- package/dist/persistence/IPersistenceProvider.js.map +1 -0
- package/dist/persistence/SupabaseConfig.d.ts +176 -0
- package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
- package/dist/persistence/SupabaseConfig.js +277 -0
- package/dist/persistence/SupabaseConfig.js.map +1 -0
- package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
- package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
- package/dist/persistence/SupabasePersistenceProvider.js +959 -0
- package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
- package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
- package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
- package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
- package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
- package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
- package/dist/persistence/adapters/index.d.ts +11 -0
- package/dist/persistence/adapters/index.d.ts.map +1 -0
- package/dist/persistence/adapters/index.js +20 -0
- package/dist/persistence/adapters/index.js.map +1 -0
- package/dist/persistence/index.d.ts +14 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +36 -1
- package/dist/persistence/index.js.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Global Workspace Adapter for RuVector Nervous System
|
|
4
|
+
*
|
|
5
|
+
* Implements Global Workspace Theory for agent coordination:
|
|
6
|
+
* - Limited attention capacity (Miller's Law: 7 +/- 2 items)
|
|
7
|
+
* - Salience-based competition for attention slots
|
|
8
|
+
* - Natural bottleneck prevents information overload
|
|
9
|
+
* - Agents check if they have attention before full execution
|
|
10
|
+
*
|
|
11
|
+
* @see Baars, B.J. (1988) A Cognitive Theory of Consciousness
|
|
12
|
+
* @module nervous-system/adapters/GlobalWorkspaceAdapter
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.GlobalWorkspaceAdapter = void 0;
|
|
49
|
+
exports.createGlobalWorkspace = createGlobalWorkspace;
|
|
50
|
+
exports.createFocusedWorkspace = createFocusedWorkspace;
|
|
51
|
+
exports.createExpandedWorkspace = createExpandedWorkspace;
|
|
52
|
+
const node_fs_1 = require("node:fs");
|
|
53
|
+
const node_path_1 = require("node:path");
|
|
54
|
+
const nervous_system_wasm_1 = __importStar(require("@ruvector/nervous-system-wasm"));
|
|
55
|
+
/**
|
|
56
|
+
* Resolve WASM file path from node_modules
|
|
57
|
+
* Works in both CommonJS and ESM environments
|
|
58
|
+
*/
|
|
59
|
+
function resolveWasmPath() {
|
|
60
|
+
// Try to resolve from require.resolve (CommonJS)
|
|
61
|
+
try {
|
|
62
|
+
const packagePath = require.resolve('@ruvector/nervous-system-wasm');
|
|
63
|
+
const packageDir = packagePath.substring(0, packagePath.lastIndexOf('/'));
|
|
64
|
+
return (0, node_path_1.join)(packageDir, 'ruvector_nervous_system_wasm_bg.wasm');
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Fallback: look relative to process.cwd()
|
|
68
|
+
return (0, node_path_1.join)(process.cwd(), 'node_modules', '@ruvector', 'nervous-system-wasm', 'ruvector_nervous_system_wasm_bg.wasm');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Implementation
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Global Workspace Adapter wrapping WASM GlobalWorkspace
|
|
76
|
+
*
|
|
77
|
+
* Provides agent coordination through limited attention capacity.
|
|
78
|
+
* Based on Global Workspace Theory, this creates a natural bottleneck
|
|
79
|
+
* that prevents information overload while ensuring high-priority
|
|
80
|
+
* items receive processing resources.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* // Initialize adapter
|
|
85
|
+
* const workspace = await GlobalWorkspaceAdapter.create({ capacity: 7 });
|
|
86
|
+
*
|
|
87
|
+
* // Agent broadcasts its representation
|
|
88
|
+
* const accepted = workspace.broadcast({
|
|
89
|
+
* agentId: 'test-generator',
|
|
90
|
+
* content: new Float32Array([0.9, 0.8, 0.7]),
|
|
91
|
+
* salience: 0.85,
|
|
92
|
+
* timestamp: Date.now()
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* // Run competition
|
|
96
|
+
* workspace.compete();
|
|
97
|
+
*
|
|
98
|
+
* // Check if agent has attention before executing
|
|
99
|
+
* if (workspace.hasAttention('test-generator')) {
|
|
100
|
+
* // Execute full agent logic
|
|
101
|
+
* }
|
|
102
|
+
*
|
|
103
|
+
* // Get top attention winners
|
|
104
|
+
* const winners = workspace.retrieveTopK(4);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
class GlobalWorkspaceAdapter {
|
|
108
|
+
/**
|
|
109
|
+
* Private constructor - use create() factory method
|
|
110
|
+
*/
|
|
111
|
+
constructor(config) {
|
|
112
|
+
this.config = config;
|
|
113
|
+
this.agentSourceMap = new Map();
|
|
114
|
+
this.sourceIdCounter = 0;
|
|
115
|
+
this.lastCompetitionTime = Date.now();
|
|
116
|
+
// Create workspace with threshold if specified
|
|
117
|
+
if (config.threshold > 0) {
|
|
118
|
+
this.workspace = nervous_system_wasm_1.GlobalWorkspace.with_threshold(config.capacity, config.threshold);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.workspace = new nervous_system_wasm_1.GlobalWorkspace(config.capacity);
|
|
122
|
+
}
|
|
123
|
+
// Set decay rate
|
|
124
|
+
this.workspace.set_decay_rate(config.decayRate);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Initialize WASM module for Node.js environment
|
|
128
|
+
*
|
|
129
|
+
* Must be called before creating any GlobalWorkspaceAdapter instances.
|
|
130
|
+
* Safe to call multiple times - will only initialize once.
|
|
131
|
+
*/
|
|
132
|
+
static async initializeWasm() {
|
|
133
|
+
if (GlobalWorkspaceAdapter.wasmInitialized) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
// Find the WASM file in node_modules
|
|
137
|
+
const wasmPath = resolveWasmPath();
|
|
138
|
+
// Load WASM bytes
|
|
139
|
+
const wasmBytes = (0, node_fs_1.readFileSync)(wasmPath);
|
|
140
|
+
// Initialize with the buffer
|
|
141
|
+
await (0, nervous_system_wasm_1.default)(wasmBytes);
|
|
142
|
+
GlobalWorkspaceAdapter.wasmInitialized = true;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Factory method to create a new GlobalWorkspaceAdapter
|
|
146
|
+
*
|
|
147
|
+
* @param config - Configuration options
|
|
148
|
+
* @returns Initialized GlobalWorkspaceAdapter instance
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* const workspace = await GlobalWorkspaceAdapter.create({
|
|
153
|
+
* capacity: 7, // Miller's Law: 7 +/- 2
|
|
154
|
+
* threshold: 0.1, // Minimum salience to enter workspace
|
|
155
|
+
* decayRate: 0.05, // Salience decay per competition
|
|
156
|
+
* defaultLifetimeMs: 30000 // 30 second lifetime
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
static async create(config = {}) {
|
|
161
|
+
// Ensure WASM is initialized
|
|
162
|
+
await GlobalWorkspaceAdapter.initializeWasm();
|
|
163
|
+
// Apply defaults (Miller's Law: 7 +/- 2, we use 7)
|
|
164
|
+
const fullConfig = {
|
|
165
|
+
capacity: config.capacity ?? 7,
|
|
166
|
+
threshold: config.threshold ?? 0.1,
|
|
167
|
+
decayRate: config.decayRate ?? 0.05,
|
|
168
|
+
defaultLifetimeMs: config.defaultLifetimeMs ?? 30000,
|
|
169
|
+
};
|
|
170
|
+
// Validate capacity (Miller's Law bounds)
|
|
171
|
+
if (fullConfig.capacity < 4 || fullConfig.capacity > 9) {
|
|
172
|
+
console.warn(`[GlobalWorkspaceAdapter] Capacity ${fullConfig.capacity} outside Miller's Law bounds (4-9). ` +
|
|
173
|
+
'Consider using 5-7 for optimal agent coordination.');
|
|
174
|
+
}
|
|
175
|
+
return new GlobalWorkspaceAdapter(fullConfig);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Synchronous factory method for when WASM is pre-initialized
|
|
179
|
+
*
|
|
180
|
+
* @param config - Configuration options
|
|
181
|
+
* @returns GlobalWorkspaceAdapter instance
|
|
182
|
+
* @throws Error if WASM is not initialized
|
|
183
|
+
*/
|
|
184
|
+
static createSync(config = {}) {
|
|
185
|
+
if (!GlobalWorkspaceAdapter.wasmInitialized) {
|
|
186
|
+
throw new Error('[GlobalWorkspaceAdapter] WASM not initialized. Call initializeWasm() first or use create().');
|
|
187
|
+
}
|
|
188
|
+
const fullConfig = {
|
|
189
|
+
capacity: config.capacity ?? 7,
|
|
190
|
+
threshold: config.threshold ?? 0.1,
|
|
191
|
+
decayRate: config.decayRate ?? 0.05,
|
|
192
|
+
defaultLifetimeMs: config.defaultLifetimeMs ?? 30000,
|
|
193
|
+
};
|
|
194
|
+
return new GlobalWorkspaceAdapter(fullConfig);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get or create a source ID for an agent
|
|
198
|
+
*/
|
|
199
|
+
getSourceId(agentId) {
|
|
200
|
+
// Check if agent already has a source ID
|
|
201
|
+
for (const [sourceId, id] of this.agentSourceMap) {
|
|
202
|
+
if (id === agentId) {
|
|
203
|
+
return sourceId;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Assign new source ID
|
|
207
|
+
const sourceId = this.sourceIdCounter++;
|
|
208
|
+
this.agentSourceMap.set(sourceId, agentId);
|
|
209
|
+
return sourceId;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get agent ID from source ID
|
|
213
|
+
*/
|
|
214
|
+
getAgentId(sourceId) {
|
|
215
|
+
return this.agentSourceMap.get(sourceId);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Broadcast an agent representation to the workspace
|
|
219
|
+
*
|
|
220
|
+
* The representation competes for one of the limited attention slots.
|
|
221
|
+
* High-salience items are more likely to be accepted and maintained.
|
|
222
|
+
*
|
|
223
|
+
* @param rep - Agent representation to broadcast
|
|
224
|
+
* @returns True if accepted into workspace, false if rejected
|
|
225
|
+
*/
|
|
226
|
+
broadcast(rep) {
|
|
227
|
+
// Validate salience bounds
|
|
228
|
+
const salience = Math.max(0, Math.min(1, rep.salience));
|
|
229
|
+
// Convert content to Float32Array if needed
|
|
230
|
+
const content = rep.content instanceof Float32Array
|
|
231
|
+
? rep.content
|
|
232
|
+
: new Float32Array(rep.content);
|
|
233
|
+
// Get/create source ID for agent
|
|
234
|
+
const sourceId = this.getSourceId(rep.agentId);
|
|
235
|
+
// Convert timestamp to BigInt (WASM requires BigInt for timestamp)
|
|
236
|
+
const timestamp = BigInt(rep.timestamp);
|
|
237
|
+
// Create workspace item
|
|
238
|
+
const item = new nervous_system_wasm_1.WorkspaceItem(content, salience, sourceId, timestamp);
|
|
239
|
+
// Broadcast to workspace
|
|
240
|
+
const accepted = this.workspace.broadcast(item);
|
|
241
|
+
return accepted;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Run competition for attention slots
|
|
245
|
+
*
|
|
246
|
+
* This applies salience decay, removes expired items,
|
|
247
|
+
* and updates the attention hierarchy based on current salience values.
|
|
248
|
+
*/
|
|
249
|
+
compete() {
|
|
250
|
+
this.workspace.compete();
|
|
251
|
+
this.lastCompetitionTime = Date.now();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Retrieve top-k attention winners
|
|
255
|
+
*
|
|
256
|
+
* Returns the k most salient items currently in the workspace,
|
|
257
|
+
* sorted by salience (highest first).
|
|
258
|
+
*
|
|
259
|
+
* @param k - Number of top items to retrieve (clamped to available)
|
|
260
|
+
* @returns Array of attention results
|
|
261
|
+
*/
|
|
262
|
+
retrieveTopK(k) {
|
|
263
|
+
// Handle empty workspace
|
|
264
|
+
if (this.workspace.len === 0) {
|
|
265
|
+
return [];
|
|
266
|
+
}
|
|
267
|
+
// Clamp k to valid range
|
|
268
|
+
const clampedK = Math.max(1, Math.min(k, this.workspace.len));
|
|
269
|
+
// Get top-k from WASM - returns array of Maps
|
|
270
|
+
const rawItems = this.workspace.retrieve_top_k(clampedK);
|
|
271
|
+
// Handle case where workspace returns undefined or non-array
|
|
272
|
+
if (!rawItems || !Array.isArray(rawItems)) {
|
|
273
|
+
return [];
|
|
274
|
+
}
|
|
275
|
+
// Convert to AttentionResult array
|
|
276
|
+
const results = [];
|
|
277
|
+
for (let i = 0; i < rawItems.length; i++) {
|
|
278
|
+
const item = rawItems[i];
|
|
279
|
+
// WASM returns Maps with keys: content, id, salience, source_module, timestamp
|
|
280
|
+
let sourceModule;
|
|
281
|
+
let salience;
|
|
282
|
+
let content;
|
|
283
|
+
if (item instanceof Map) {
|
|
284
|
+
// Handle Map return type from WASM
|
|
285
|
+
sourceModule = item.get('source_module') ?? 0;
|
|
286
|
+
salience = item.get('salience') ?? 0;
|
|
287
|
+
const rawContent = item.get('content');
|
|
288
|
+
content = rawContent instanceof Float32Array
|
|
289
|
+
? rawContent
|
|
290
|
+
: new Float32Array(Array.isArray(rawContent) ? rawContent : []);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Fallback for direct property access (WorkspaceItem)
|
|
294
|
+
sourceModule =
|
|
295
|
+
typeof item.source_module === 'number' ? item.source_module : 0;
|
|
296
|
+
salience = typeof item.salience === 'number' ? item.salience : 0;
|
|
297
|
+
content =
|
|
298
|
+
item.content instanceof Float32Array
|
|
299
|
+
? item.content
|
|
300
|
+
: typeof item.get_content === 'function'
|
|
301
|
+
? item.get_content()
|
|
302
|
+
: new Float32Array(0);
|
|
303
|
+
}
|
|
304
|
+
const agentId = this.getAgentId(sourceModule) ?? `unknown-${sourceModule}`;
|
|
305
|
+
results.push({
|
|
306
|
+
agentId,
|
|
307
|
+
salience,
|
|
308
|
+
content,
|
|
309
|
+
hasAttention: true,
|
|
310
|
+
rank: i,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
return results;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Get current workspace occupancy metrics
|
|
317
|
+
*
|
|
318
|
+
* @returns Occupancy information including load, capacity, and availability
|
|
319
|
+
*/
|
|
320
|
+
getOccupancy() {
|
|
321
|
+
const current = this.workspace.len;
|
|
322
|
+
const capacity = this.workspace.capacity;
|
|
323
|
+
const available = this.workspace.available_slots();
|
|
324
|
+
const load = this.workspace.current_load();
|
|
325
|
+
return {
|
|
326
|
+
current,
|
|
327
|
+
capacity,
|
|
328
|
+
available,
|
|
329
|
+
load,
|
|
330
|
+
isFull: this.workspace.is_full(),
|
|
331
|
+
isEmpty: this.workspace.is_empty(),
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Get agent synchronization metrics
|
|
336
|
+
*
|
|
337
|
+
* Provides metrics for understanding agent coordination quality:
|
|
338
|
+
* - Average salience indicates overall activity level
|
|
339
|
+
* - Synchronization score measures salience distribution uniformity
|
|
340
|
+
*
|
|
341
|
+
* @returns Synchronization metrics
|
|
342
|
+
*/
|
|
343
|
+
getSynchronization() {
|
|
344
|
+
const averageSalience = this.workspace.average_salience();
|
|
345
|
+
const activeAgents = this.workspace.len;
|
|
346
|
+
const timeSinceCompetition = Date.now() - this.lastCompetitionTime;
|
|
347
|
+
// Calculate synchronization score based on salience distribution
|
|
348
|
+
// Higher score means more uniform distribution (better coordination)
|
|
349
|
+
// Low variance = high sync, high variance = low sync
|
|
350
|
+
let synchronizationScore = 0;
|
|
351
|
+
if (activeAgents > 0) {
|
|
352
|
+
const topItems = this.retrieveTopK(activeAgents);
|
|
353
|
+
if (topItems.length > 1) {
|
|
354
|
+
// Calculate variance in salience
|
|
355
|
+
const saliences = topItems.map((t) => t.salience);
|
|
356
|
+
const mean = saliences.reduce((a, b) => a + b, 0) / saliences.length;
|
|
357
|
+
const variance = saliences.reduce((sum, s) => sum + Math.pow(s - mean, 2), 0) /
|
|
358
|
+
saliences.length;
|
|
359
|
+
// Convert variance to synchronization score (inverse relationship)
|
|
360
|
+
// Max variance for [0,1] range is 0.25 (all at 0 or 1)
|
|
361
|
+
synchronizationScore = Math.max(0, 1 - variance * 4);
|
|
362
|
+
}
|
|
363
|
+
else if (topItems.length === 1) {
|
|
364
|
+
synchronizationScore = 1; // Single agent is perfectly synchronized
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
averageSalience,
|
|
369
|
+
activeAgents,
|
|
370
|
+
timeSinceCompetition,
|
|
371
|
+
synchronizationScore,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Check if a specific agent currently has attention
|
|
376
|
+
*
|
|
377
|
+
* Use this to determine if an agent should execute its full logic
|
|
378
|
+
* or defer to higher-priority agents.
|
|
379
|
+
*
|
|
380
|
+
* @param agentId - Agent ID to check
|
|
381
|
+
* @returns True if agent has an attention slot
|
|
382
|
+
*/
|
|
383
|
+
hasAttention(agentId) {
|
|
384
|
+
// Handle empty workspace
|
|
385
|
+
if (this.workspace.len === 0) {
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
388
|
+
// Retrieve all current items - returns array of Maps
|
|
389
|
+
const rawItems = this.workspace.retrieve();
|
|
390
|
+
if (!rawItems || !Array.isArray(rawItems)) {
|
|
391
|
+
return false;
|
|
392
|
+
}
|
|
393
|
+
// Check if agent has a representation in workspace
|
|
394
|
+
for (const item of rawItems) {
|
|
395
|
+
let sourceModule;
|
|
396
|
+
if (item instanceof Map) {
|
|
397
|
+
sourceModule = item.get('source_module') ?? -1;
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
sourceModule =
|
|
401
|
+
typeof item.source_module === 'number' ? item.source_module : -1;
|
|
402
|
+
}
|
|
403
|
+
const itemAgentId = this.getAgentId(sourceModule);
|
|
404
|
+
if (itemAgentId === agentId) {
|
|
405
|
+
return true;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return false;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Get the most salient agent currently in workspace
|
|
412
|
+
*
|
|
413
|
+
* @returns AgentId of most salient agent, or undefined if workspace empty
|
|
414
|
+
*/
|
|
415
|
+
getMostSalient() {
|
|
416
|
+
const item = this.workspace.most_salient();
|
|
417
|
+
if (!item) {
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
const sourceModule = item.source_module;
|
|
421
|
+
return this.getAgentId(sourceModule);
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Update salience for a specific agent
|
|
425
|
+
*
|
|
426
|
+
* Note: The WASM GlobalWorkspace returns serialized Maps from retrieve(),
|
|
427
|
+
* so direct salience updates on items are not possible. To update an agent's
|
|
428
|
+
* salience, you need to broadcast a new representation with the updated value.
|
|
429
|
+
*
|
|
430
|
+
* @param agentId - Agent to update
|
|
431
|
+
* @param newSalience - New salience value (0.0-1.0)
|
|
432
|
+
* @returns True if agent exists in source map (update requires re-broadcast)
|
|
433
|
+
*/
|
|
434
|
+
updateAgentSalience(agentId, newSalience) {
|
|
435
|
+
// Check if agent exists in source map
|
|
436
|
+
let sourceId;
|
|
437
|
+
for (const [id, aid] of this.agentSourceMap.entries()) {
|
|
438
|
+
if (aid === agentId) {
|
|
439
|
+
sourceId = id;
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
if (sourceId === undefined) {
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
// Note: WASM retrieve() returns Maps, not live WorkspaceItem references
|
|
447
|
+
// To update salience, the agent must broadcast a new representation
|
|
448
|
+
// This method returns true if the agent is known, indicating a re-broadcast is needed
|
|
449
|
+
console.warn(`[GlobalWorkspaceAdapter] updateAgentSalience: Agent "${agentId}" found. ` +
|
|
450
|
+
`To update salience to ${newSalience}, broadcast a new representation.`);
|
|
451
|
+
return true;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Clear all items from workspace
|
|
455
|
+
*/
|
|
456
|
+
clear() {
|
|
457
|
+
this.workspace.clear();
|
|
458
|
+
this.agentSourceMap.clear();
|
|
459
|
+
this.sourceIdCounter = 0;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Dispose of resources
|
|
463
|
+
*
|
|
464
|
+
* Call this when done with the adapter to free WASM memory.
|
|
465
|
+
*/
|
|
466
|
+
dispose() {
|
|
467
|
+
this.workspace.free();
|
|
468
|
+
this.agentSourceMap.clear();
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Get current configuration
|
|
472
|
+
*/
|
|
473
|
+
getConfig() {
|
|
474
|
+
return { ...this.config };
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Get adapter statistics for debugging
|
|
478
|
+
*/
|
|
479
|
+
getStats() {
|
|
480
|
+
return {
|
|
481
|
+
occupancy: this.getOccupancy(),
|
|
482
|
+
synchronization: this.getSynchronization(),
|
|
483
|
+
config: this.getConfig(),
|
|
484
|
+
agentCount: this.agentSourceMap.size,
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
exports.GlobalWorkspaceAdapter = GlobalWorkspaceAdapter;
|
|
489
|
+
/** Whether WASM has been initialized */
|
|
490
|
+
GlobalWorkspaceAdapter.wasmInitialized = false;
|
|
491
|
+
// ============================================================================
|
|
492
|
+
// Utility Functions
|
|
493
|
+
// ============================================================================
|
|
494
|
+
/**
|
|
495
|
+
* Create a default GlobalWorkspaceAdapter with Miller's Law capacity
|
|
496
|
+
*
|
|
497
|
+
* Convenience function for quick initialization.
|
|
498
|
+
*
|
|
499
|
+
* @returns Initialized GlobalWorkspaceAdapter with default settings
|
|
500
|
+
*/
|
|
501
|
+
async function createGlobalWorkspace() {
|
|
502
|
+
return GlobalWorkspaceAdapter.create({ capacity: 7 });
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Create a GlobalWorkspaceAdapter optimized for focused attention (4 items)
|
|
506
|
+
*
|
|
507
|
+
* Use this for scenarios requiring very focused agent coordination.
|
|
508
|
+
*
|
|
509
|
+
* @returns Initialized GlobalWorkspaceAdapter with capacity 4
|
|
510
|
+
*/
|
|
511
|
+
async function createFocusedWorkspace() {
|
|
512
|
+
return GlobalWorkspaceAdapter.create({
|
|
513
|
+
capacity: 4,
|
|
514
|
+
threshold: 0.2, // Higher threshold for focused attention
|
|
515
|
+
decayRate: 0.08, // Faster decay to maintain focus
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Create a GlobalWorkspaceAdapter with expanded attention (9 items)
|
|
520
|
+
*
|
|
521
|
+
* Use this for scenarios requiring broader agent coordination.
|
|
522
|
+
*
|
|
523
|
+
* @returns Initialized GlobalWorkspaceAdapter with capacity 9
|
|
524
|
+
*/
|
|
525
|
+
async function createExpandedWorkspace() {
|
|
526
|
+
return GlobalWorkspaceAdapter.create({
|
|
527
|
+
capacity: 9,
|
|
528
|
+
threshold: 0.05, // Lower threshold for broader inclusion
|
|
529
|
+
decayRate: 0.03, // Slower decay to maintain more items
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
//# sourceMappingURL=GlobalWorkspaceAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalWorkspaceAdapter.js","sourceRoot":"","sources":["../../../src/nervous-system/adapters/GlobalWorkspaceAdapter.ts"],"names":[],"mappings":"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"}
|