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.
Files changed (227) hide show
  1. package/.env.example +78 -0
  2. package/README.md +282 -0
  3. package/dist/src/active-inference/actions.d.ts +75 -0
  4. package/dist/src/active-inference/actions.js +250 -0
  5. package/dist/src/active-inference/autonomous-loop.d.ts +103 -0
  6. package/dist/src/active-inference/autonomous-loop.js +289 -0
  7. package/dist/src/active-inference/core.d.ts +85 -0
  8. package/dist/src/active-inference/core.js +555 -0
  9. package/dist/src/active-inference/demo-autonomous-loop.d.ts +8 -0
  10. package/dist/src/active-inference/demo-autonomous-loop.js +338 -0
  11. package/dist/src/active-inference/demo-value-integration.d.ts +8 -0
  12. package/dist/src/active-inference/demo-value-integration.js +174 -0
  13. package/dist/src/active-inference/index.d.ts +32 -0
  14. package/dist/src/active-inference/index.js +88 -0
  15. package/dist/src/active-inference/integration.d.ts +114 -0
  16. package/dist/src/active-inference/integration.js +698 -0
  17. package/dist/src/active-inference/memory-integration.d.ts +51 -0
  18. package/dist/src/active-inference/memory-integration.js +232 -0
  19. package/dist/src/active-inference/observations.d.ts +67 -0
  20. package/dist/src/active-inference/observations.js +147 -0
  21. package/dist/src/active-inference/test-active-inference.d.ts +8 -0
  22. package/dist/src/active-inference/test-active-inference.js +320 -0
  23. package/dist/src/active-inference/test-value-integration.d.ts +6 -0
  24. package/dist/src/active-inference/test-value-integration.js +168 -0
  25. package/dist/src/active-inference/types.d.ts +150 -0
  26. package/dist/src/active-inference/types.js +59 -0
  27. package/dist/src/active-inference/value-integration.d.ts +164 -0
  28. package/dist/src/active-inference/value-integration.js +459 -0
  29. package/dist/src/agents/base-agent.d.ts +53 -0
  30. package/dist/src/agents/base-agent.js +178 -0
  31. package/dist/src/agents/builder.d.ts +67 -0
  32. package/dist/src/agents/builder.js +537 -0
  33. package/dist/src/agents/critic.d.ts +35 -0
  34. package/dist/src/agents/critic.js +322 -0
  35. package/dist/src/agents/ethicist.d.ts +54 -0
  36. package/dist/src/agents/ethicist.js +393 -0
  37. package/dist/src/agents/explorer.d.ts +26 -0
  38. package/dist/src/agents/explorer.js +216 -0
  39. package/dist/src/agents/feeling.d.ts +41 -0
  40. package/dist/src/agents/feeling.js +320 -0
  41. package/dist/src/agents/index.d.ts +111 -0
  42. package/dist/src/agents/index.js +222 -0
  43. package/dist/src/agents/memory.d.ts +69 -0
  44. package/dist/src/agents/memory.js +404 -0
  45. package/dist/src/agents/message-bus.d.ts +88 -0
  46. package/dist/src/agents/message-bus.js +267 -0
  47. package/dist/src/agents/narrator.d.ts +90 -0
  48. package/dist/src/agents/narrator.js +473 -0
  49. package/dist/src/agents/planner.d.ts +38 -0
  50. package/dist/src/agents/planner.js +341 -0
  51. package/dist/src/agents/predictor.d.ts +73 -0
  52. package/dist/src/agents/predictor.js +506 -0
  53. package/dist/src/agents/sensor.d.ts +88 -0
  54. package/dist/src/agents/sensor.js +377 -0
  55. package/dist/src/agents/test-agents.d.ts +6 -0
  56. package/dist/src/agents/test-agents.js +73 -0
  57. package/dist/src/agents/types.d.ts +194 -0
  58. package/dist/src/agents/types.js +7 -0
  59. package/dist/src/brain/index.d.ts +185 -0
  60. package/dist/src/brain/index.js +843 -0
  61. package/dist/src/brain/trace.d.ts +91 -0
  62. package/dist/src/brain/trace.js +327 -0
  63. package/dist/src/brain/types.d.ts +165 -0
  64. package/dist/src/brain/types.js +51 -0
  65. package/dist/src/cli/chat.d.ts +237 -0
  66. package/dist/src/cli/chat.js +1959 -0
  67. package/dist/src/cli/dispatcher.d.ts +182 -0
  68. package/dist/src/cli/dispatcher.js +718 -0
  69. package/dist/src/cli/human-loop.d.ts +170 -0
  70. package/dist/src/cli/human-loop.js +543 -0
  71. package/dist/src/cli/index.d.ts +12 -0
  72. package/dist/src/cli/index.js +28 -0
  73. package/dist/src/cli/interactive.d.ts +141 -0
  74. package/dist/src/cli/interactive.js +757 -0
  75. package/dist/src/cli/ui.d.ts +205 -0
  76. package/dist/src/cli/ui.js +632 -0
  77. package/dist/src/consciousness/attention-schema.d.ts +154 -0
  78. package/dist/src/consciousness/attention-schema.js +432 -0
  79. package/dist/src/consciousness/global-workspace.d.ts +149 -0
  80. package/dist/src/consciousness/global-workspace.js +422 -0
  81. package/dist/src/consciousness/index.d.ts +186 -0
  82. package/dist/src/consciousness/index.js +476 -0
  83. package/dist/src/consciousness/phi-calculator.d.ts +119 -0
  84. package/dist/src/consciousness/phi-calculator.js +445 -0
  85. package/dist/src/consciousness/phi-decisions.d.ts +169 -0
  86. package/dist/src/consciousness/phi-decisions.js +383 -0
  87. package/dist/src/consciousness/phi-monitor.d.ts +153 -0
  88. package/dist/src/consciousness/phi-monitor.js +465 -0
  89. package/dist/src/consciousness/types.d.ts +260 -0
  90. package/dist/src/consciousness/types.js +44 -0
  91. package/dist/src/daemon/dream-mode.d.ts +115 -0
  92. package/dist/src/daemon/dream-mode.js +470 -0
  93. package/dist/src/daemon/index.d.ts +162 -0
  94. package/dist/src/daemon/index.js +542 -0
  95. package/dist/src/daemon/maintenance.d.ts +139 -0
  96. package/dist/src/daemon/maintenance.js +549 -0
  97. package/dist/src/daemon/process.d.ts +82 -0
  98. package/dist/src/daemon/process.js +442 -0
  99. package/dist/src/daemon/scheduler.d.ts +90 -0
  100. package/dist/src/daemon/scheduler.js +494 -0
  101. package/dist/src/daemon/types.d.ts +213 -0
  102. package/dist/src/daemon/types.js +50 -0
  103. package/dist/src/epistemic/index.d.ts +74 -0
  104. package/dist/src/epistemic/index.js +225 -0
  105. package/dist/src/grounding/epistemic-stack.d.ts +100 -0
  106. package/dist/src/grounding/epistemic-stack.js +408 -0
  107. package/dist/src/grounding/feedback.d.ts +98 -0
  108. package/dist/src/grounding/feedback.js +276 -0
  109. package/dist/src/grounding/index.d.ts +123 -0
  110. package/dist/src/grounding/index.js +224 -0
  111. package/dist/src/grounding/verifier.d.ts +149 -0
  112. package/dist/src/grounding/verifier.js +484 -0
  113. package/dist/src/healing/detector.d.ts +110 -0
  114. package/dist/src/healing/detector.js +436 -0
  115. package/dist/src/healing/fixer.d.ts +138 -0
  116. package/dist/src/healing/fixer.js +572 -0
  117. package/dist/src/healing/index.d.ts +23 -0
  118. package/dist/src/healing/index.js +43 -0
  119. package/dist/src/hooks/index.d.ts +135 -0
  120. package/dist/src/hooks/index.js +317 -0
  121. package/dist/src/index.d.ts +23 -0
  122. package/dist/src/index.js +1266 -0
  123. package/dist/src/kernel/index.d.ts +155 -0
  124. package/dist/src/kernel/index.js +795 -0
  125. package/dist/src/kernel/invariants.d.ts +153 -0
  126. package/dist/src/kernel/invariants.js +355 -0
  127. package/dist/src/kernel/test-kernel.d.ts +6 -0
  128. package/dist/src/kernel/test-kernel.js +108 -0
  129. package/dist/src/kernel/test-real-mcp.d.ts +10 -0
  130. package/dist/src/kernel/test-real-mcp.js +295 -0
  131. package/dist/src/llm/index.d.ts +146 -0
  132. package/dist/src/llm/index.js +428 -0
  133. package/dist/src/llm/router.d.ts +136 -0
  134. package/dist/src/llm/router.js +510 -0
  135. package/dist/src/mcp/index.d.ts +85 -0
  136. package/dist/src/mcp/index.js +657 -0
  137. package/dist/src/mcp/resilient.d.ts +139 -0
  138. package/dist/src/mcp/resilient.js +417 -0
  139. package/dist/src/memory/cache.d.ts +118 -0
  140. package/dist/src/memory/cache.js +356 -0
  141. package/dist/src/memory/cognitive-workspace.d.ts +231 -0
  142. package/dist/src/memory/cognitive-workspace.js +521 -0
  143. package/dist/src/memory/consolidation.d.ts +99 -0
  144. package/dist/src/memory/consolidation.js +443 -0
  145. package/dist/src/memory/episodic.d.ts +114 -0
  146. package/dist/src/memory/episodic.js +394 -0
  147. package/dist/src/memory/forgetting.d.ts +134 -0
  148. package/dist/src/memory/forgetting.js +324 -0
  149. package/dist/src/memory/index.d.ts +211 -0
  150. package/dist/src/memory/index.js +367 -0
  151. package/dist/src/memory/indexer.d.ts +123 -0
  152. package/dist/src/memory/indexer.js +479 -0
  153. package/dist/src/memory/procedural.d.ts +136 -0
  154. package/dist/src/memory/procedural.js +479 -0
  155. package/dist/src/memory/semantic.d.ts +132 -0
  156. package/dist/src/memory/semantic.js +497 -0
  157. package/dist/src/memory/types.d.ts +193 -0
  158. package/dist/src/memory/types.js +15 -0
  159. package/dist/src/orchestrator.d.ts +65 -0
  160. package/dist/src/orchestrator.js +317 -0
  161. package/dist/src/persistence/index.d.ts +257 -0
  162. package/dist/src/persistence/index.js +763 -0
  163. package/dist/src/pipeline/executor.d.ts +51 -0
  164. package/dist/src/pipeline/executor.js +695 -0
  165. package/dist/src/pipeline/index.d.ts +7 -0
  166. package/dist/src/pipeline/index.js +11 -0
  167. package/dist/src/self-production.d.ts +67 -0
  168. package/dist/src/self-production.js +205 -0
  169. package/dist/src/subagents/executor.d.ts +58 -0
  170. package/dist/src/subagents/executor.js +283 -0
  171. package/dist/src/subagents/index.d.ts +37 -0
  172. package/dist/src/subagents/index.js +53 -0
  173. package/dist/src/subagents/registry.d.ts +23 -0
  174. package/dist/src/subagents/registry.js +167 -0
  175. package/dist/src/subagents/types.d.ts +79 -0
  176. package/dist/src/subagents/types.js +14 -0
  177. package/dist/src/tools/bash.d.ts +139 -0
  178. package/dist/src/tools/bash.js +583 -0
  179. package/dist/src/tools/edit.d.ts +125 -0
  180. package/dist/src/tools/edit.js +424 -0
  181. package/dist/src/tools/git.d.ts +179 -0
  182. package/dist/src/tools/git.js +504 -0
  183. package/dist/src/tools/index.d.ts +21 -0
  184. package/dist/src/tools/index.js +163 -0
  185. package/dist/src/types.d.ts +145 -0
  186. package/dist/src/types.js +7 -0
  187. package/dist/src/world-model/decoder.d.ts +163 -0
  188. package/dist/src/world-model/decoder.js +517 -0
  189. package/dist/src/world-model/digital-twin.d.ts +219 -0
  190. package/dist/src/world-model/digital-twin.js +695 -0
  191. package/dist/src/world-model/encoder.d.ts +141 -0
  192. package/dist/src/world-model/encoder.js +564 -0
  193. package/dist/src/world-model/index.d.ts +221 -0
  194. package/dist/src/world-model/index.js +772 -0
  195. package/dist/src/world-model/predictor.d.ts +161 -0
  196. package/dist/src/world-model/predictor.js +681 -0
  197. package/dist/src/world-model/test-value-jepa.d.ts +8 -0
  198. package/dist/src/world-model/test-value-jepa.js +430 -0
  199. package/dist/src/world-model/types.d.ts +341 -0
  200. package/dist/src/world-model/types.js +69 -0
  201. package/dist/src/world-model/value-jepa.d.ts +247 -0
  202. package/dist/src/world-model/value-jepa.js +622 -0
  203. package/dist/test/brain.test.d.ts +11 -0
  204. package/dist/test/brain.test.js +358 -0
  205. package/dist/test/cli/dispatcher.test.d.ts +4 -0
  206. package/dist/test/cli/dispatcher.test.js +332 -0
  207. package/dist/test/cli/human-loop.test.d.ts +4 -0
  208. package/dist/test/cli/human-loop.test.js +270 -0
  209. package/dist/test/grounding/feedback.test.d.ts +4 -0
  210. package/dist/test/grounding/feedback.test.js +462 -0
  211. package/dist/test/grounding/verifier.test.d.ts +4 -0
  212. package/dist/test/grounding/verifier.test.js +442 -0
  213. package/dist/test/grounding.test.d.ts +6 -0
  214. package/dist/test/grounding.test.js +246 -0
  215. package/dist/test/healing/detector.test.d.ts +4 -0
  216. package/dist/test/healing/detector.test.js +266 -0
  217. package/dist/test/healing/fixer.test.d.ts +4 -0
  218. package/dist/test/healing/fixer.test.js +369 -0
  219. package/dist/test/integration.test.d.ts +5 -0
  220. package/dist/test/integration.test.js +290 -0
  221. package/dist/test/tools/bash.test.d.ts +4 -0
  222. package/dist/test/tools/bash.test.js +348 -0
  223. package/dist/test/tools/edit.test.d.ts +4 -0
  224. package/dist/test/tools/edit.test.js +350 -0
  225. package/dist/test/tools/git.test.d.ts +4 -0
  226. package/dist/test/tools/git.test.js +350 -0
  227. package/package.json +60 -0
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ /**
3
+ * Genesis 4.0 - Message Bus
4
+ *
5
+ * Pub/Sub message bus for agent communication.
6
+ * Based on EventEmitter pattern with typed messages.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.messageBus = exports.MessageBus = void 0;
10
+ exports.createMessage = createMessage;
11
+ const crypto_1 = require("crypto");
12
+ // ============================================================================
13
+ // Message Bus Class
14
+ // ============================================================================
15
+ class MessageBus {
16
+ subscriptions = new Map();
17
+ messageQueue = [];
18
+ processing = false;
19
+ messageHistory = [];
20
+ maxHistorySize = 1000;
21
+ // Metrics
22
+ metrics = {
23
+ messagesSent: 0,
24
+ messagesDelivered: 0,
25
+ messagesDropped: 0,
26
+ startTime: new Date(),
27
+ };
28
+ // ============================================================================
29
+ // Core Methods
30
+ // ============================================================================
31
+ /**
32
+ * Subscribe to messages
33
+ */
34
+ subscribe(agentId, handler, filter) {
35
+ const subscriptionId = (0, crypto_1.randomUUID)();
36
+ this.subscriptions.set(subscriptionId, {
37
+ id: subscriptionId,
38
+ agentId,
39
+ filter,
40
+ handler,
41
+ });
42
+ return subscriptionId;
43
+ }
44
+ /**
45
+ * Unsubscribe from messages
46
+ */
47
+ unsubscribe(subscriptionId) {
48
+ return this.subscriptions.delete(subscriptionId);
49
+ }
50
+ /**
51
+ * Publish a message
52
+ */
53
+ async publish(message) {
54
+ const fullMessage = {
55
+ ...message,
56
+ id: (0, crypto_1.randomUUID)(),
57
+ timestamp: new Date(),
58
+ };
59
+ this.messageQueue.push(fullMessage);
60
+ this.metrics.messagesSent++;
61
+ // Store in history
62
+ this.addToHistory(fullMessage);
63
+ // Process queue
64
+ await this.processQueue();
65
+ return fullMessage.id;
66
+ }
67
+ /**
68
+ * Create and publish a message (helper)
69
+ */
70
+ async send(from, to, type, payload, options = {}) {
71
+ return this.publish({
72
+ from,
73
+ to,
74
+ type,
75
+ payload,
76
+ priority: options.priority || 'normal',
77
+ replyTo: options.replyTo,
78
+ correlationId: options.correlationId,
79
+ });
80
+ }
81
+ /**
82
+ * Broadcast to all agents
83
+ */
84
+ async broadcast(from, type, payload, priority = 'normal') {
85
+ return this.send(from, 'broadcast', type, payload, { priority });
86
+ }
87
+ // ============================================================================
88
+ // Queue Processing
89
+ // ============================================================================
90
+ async processQueue() {
91
+ if (this.processing)
92
+ return;
93
+ this.processing = true;
94
+ try {
95
+ // Sort by priority
96
+ this.messageQueue.sort((a, b) => {
97
+ const priorityOrder = { critical: 0, high: 1, normal: 2, low: 3 };
98
+ return priorityOrder[a.priority] - priorityOrder[b.priority];
99
+ });
100
+ while (this.messageQueue.length > 0) {
101
+ const message = this.messageQueue.shift();
102
+ await this.deliverMessage(message);
103
+ }
104
+ }
105
+ finally {
106
+ this.processing = false;
107
+ }
108
+ }
109
+ async deliverMessage(message) {
110
+ const targetSubscriptions = this.findSubscriptions(message);
111
+ if (targetSubscriptions.length === 0) {
112
+ this.metrics.messagesDropped++;
113
+ return;
114
+ }
115
+ // Deliver to all matching subscriptions
116
+ const deliveryPromises = targetSubscriptions.map(async (sub) => {
117
+ try {
118
+ await sub.handler(message);
119
+ this.metrics.messagesDelivered++;
120
+ }
121
+ catch (error) {
122
+ console.error(`[MessageBus] Error delivering to ${sub.agentId}:`, error);
123
+ }
124
+ });
125
+ await Promise.all(deliveryPromises);
126
+ }
127
+ findSubscriptions(message) {
128
+ const matching = [];
129
+ for (const sub of this.subscriptions.values()) {
130
+ // Check if message is for this subscriber
131
+ if (message.to !== 'broadcast') {
132
+ // Exact match by ID
133
+ const exactMatch = message.to === sub.agentId;
134
+ // Match by agent type (e.g., 'explorer' matches 'explorer-12345678')
135
+ const typeMatch = sub.agentId.startsWith(message.to + '-');
136
+ if (!exactMatch && !typeMatch) {
137
+ continue;
138
+ }
139
+ }
140
+ // Check filter
141
+ if (sub.filter) {
142
+ if (sub.filter.types && !sub.filter.types.includes(message.type)) {
143
+ continue;
144
+ }
145
+ if (sub.filter.from && !sub.filter.from.includes(message.from)) {
146
+ continue;
147
+ }
148
+ if (sub.filter.priority && !sub.filter.priority.includes(message.priority)) {
149
+ continue;
150
+ }
151
+ }
152
+ matching.push(sub);
153
+ }
154
+ return matching;
155
+ }
156
+ // ============================================================================
157
+ // History
158
+ // ============================================================================
159
+ addToHistory(message) {
160
+ this.messageHistory.push(message);
161
+ if (this.messageHistory.length > this.maxHistorySize) {
162
+ this.messageHistory.shift();
163
+ }
164
+ }
165
+ getHistory(filter) {
166
+ let filtered = [...this.messageHistory];
167
+ if (filter?.from) {
168
+ filtered = filtered.filter((m) => m.from === filter.from);
169
+ }
170
+ if (filter?.to) {
171
+ filtered = filtered.filter((m) => m.to === filter.to);
172
+ }
173
+ if (filter?.type) {
174
+ filtered = filtered.filter((m) => m.type === filter.type);
175
+ }
176
+ if (filter?.limit) {
177
+ filtered = filtered.slice(-filter.limit);
178
+ }
179
+ return filtered;
180
+ }
181
+ // ============================================================================
182
+ // Utilities
183
+ // ============================================================================
184
+ /**
185
+ * Wait for a specific message (useful for request-response)
186
+ */
187
+ waitForMessage(filter, timeout = 30000) {
188
+ return new Promise((resolve, reject) => {
189
+ const timeoutId = setTimeout(() => {
190
+ this.unsubscribe(subId);
191
+ reject(new Error('Message timeout'));
192
+ }, timeout);
193
+ // Subscribe using the expected recipient ID so we receive messages addressed to them
194
+ const subscriberId = filter.to || 'waiter-' + (0, crypto_1.randomUUID)();
195
+ const subId = this.subscribe(subscriberId, (message) => {
196
+ let matches = true;
197
+ if (filter.replyTo && message.replyTo !== filter.replyTo)
198
+ matches = false;
199
+ if (filter.correlationId && message.correlationId !== filter.correlationId)
200
+ matches = false;
201
+ if (filter.type && message.type !== filter.type)
202
+ matches = false;
203
+ if (filter.from && !message.from.startsWith(filter.from))
204
+ matches = false;
205
+ if (matches) {
206
+ clearTimeout(timeoutId);
207
+ this.unsubscribe(subId);
208
+ resolve(message);
209
+ }
210
+ });
211
+ });
212
+ }
213
+ /**
214
+ * Request-response pattern
215
+ */
216
+ async request(from, to, type, payload, timeout = 30000) {
217
+ const correlationId = (0, crypto_1.randomUUID)();
218
+ // Set up response listener first
219
+ // We subscribe as 'from' to receive responses addressed to us
220
+ const responsePromise = this.waitForMessage({ correlationId, from: to, to: from }, timeout);
221
+ // Send request
222
+ await this.send(from, to, type, payload, { correlationId });
223
+ // Wait for response
224
+ return responsePromise;
225
+ }
226
+ // ============================================================================
227
+ // Metrics
228
+ // ============================================================================
229
+ getMetrics() {
230
+ return {
231
+ ...this.metrics,
232
+ uptime: Date.now() - this.metrics.startTime.getTime(),
233
+ activeSubscriptions: this.subscriptions.size,
234
+ queueLength: this.messageQueue.length,
235
+ historySize: this.messageHistory.length,
236
+ };
237
+ }
238
+ // ============================================================================
239
+ // Cleanup
240
+ // ============================================================================
241
+ clear() {
242
+ this.subscriptions.clear();
243
+ this.messageQueue = [];
244
+ this.messageHistory = [];
245
+ }
246
+ }
247
+ exports.MessageBus = MessageBus;
248
+ // ============================================================================
249
+ // Singleton Export
250
+ // ============================================================================
251
+ exports.messageBus = new MessageBus();
252
+ // ============================================================================
253
+ // Helper Functions
254
+ // ============================================================================
255
+ function createMessage(from, to, type, payload, options = {}) {
256
+ return {
257
+ id: (0, crypto_1.randomUUID)(),
258
+ from,
259
+ to,
260
+ type,
261
+ payload,
262
+ timestamp: new Date(),
263
+ priority: options.priority || 'normal',
264
+ replyTo: options.replyTo,
265
+ correlationId: options.correlationId,
266
+ };
267
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Genesis 4.0 - Narrator Agent
3
+ *
4
+ * Creates coherent narratives from events and experiences.
5
+ * The storyteller: "Here's what happened..."
6
+ *
7
+ * Features:
8
+ * - Event to narrative transformation
9
+ * - Temporal coherence
10
+ * - Causal reasoning
11
+ * - Multi-perspective storytelling
12
+ * - Summary generation
13
+ */
14
+ import { BaseAgent } from './base-agent.js';
15
+ import { MessageBus } from './message-bus.js';
16
+ import { Message, MessageType } from './types.js';
17
+ interface Event {
18
+ id: string;
19
+ type: string;
20
+ timestamp: Date;
21
+ actors: string[];
22
+ action: string;
23
+ outcome?: string;
24
+ context?: string;
25
+ importance?: number;
26
+ }
27
+ interface Narrative {
28
+ id: string;
29
+ title: string;
30
+ summary: string;
31
+ chapters: Chapter[];
32
+ themes: string[];
33
+ timeline: {
34
+ start: Date;
35
+ end: Date;
36
+ duration: number;
37
+ };
38
+ createdAt: Date;
39
+ }
40
+ interface Chapter {
41
+ title: string;
42
+ content: string;
43
+ events: string[];
44
+ startTime: Date;
45
+ endTime: Date;
46
+ }
47
+ interface NarrativeStyle {
48
+ voice: 'first_person' | 'third_person' | 'omniscient';
49
+ tone: 'formal' | 'casual' | 'technical' | 'poetic';
50
+ detail: 'minimal' | 'moderate' | 'detailed';
51
+ }
52
+ export declare class NarratorAgent extends BaseAgent {
53
+ private eventBuffer;
54
+ private narratives;
55
+ private defaultStyle;
56
+ private themeKeywords;
57
+ constructor(bus?: MessageBus);
58
+ protected getMessageTypes(): MessageType[];
59
+ process(message: Message): Promise<Message | null>;
60
+ private handleEvent;
61
+ private collectEvent;
62
+ private createEvent;
63
+ private describeAction;
64
+ private handleNarrateRequest;
65
+ private getEventsInRange;
66
+ generateNarrative(events: Event[], style?: NarrativeStyle, format?: 'summary' | 'detailed' | 'chapters'): Narrative;
67
+ private detectThemes;
68
+ private generateTitle;
69
+ private generateChapters;
70
+ private groupEvents;
71
+ private generateChapterTitle;
72
+ private narrate;
73
+ private narrateEvent;
74
+ private pastTense;
75
+ private generateSummary;
76
+ private formatDuration;
77
+ private createEmptyNarrative;
78
+ private handleQuery;
79
+ getStats(): {
80
+ eventsBuffered: number;
81
+ narrativesGenerated: number;
82
+ recentThemes: string[];
83
+ };
84
+ private capitalize;
85
+ addEvent(event: Partial<Event>): void;
86
+ getEventBuffer(): Event[];
87
+ setDefaultStyle(style: Partial<NarrativeStyle>): void;
88
+ }
89
+ export declare function createNarratorAgent(bus?: MessageBus): NarratorAgent;
90
+ export {};