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.
Files changed (226) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +329 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +657 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/supabase/index.d.ts +20 -0
  8. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  9. package/dist/cli/commands/supabase/index.js +632 -0
  10. package/dist/cli/commands/supabase/index.js.map +1 -0
  11. package/dist/cli/index.js +3 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
  14. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
  15. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
  16. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
  17. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
  18. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
  19. package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
  20. package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
  21. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
  22. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
  23. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
  24. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
  25. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
  26. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
  27. package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
  28. package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
  29. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
  30. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
  31. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
  32. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
  33. package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
  34. package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
  35. package/dist/code-intelligence/embeddings/backends/index.js +28 -0
  36. package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
  37. package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
  38. package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
  39. package/dist/code-intelligence/embeddings/backends/types.js +30 -0
  40. package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
  41. package/dist/code-intelligence/embeddings/index.d.ts +7 -0
  42. package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
  43. package/dist/code-intelligence/embeddings/index.js +16 -1
  44. package/dist/code-intelligence/embeddings/index.js.map +1 -1
  45. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  46. package/dist/infrastructure/index.d.ts +15 -0
  47. package/dist/infrastructure/index.d.ts.map +1 -0
  48. package/dist/infrastructure/index.js +44 -0
  49. package/dist/infrastructure/index.js.map +1 -0
  50. package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
  51. package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
  52. package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
  53. package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
  54. package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
  55. package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
  56. package/dist/infrastructure/network/AuditLogger.js +284 -0
  57. package/dist/infrastructure/network/AuditLogger.js.map +1 -0
  58. package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
  59. package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
  60. package/dist/infrastructure/network/DomainWhitelist.js +216 -0
  61. package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
  62. package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
  63. package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
  64. package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
  65. package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
  66. package/dist/infrastructure/network/index.d.ts +19 -0
  67. package/dist/infrastructure/network/index.d.ts.map +1 -0
  68. package/dist/infrastructure/network/index.js +46 -0
  69. package/dist/infrastructure/network/index.js.map +1 -0
  70. package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
  71. package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
  72. package/dist/infrastructure/network/policies/default-policies.js +312 -0
  73. package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
  74. package/dist/infrastructure/network/types.d.ts +214 -0
  75. package/dist/infrastructure/network/types.d.ts.map +1 -0
  76. package/dist/infrastructure/network/types.js +25 -0
  77. package/dist/infrastructure/network/types.js.map +1 -0
  78. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
  79. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
  80. package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
  81. package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
  82. package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
  83. package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
  84. package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
  85. package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
  86. package/dist/infrastructure/sandbox/index.d.ts +18 -0
  87. package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
  88. package/dist/infrastructure/sandbox/index.js +38 -0
  89. package/dist/infrastructure/sandbox/index.js.map +1 -0
  90. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
  91. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
  92. package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
  93. package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
  94. package/dist/infrastructure/sandbox/types.d.ts +227 -0
  95. package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
  96. package/dist/infrastructure/sandbox/types.js +63 -0
  97. package/dist/infrastructure/sandbox/types.js.map +1 -0
  98. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
  99. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
  100. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
  101. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  102. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  103. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  104. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  105. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  106. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  107. package/dist/mcp/handlers/ruvector/index.js +9 -0
  108. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  109. package/dist/mcp/server-instructions.d.ts +1 -1
  110. package/dist/mcp/server-instructions.js +1 -1
  111. package/dist/mcp/server.d.ts.map +1 -1
  112. package/dist/mcp/server.js +100 -22
  113. package/dist/mcp/server.js.map +1 -1
  114. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  115. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  116. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  117. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  118. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  119. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  120. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  121. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  122. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  123. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  124. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  125. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  126. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  127. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  128. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  129. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  130. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  131. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  132. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  133. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  134. package/dist/nervous-system/index.d.ts +25 -0
  135. package/dist/nervous-system/index.d.ts.map +1 -0
  136. package/dist/nervous-system/index.js +80 -0
  137. package/dist/nervous-system/index.js.map +1 -0
  138. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  139. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  140. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  141. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  142. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  143. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  144. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  145. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  146. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  147. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  148. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  149. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  150. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  151. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  152. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  153. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  154. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  155. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  156. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  157. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  158. package/dist/nervous-system/integration/index.d.ts +22 -0
  159. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  160. package/dist/nervous-system/integration/index.js +44 -0
  161. package/dist/nervous-system/integration/index.js.map +1 -0
  162. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  163. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  164. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  165. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  166. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  167. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  168. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  169. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  170. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  171. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  172. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  173. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  174. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  175. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  176. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  177. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  178. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  179. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  180. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  181. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  182. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  183. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  184. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  185. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  186. package/dist/nervous-system/persistence/index.d.ts +22 -0
  187. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  188. package/dist/nervous-system/persistence/index.js +45 -0
  189. package/dist/nervous-system/persistence/index.js.map +1 -0
  190. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  191. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  192. package/dist/nervous-system/wasm-loader.js +188 -0
  193. package/dist/nervous-system/wasm-loader.js.map +1 -0
  194. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  195. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  196. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  197. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  198. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  199. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  200. package/dist/persistence/IPersistenceProvider.js +11 -0
  201. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  202. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  203. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  204. package/dist/persistence/SupabaseConfig.js +277 -0
  205. package/dist/persistence/SupabaseConfig.js.map +1 -0
  206. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  207. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  208. package/dist/persistence/SupabasePersistenceProvider.js +959 -0
  209. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  210. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  211. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  212. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  213. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  214. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  215. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  216. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  217. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  218. package/dist/persistence/adapters/index.d.ts +11 -0
  219. package/dist/persistence/adapters/index.d.ts.map +1 -0
  220. package/dist/persistence/adapters/index.js +20 -0
  221. package/dist/persistence/adapters/index.js.map +1 -0
  222. package/dist/persistence/index.d.ts +14 -0
  223. package/dist/persistence/index.d.ts.map +1 -1
  224. package/dist/persistence/index.js +36 -1
  225. package/dist/persistence/index.js.map +1 -1
  226. 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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"}