agent-world 0.12.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/README.md +105 -17
  2. package/dist/cli/commands.d.ts +7 -1
  3. package/dist/cli/commands.js +27 -10
  4. package/dist/cli/hitl.d.ts +9 -2
  5. package/dist/cli/hitl.js +61 -20
  6. package/dist/cli/index.js +250 -96
  7. package/dist/cli/system-events.d.ts +27 -0
  8. package/dist/cli/system-events.js +63 -0
  9. package/dist/core/activity-tracker.d.ts +38 -2
  10. package/dist/core/activity-tracker.d.ts.map +1 -1
  11. package/dist/core/activity-tracker.js +62 -9
  12. package/dist/core/activity-tracker.js.map +1 -1
  13. package/dist/core/anthropic-direct.d.ts +2 -0
  14. package/dist/core/anthropic-direct.d.ts.map +1 -1
  15. package/dist/core/anthropic-direct.js +43 -1
  16. package/dist/core/anthropic-direct.js.map +1 -1
  17. package/dist/core/chat-constants.d.ts +12 -0
  18. package/dist/core/chat-constants.d.ts.map +1 -1
  19. package/dist/core/chat-constants.js +5 -0
  20. package/dist/core/chat-constants.js.map +1 -1
  21. package/dist/core/create-agent-tool.d.ts +28 -25
  22. package/dist/core/create-agent-tool.d.ts.map +1 -1
  23. package/dist/core/create-agent-tool.js +264 -141
  24. package/dist/core/create-agent-tool.js.map +1 -1
  25. package/dist/core/events/index.d.ts +5 -2
  26. package/dist/core/events/index.d.ts.map +1 -1
  27. package/dist/core/events/index.js +5 -2
  28. package/dist/core/events/index.js.map +1 -1
  29. package/dist/core/events/memory-manager.d.ts +26 -1
  30. package/dist/core/events/memory-manager.d.ts.map +1 -1
  31. package/dist/core/events/memory-manager.js +877 -72
  32. package/dist/core/events/memory-manager.js.map +1 -1
  33. package/dist/core/events/orchestrator.d.ts +8 -0
  34. package/dist/core/events/orchestrator.d.ts.map +1 -1
  35. package/dist/core/events/orchestrator.js +214 -38
  36. package/dist/core/events/orchestrator.js.map +1 -1
  37. package/dist/core/events/persistence.d.ts +21 -14
  38. package/dist/core/events/persistence.d.ts.map +1 -1
  39. package/dist/core/events/persistence.js +100 -61
  40. package/dist/core/events/persistence.js.map +1 -1
  41. package/dist/core/events/publishers.d.ts +13 -16
  42. package/dist/core/events/publishers.d.ts.map +1 -1
  43. package/dist/core/events/publishers.js +54 -55
  44. package/dist/core/events/publishers.js.map +1 -1
  45. package/dist/core/events/subscribers.d.ts +17 -14
  46. package/dist/core/events/subscribers.d.ts.map +1 -1
  47. package/dist/core/events/subscribers.js +68 -147
  48. package/dist/core/events/subscribers.js.map +1 -1
  49. package/dist/core/events/title-scheduler.d.ts +27 -0
  50. package/dist/core/events/title-scheduler.d.ts.map +1 -0
  51. package/dist/core/events/title-scheduler.js +135 -0
  52. package/dist/core/events/title-scheduler.js.map +1 -0
  53. package/dist/core/events/tool-bridge-logging.d.ts +4 -1
  54. package/dist/core/events/tool-bridge-logging.d.ts.map +1 -1
  55. package/dist/core/events/tool-bridge-logging.js +112 -13
  56. package/dist/core/events/tool-bridge-logging.js.map +1 -1
  57. package/dist/core/events-metadata.d.ts.map +1 -1
  58. package/dist/core/events-metadata.js +8 -4
  59. package/dist/core/events-metadata.js.map +1 -1
  60. package/dist/core/export.d.ts +1 -1
  61. package/dist/core/export.d.ts.map +1 -1
  62. package/dist/core/export.js +2 -15
  63. package/dist/core/export.js.map +1 -1
  64. package/dist/core/feature-path-logging.d.ts +50 -0
  65. package/dist/core/feature-path-logging.d.ts.map +1 -0
  66. package/dist/core/feature-path-logging.js +130 -0
  67. package/dist/core/feature-path-logging.js.map +1 -0
  68. package/dist/core/file-tools.d.ts +57 -1
  69. package/dist/core/file-tools.d.ts.map +1 -1
  70. package/dist/core/file-tools.js +329 -29
  71. package/dist/core/file-tools.js.map +1 -1
  72. package/dist/core/google-direct.d.ts +6 -1
  73. package/dist/core/google-direct.d.ts.map +1 -1
  74. package/dist/core/google-direct.js +76 -7
  75. package/dist/core/google-direct.js.map +1 -1
  76. package/dist/core/heartbeat.d.ts +34 -0
  77. package/dist/core/heartbeat.d.ts.map +1 -0
  78. package/dist/core/heartbeat.js +153 -0
  79. package/dist/core/heartbeat.js.map +1 -0
  80. package/dist/core/hitl-tool.d.ts +73 -0
  81. package/dist/core/hitl-tool.d.ts.map +1 -0
  82. package/dist/core/hitl-tool.js +284 -0
  83. package/dist/core/hitl-tool.js.map +1 -0
  84. package/dist/core/hitl.d.ts +85 -8
  85. package/dist/core/hitl.d.ts.map +1 -1
  86. package/dist/core/hitl.js +375 -61
  87. package/dist/core/hitl.js.map +1 -1
  88. package/dist/core/index.d.ts +12 -7
  89. package/dist/core/index.d.ts.map +1 -1
  90. package/dist/core/index.js +11 -6
  91. package/dist/core/index.js.map +1 -1
  92. package/dist/core/llm-manager.d.ts +17 -0
  93. package/dist/core/llm-manager.d.ts.map +1 -1
  94. package/dist/core/llm-manager.js +335 -43
  95. package/dist/core/llm-manager.js.map +1 -1
  96. package/dist/core/load-skill-tool.d.ts +36 -3
  97. package/dist/core/load-skill-tool.d.ts.map +1 -1
  98. package/dist/core/load-skill-tool.js +807 -93
  99. package/dist/core/load-skill-tool.js.map +1 -1
  100. package/dist/core/logger.d.ts +14 -0
  101. package/dist/core/logger.d.ts.map +1 -1
  102. package/dist/core/logger.js +15 -0
  103. package/dist/core/logger.js.map +1 -1
  104. package/dist/core/managers.d.ts +41 -52
  105. package/dist/core/managers.d.ts.map +1 -1
  106. package/dist/core/managers.js +422 -533
  107. package/dist/core/managers.js.map +1 -1
  108. package/dist/core/mcp-server-registry.d.ts +19 -2
  109. package/dist/core/mcp-server-registry.d.ts.map +1 -1
  110. package/dist/core/mcp-server-registry.js +168 -12
  111. package/dist/core/mcp-server-registry.js.map +1 -1
  112. package/dist/core/message-cutoff.d.ts +29 -0
  113. package/dist/core/message-cutoff.d.ts.map +1 -0
  114. package/dist/core/message-cutoff.js +63 -0
  115. package/dist/core/message-cutoff.js.map +1 -0
  116. package/dist/core/message-edit-manager.d.ts +54 -0
  117. package/dist/core/message-edit-manager.d.ts.map +1 -0
  118. package/dist/core/message-edit-manager.js +602 -0
  119. package/dist/core/message-edit-manager.js.map +1 -0
  120. package/dist/core/message-prep.d.ts +2 -0
  121. package/dist/core/message-prep.d.ts.map +1 -1
  122. package/dist/core/message-prep.js +39 -12
  123. package/dist/core/message-prep.js.map +1 -1
  124. package/dist/core/message-processing-control.d.ts +1 -0
  125. package/dist/core/message-processing-control.d.ts.map +1 -1
  126. package/dist/core/message-processing-control.js +23 -6
  127. package/dist/core/message-processing-control.js.map +1 -1
  128. package/dist/core/openai-direct.d.ts +9 -3
  129. package/dist/core/openai-direct.d.ts.map +1 -1
  130. package/dist/core/openai-direct.js +267 -33
  131. package/dist/core/openai-direct.js.map +1 -1
  132. package/dist/core/optional-tracers/opik-runtime.d.ts +32 -0
  133. package/dist/core/optional-tracers/opik-runtime.d.ts.map +1 -0
  134. package/dist/core/optional-tracers/opik-runtime.js +141 -0
  135. package/dist/core/optional-tracers/opik-runtime.js.map +1 -0
  136. package/dist/core/queue-manager.d.ts +84 -0
  137. package/dist/core/queue-manager.d.ts.map +1 -0
  138. package/dist/core/queue-manager.js +814 -0
  139. package/dist/core/queue-manager.js.map +1 -0
  140. package/dist/core/reasoning-controls.d.ts +30 -0
  141. package/dist/core/reasoning-controls.d.ts.map +1 -0
  142. package/dist/core/reasoning-controls.js +118 -0
  143. package/dist/core/reasoning-controls.js.map +1 -0
  144. package/dist/core/reliability-config.d.ts +82 -0
  145. package/dist/core/reliability-config.d.ts.map +1 -0
  146. package/dist/core/reliability-config.js +106 -0
  147. package/dist/core/reliability-config.js.map +1 -0
  148. package/dist/core/reliability-runtime.d.ts +53 -0
  149. package/dist/core/reliability-runtime.d.ts.map +1 -0
  150. package/dist/core/reliability-runtime.js +92 -0
  151. package/dist/core/reliability-runtime.js.map +1 -0
  152. package/dist/core/security/guardrails.d.ts +21 -0
  153. package/dist/core/security/guardrails.d.ts.map +1 -0
  154. package/dist/core/security/guardrails.js +111 -0
  155. package/dist/core/security/guardrails.js.map +1 -0
  156. package/dist/core/send-message-tool.d.ts +79 -0
  157. package/dist/core/send-message-tool.d.ts.map +1 -0
  158. package/dist/core/send-message-tool.js +222 -0
  159. package/dist/core/send-message-tool.js.map +1 -0
  160. package/dist/core/shell-cmd-tool.d.ts +82 -1
  161. package/dist/core/shell-cmd-tool.d.ts.map +1 -1
  162. package/dist/core/shell-cmd-tool.js +854 -42
  163. package/dist/core/shell-cmd-tool.js.map +1 -1
  164. package/dist/core/skill-registry.d.ts +2 -0
  165. package/dist/core/skill-registry.d.ts.map +1 -1
  166. package/dist/core/skill-registry.js +52 -2
  167. package/dist/core/skill-registry.js.map +1 -1
  168. package/dist/core/storage/eventStorage/fileEventStorage.d.ts +5 -0
  169. package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -1
  170. package/dist/core/storage/eventStorage/fileEventStorage.js +61 -0
  171. package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -1
  172. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +5 -0
  173. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -1
  174. package/dist/core/storage/eventStorage/memoryEventStorage.js +34 -0
  175. package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -1
  176. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +1 -0
  177. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -1
  178. package/dist/core/storage/eventStorage/sqliteEventStorage.js +19 -2
  179. package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -1
  180. package/dist/core/storage/eventStorage/types.d.ts +6 -0
  181. package/dist/core/storage/eventStorage/types.d.ts.map +1 -1
  182. package/dist/core/storage/eventStorage/types.js +1 -0
  183. package/dist/core/storage/eventStorage/types.js.map +1 -1
  184. package/dist/core/storage/eventStorage/validation.d.ts.map +1 -1
  185. package/dist/core/storage/eventStorage/validation.js +2 -1
  186. package/dist/core/storage/eventStorage/validation.js.map +1 -1
  187. package/dist/core/storage/github-world-import.d.ts +84 -0
  188. package/dist/core/storage/github-world-import.d.ts.map +1 -0
  189. package/dist/core/storage/github-world-import.js +365 -0
  190. package/dist/core/storage/github-world-import.js.map +1 -0
  191. package/dist/core/storage/memory-storage.d.ts +19 -8
  192. package/dist/core/storage/memory-storage.d.ts.map +1 -1
  193. package/dist/core/storage/memory-storage.js +147 -49
  194. package/dist/core/storage/memory-storage.js.map +1 -1
  195. package/dist/core/storage/queue-storage.d.ts +1 -0
  196. package/dist/core/storage/queue-storage.d.ts.map +1 -1
  197. package/dist/core/storage/queue-storage.js +3 -2
  198. package/dist/core/storage/queue-storage.js.map +1 -1
  199. package/dist/core/storage/sqlite-storage.d.ts +14 -9
  200. package/dist/core/storage/sqlite-storage.d.ts.map +1 -1
  201. package/dist/core/storage/sqlite-storage.js +131 -154
  202. package/dist/core/storage/sqlite-storage.js.map +1 -1
  203. package/dist/core/storage/storage-factory.d.ts +3 -0
  204. package/dist/core/storage/storage-factory.d.ts.map +1 -1
  205. package/dist/core/storage/storage-factory.js +175 -89
  206. package/dist/core/storage/storage-factory.js.map +1 -1
  207. package/dist/core/storage/world-storage.d.ts +1 -1
  208. package/dist/core/storage/world-storage.d.ts.map +1 -1
  209. package/dist/core/storage/world-storage.js +5 -1
  210. package/dist/core/storage/world-storage.js.map +1 -1
  211. package/dist/core/storage-init.d.ts +11 -0
  212. package/dist/core/storage-init.d.ts.map +1 -0
  213. package/dist/core/storage-init.js +122 -0
  214. package/dist/core/storage-init.js.map +1 -0
  215. package/dist/core/subscription.d.ts +8 -1
  216. package/dist/core/subscription.d.ts.map +1 -1
  217. package/dist/core/subscription.js +130 -23
  218. package/dist/core/subscription.js.map +1 -1
  219. package/dist/core/tool-approval.d.ts +45 -0
  220. package/dist/core/tool-approval.d.ts.map +1 -0
  221. package/dist/core/tool-approval.js +223 -0
  222. package/dist/core/tool-approval.js.map +1 -0
  223. package/dist/core/tool-execution-envelope.d.ts +87 -0
  224. package/dist/core/tool-execution-envelope.d.ts.map +1 -0
  225. package/dist/core/tool-execution-envelope.js +168 -0
  226. package/dist/core/tool-execution-envelope.js.map +1 -0
  227. package/dist/core/tool-utils.d.ts +9 -2
  228. package/dist/core/tool-utils.d.ts.map +1 -1
  229. package/dist/core/tool-utils.js +122 -28
  230. package/dist/core/tool-utils.js.map +1 -1
  231. package/dist/core/types.d.ts +69 -36
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/core/types.js +3 -2
  234. package/dist/core/types.js.map +1 -1
  235. package/dist/core/utils.d.ts +16 -0
  236. package/dist/core/utils.d.ts.map +1 -1
  237. package/dist/core/utils.js +99 -24
  238. package/dist/core/utils.js.map +1 -1
  239. package/dist/core/web-fetch-tool.d.ts +72 -0
  240. package/dist/core/web-fetch-tool.d.ts.map +1 -0
  241. package/dist/core/web-fetch-tool.js +491 -0
  242. package/dist/core/web-fetch-tool.js.map +1 -0
  243. package/dist/core/world-registry.d.ts +84 -0
  244. package/dist/core/world-registry.d.ts.map +1 -0
  245. package/dist/core/world-registry.js +247 -0
  246. package/dist/core/world-registry.js.map +1 -0
  247. package/dist/public/assets/index-Be-1xtV-.js +104 -0
  248. package/dist/public/assets/index-tsDdiXDU.css +1 -0
  249. package/dist/public/index.html +2 -2
  250. package/dist/public/mcp-sandbox-proxy.html +148 -0
  251. package/dist/server/api.js +288 -58
  252. package/dist/server/error-response.d.ts +27 -0
  253. package/dist/server/error-response.js +77 -0
  254. package/dist/server/index.d.ts +2 -1
  255. package/dist/server/index.js +6 -2
  256. package/dist/server/sse-handler.d.ts +13 -2
  257. package/dist/server/sse-handler.js +194 -26
  258. package/migrations/0015_add_message_queue.sql +36 -0
  259. package/migrations/0016_add_world_heartbeat.sql +13 -0
  260. package/migrations/0017_add_title_provenance.sql +7 -0
  261. package/package.json +31 -10
  262. package/dist/public/assets/index-BO20H4xt.js +0 -96
  263. package/dist/public/assets/index-ETY7W5_S.css +0 -1
@@ -2,28 +2,35 @@
2
2
  * Events Persistence Module
3
3
  *
4
4
  * Handles automatic event persistence to storage with metadata enrichment.
5
- * Provides setupEventPersistence function for World initialization.
5
+ * Also owns the single world-level listener per event channel (message, sse, world, system),
6
+ * combining persistence with title-scheduling and activity-title logic in one handler each.
6
7
  *
7
8
  * Features:
8
- * - Message event persistence with enhanced metadata
9
- * - SSE event persistence (start/end only, skips chunks)
10
- * - Tool event persistence with validation
11
- * - System and CRUD event persistence
12
- * - Activity tracking event persistence
13
- * - Automatic metadata calculation (agent context, threading, tool calls)
14
- * - Error handling with graceful degradation
15
- * - Environment-based disable flag
16
- * - Uses world.eventStorage directly (no separate storage instance)
9
+ * - One combined `message` handler: persistence only.
10
+ * - One combined `world` handler: persistence + idle title generation.
11
+ * - SSE event persistence (start/end only, skips chunks).
12
+ * - System event persistence.
13
+ * - Sets world._worldMessagesUnsubscriber and world._activityListenerCleanup so downstream
14
+ * idempotent wrappers (subscribeWorldToMessages, setupWorldActivityListener) don't add
15
+ * duplicate listeners.
17
16
  *
18
17
  * Dependencies (Layer 4):
19
18
  * - types.ts (Layer 1)
20
- * - utils.ts
19
+ * - chat-constants.ts
20
+ * - events-metadata.ts
21
+ * - title-scheduler.ts (Layer 4)
21
22
  * - logger.ts
22
- * - storage (runtime)
23
23
  *
24
24
  * Changes:
25
- * - 2025-11-09: Fixed event persistence - use world.eventStorage directly instead of creating separate instance
26
- * - 2025-01-09: Extracted from events.ts for modular architecture
25
+ * - 2026-03-10: Removed human-message debounce title scheduling; idle activity is now the
26
+ * sole automatic trigger path.
27
+ * - 2026-03-06: Required explicit `chatId` on persisted message/SSE/tool/activity/system events; unscoped events are now rejected instead of inheriting `world.currentChatId`.
28
+ * - 2026-03-03: Combined world-level listeners to eliminate MaxListenersExceededWarning;
29
+ * title-scheduling and idle-activity logic moved here from subscribers.ts (Layer 6) via
30
+ * title-scheduler.ts (Layer 4) to respect module layering.
31
+ * - 2026-02-26: Removed legacy replay-only HITL system-event filter.
32
+ * - 2025-11-09: Fixed event persistence - use world.eventStorage directly.
33
+ * - 2025-01-09: Extracted from events.ts for modular architecture.
27
34
  */
28
35
  import type { World } from '../types.js';
29
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../core/events/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,aAAa,CAAC;AAarB;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CAyR9D"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../core/events/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EACV,KAAK,EAIN,MAAM,aAAa,CAAC;AAgBrB;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CA+T9D"}
@@ -2,32 +2,39 @@
2
2
  * Events Persistence Module
3
3
  *
4
4
  * Handles automatic event persistence to storage with metadata enrichment.
5
- * Provides setupEventPersistence function for World initialization.
5
+ * Also owns the single world-level listener per event channel (message, sse, world, system),
6
+ * combining persistence with title-scheduling and activity-title logic in one handler each.
6
7
  *
7
8
  * Features:
8
- * - Message event persistence with enhanced metadata
9
- * - SSE event persistence (start/end only, skips chunks)
10
- * - Tool event persistence with validation
11
- * - System and CRUD event persistence
12
- * - Activity tracking event persistence
13
- * - Automatic metadata calculation (agent context, threading, tool calls)
14
- * - Error handling with graceful degradation
15
- * - Environment-based disable flag
16
- * - Uses world.eventStorage directly (no separate storage instance)
9
+ * - One combined `message` handler: persistence only.
10
+ * - One combined `world` handler: persistence + idle title generation.
11
+ * - SSE event persistence (start/end only, skips chunks).
12
+ * - System event persistence.
13
+ * - Sets world._worldMessagesUnsubscriber and world._activityListenerCleanup so downstream
14
+ * idempotent wrappers (subscribeWorldToMessages, setupWorldActivityListener) don't add
15
+ * duplicate listeners.
17
16
  *
18
17
  * Dependencies (Layer 4):
19
18
  * - types.ts (Layer 1)
20
- * - utils.ts
19
+ * - chat-constants.ts
20
+ * - events-metadata.ts
21
+ * - title-scheduler.ts (Layer 4)
21
22
  * - logger.ts
22
- * - storage (runtime)
23
23
  *
24
24
  * Changes:
25
- * - 2025-11-09: Fixed event persistence - use world.eventStorage directly instead of creating separate instance
26
- * - 2025-01-09: Extracted from events.ts for modular architecture
25
+ * - 2026-03-10: Removed human-message debounce title scheduling; idle activity is now the
26
+ * sole automatic trigger path.
27
+ * - 2026-03-06: Required explicit `chatId` on persisted message/SSE/tool/activity/system events; unscoped events are now rejected instead of inheriting `world.currentChatId`.
28
+ * - 2026-03-03: Combined world-level listeners to eliminate MaxListenersExceededWarning;
29
+ * title-scheduling and idle-activity logic moved here from subscribers.ts (Layer 6) via
30
+ * title-scheduler.ts (Layer 4) to respect module layering.
31
+ * - 2026-02-26: Removed legacy replay-only HITL system-event filter.
32
+ * - 2025-11-09: Fixed event persistence - use world.eventStorage directly.
33
+ * - 2025-01-09: Extracted from events.ts for modular architecture.
27
34
  */
28
- import { EventType } from '../types.js';
29
35
  import { createCategoryLogger } from '../logger.js';
30
36
  import { calculateOwnerAgentIds, calculateRecipientAgentId, calculateMessageDirection, calculateIsMemoryOnly, calculateIsCrossAgentMessage } from '../events-metadata.js';
37
+ import { runIdleTitleUpdate, clearWorldTitleTimers } from './title-scheduler.js';
31
38
  const loggerPublish = createCategoryLogger('publish');
32
39
  /**
33
40
  * Setup automatic event persistence listeners on World event emitter.
@@ -64,13 +71,22 @@ export function setupEventPersistence(world) {
64
71
  });
65
72
  }
66
73
  };
67
- // Message event persistence
68
- const messageHandler = (event) => {
74
+ // Combined message handler: persistence only
75
+ const messageHandler = async (event) => {
76
+ const targetChatId = typeof event.chatId === 'string' ? event.chatId.trim() : '';
77
+ if (!targetChatId) {
78
+ loggerPublish.error('Message event missing required chatId', {
79
+ worldId: world.id,
80
+ messageId: event.messageId,
81
+ sender: event.sender,
82
+ });
83
+ return;
84
+ }
69
85
  loggerPublish.debug('Message event received for persistence', {
70
86
  worldId: world.id,
71
87
  messageId: event.messageId,
72
88
  sender: event.sender,
73
- chatId: event.chatId
89
+ chatId: targetChatId
74
90
  });
75
91
  // Calculate enhanced metadata using helper functions
76
92
  const ownerAgentIds = calculateOwnerAgentIds(world, event);
@@ -78,7 +94,8 @@ export function setupEventPersistence(world) {
78
94
  const messageDirection = calculateMessageDirection(world, event);
79
95
  const isMemoryOnly = calculateIsMemoryOnly(world, event);
80
96
  const isCrossAgentMessage = calculateIsCrossAgentMessage(world, event);
81
- const isHumanMessage = event.sender === 'human' || event.sender === 'user';
97
+ const normalizedSender = String(event.sender || '').trim().toLowerCase();
98
+ const isHumanMessage = normalizedSender === 'human' || normalizedSender === 'world' || normalizedSender === 'user';
82
99
  // Calculate thread metadata (requires loading messages for accurate depth calculation)
83
100
  // For now, use simplified version - can enhance later with full message history
84
101
  const threadMetadata = event.replyToMessageId
@@ -90,7 +107,7 @@ export function setupEventPersistence(world) {
90
107
  const eventData = {
91
108
  id: event.messageId,
92
109
  worldId: world.id,
93
- chatId: event.chatId || null,
110
+ chatId: targetChatId,
94
111
  type: 'message',
95
112
  payload: {
96
113
  content: event.content,
@@ -134,7 +151,7 @@ export function setupEventPersistence(world) {
134
151
  },
135
152
  createdAt: event.timestamp
136
153
  };
137
- return persistEvent(eventData);
154
+ await persistEvent(eventData);
138
155
  };
139
156
  // SSE event handler - persist only start and end events, skip chunk events
140
157
  // Chunk events are for UI streaming only (high frequency, transient)
@@ -144,12 +161,21 @@ export function setupEventPersistence(world) {
144
161
  if (event.type === 'chunk') {
145
162
  return;
146
163
  }
164
+ const targetChatId = typeof event.chatId === 'string' ? event.chatId.trim() : '';
165
+ if (!targetChatId) {
166
+ loggerPublish.error('SSE event missing required chatId', {
167
+ worldId: world.id,
168
+ eventType: event.type,
169
+ messageId: event.messageId,
170
+ agentName: event.agentName,
171
+ });
172
+ return;
173
+ }
147
174
  // Persist start/end events for metadata tracking
148
- // Use event.chatId for concurrency-safe routing (falls back to null for broadcast)
149
175
  const eventData = {
150
176
  id: `${event.messageId}-sse-${event.type}`,
151
177
  worldId: world.id,
152
- chatId: event.chatId || null,
178
+ chatId: targetChatId,
153
179
  type: 'sse',
154
180
  payload: {
155
181
  agentName: event.agentName,
@@ -167,12 +193,13 @@ export function setupEventPersistence(world) {
167
193
  };
168
194
  return persistEvent(eventData);
169
195
  };
170
- // Tool event persistence (world channel)
196
+ // Combined world-channel handler: persistence + idle title generation
171
197
  // Handles WorldToolEvent (tool execution) and WorldActivityEventPayload (activity tracking)
172
- const toolHandler = (event) => {
198
+ const toolHandler = async (event) => {
173
199
  // Check event type category
174
200
  const isActivityEvent = event.type && ['response-start', 'response-end', 'idle'].includes(event.type);
175
201
  const isToolEvent = event.type && ['tool-start', 'tool-result', 'tool-error', 'tool-progress'].includes(event.type);
202
+ const targetChatId = typeof event?.chatId === 'string' ? event.chatId.trim() : '';
176
203
  // OPTIMIZATION: Skip tool-progress events (high frequency status updates)
177
204
  // Keep tool-start (marks beginning), tool-result (final result), tool-error (failures)
178
205
  if (event.type === 'tool-progress') {
@@ -180,6 +207,15 @@ export function setupEventPersistence(world) {
180
207
  }
181
208
  // Validate required fields for tool events only
182
209
  if (isToolEvent) {
210
+ if (!targetChatId) {
211
+ loggerPublish.error('Tool event missing required chatId', {
212
+ worldId: world.id,
213
+ eventType: event.type,
214
+ messageId: event.messageId,
215
+ agentName: event.agentName,
216
+ });
217
+ return;
218
+ }
183
219
  if (!event.messageId) {
184
220
  loggerPublish.error('Tool event missing required messageId', {
185
221
  worldId: world.id,
@@ -197,6 +233,15 @@ export function setupEventPersistence(world) {
197
233
  return; // Skip persistence for invalid events
198
234
  }
199
235
  }
236
+ if (isActivityEvent && !targetChatId) {
237
+ loggerPublish.error('Activity event missing required chatId', {
238
+ worldId: world.id,
239
+ eventType: event.type,
240
+ messageId: event.messageId,
241
+ source: event.source,
242
+ });
243
+ return;
244
+ }
200
245
  // Generate unique ID for tool events by combining messageId with tool type
201
246
  // This prevents duplicate ID conflicts when multiple tool events (tool-start, tool-result, tool-error)
202
247
  // share the same messageId
@@ -206,9 +251,7 @@ export function setupEventPersistence(world) {
206
251
  const eventData = {
207
252
  id: eventId,
208
253
  worldId: world.id,
209
- // Activity events (response-start/end, idle) are world-level, use null chatId
210
- // Tool events use chatId from event for concurrency-safe routing
211
- chatId: isActivityEvent ? null : (event.chatId || null),
254
+ chatId: targetChatId,
212
255
  type: isActivityEvent ? 'world' : 'tool',
213
256
  payload: isActivityEvent ? {
214
257
  activityType: event.type,
@@ -236,14 +279,26 @@ export function setupEventPersistence(world) {
236
279
  },
237
280
  createdAt: isActivityEvent ? new Date(event.timestamp) : new Date()
238
281
  };
239
- return persistEvent(eventData);
282
+ await persistEvent(eventData);
283
+ // Idle title generation runs after persisting the activity event
284
+ if (isActivityEvent) {
285
+ await runIdleTitleUpdate(world, event);
286
+ }
240
287
  };
241
288
  // System event persistence
242
289
  const systemHandler = (event) => {
290
+ const targetChatId = typeof event.chatId === 'string' ? event.chatId.trim() : '';
291
+ if (!targetChatId) {
292
+ loggerPublish.error('System event missing required chatId', {
293
+ worldId: world.id,
294
+ messageId: event.messageId,
295
+ });
296
+ return;
297
+ }
243
298
  const eventData = {
244
299
  id: event.messageId,
245
300
  worldId: world.id,
246
- chatId: event.chatId !== undefined ? event.chatId : (world.currentChatId || null), // Default to current chat
301
+ chatId: targetChatId,
247
302
  type: 'system',
248
303
  payload: event.content,
249
304
  meta: {},
@@ -251,45 +306,29 @@ export function setupEventPersistence(world) {
251
306
  };
252
307
  return persistEvent(eventData);
253
308
  };
254
- // CRUD event persistence
255
- const crudHandler = (event) => {
256
- const eventData = {
257
- id: `crud-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
258
- worldId: world.id,
259
- chatId: event.chatId || null,
260
- type: 'crud',
261
- payload: {
262
- operation: event.operation,
263
- entityType: event.entityType,
264
- entityId: event.entityId,
265
- entityData: event.entityData,
266
- timestamp: event.timestamp
267
- },
268
- meta: {
269
- operation: event.operation,
270
- entityType: event.entityType,
271
- entityId: event.entityId
272
- },
273
- createdAt: event.timestamp
274
- };
275
- return persistEvent(eventData);
276
- };
277
- // Attach listeners
309
+ // Attach listeners — one per channel; this is the sole world-level infrastructure subscriber
278
310
  world.eventEmitter.on('message', messageHandler);
279
311
  world.eventEmitter.on('sse', sseHandler);
280
312
  world.eventEmitter.on('world', toolHandler);
281
313
  world.eventEmitter.on('system', systemHandler);
282
- world.eventEmitter.on(EventType.CRUD, crudHandler);
283
- loggerPublish.debug('Event persistence setup complete', {
284
- worldId: world.id
285
- });
286
- // Return cleanup function
287
- return () => {
314
+ const cleanup = () => {
288
315
  world.eventEmitter.off('message', messageHandler);
289
316
  world.eventEmitter.off('sse', sseHandler);
290
317
  world.eventEmitter.off('world', toolHandler);
291
318
  world.eventEmitter.off('system', systemHandler);
292
- world.eventEmitter.off(EventType.CRUD, crudHandler);
319
+ clearWorldTitleTimers(world.id);
320
+ // Clear idempotent handles so downstream wrappers can re-register if needed after cleanup
321
+ world._worldMessagesUnsubscriber = undefined;
322
+ world._activityListenerCleanup = undefined;
293
323
  loggerPublish.debug('Event persistence listeners cleaned up', { worldId: world.id });
294
324
  };
325
+ // Store cleanup ref in all three slots so the idempotent wrappers
326
+ // (subscribeWorldToMessages, setupWorldActivityListener) short-circuit instead of
327
+ // adding duplicate listeners on the same world.
328
+ world._worldMessagesUnsubscriber = cleanup;
329
+ world._activityListenerCleanup = cleanup;
330
+ loggerPublish.debug('Event persistence setup complete', {
331
+ worldId: world.id
332
+ });
333
+ return cleanup;
295
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../core/events/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../core/events/persistence.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,14 @@
6
6
  * - Message publishing with chat session management
7
7
  * - SSE event publishing for streaming
8
8
  * - Tool event publishing for agent behaviors
9
- * - CRUD event publishing for configuration changes
10
9
  *
11
10
  * Implementation Notes:
12
11
  * - Uses parseMessageContent to preserve enhanced tool-result protocol support
13
12
  * - Emits events synchronously through world-scoped EventEmitter channels
14
13
  *
15
14
  * Recent Changes:
15
+ * - 2026-03-13: Preserved optional SSE `reasoningContent` so reasoning tokens survive world-scoped event publication.
16
+ * - 2026-03-06: Required explicit `chatId` for message/system/SSE/tool publication; removed `world.currentChatId` fallback from event emitters.
16
17
  * - 2026-02-13: Added optional explicit `chatId` override for `publishEvent` to preserve session context across async flows.
17
18
  * - 2026-02-13: Added chat-scoped tool-event propagation (`chatId`) so realtime tool updates remain session-isolated.
18
19
  * - 2026-02-11: Fixed publishSSE to include toolName and stream fields for tool-stream events
@@ -33,35 +34,27 @@ export declare function isStreamingEnabled(): boolean;
33
34
  * - Agent IDs remain unchanged.
34
35
  */
35
36
  export declare function normalizeSender(sender: string): string;
36
- /**
37
- * Publish CRUD event for agent, chat, or world configuration changes
38
- * Allows subscribed clients to receive real-time updates for all CRUD operations
39
- *
40
- * Note: CRUD events are entity-level by default (`chatId: null`), but chat-scoped
41
- * CRUD updates can pass an explicit `chatId` when downstream consumers need context.
42
- */
43
- export declare function publishCRUDEvent(world: World, operation: 'create' | 'update' | 'delete', entityType: 'agent' | 'chat' | 'world', entityId: string, entityData?: any, chatId?: string | null): void;
44
37
  /**
45
38
  * Publish event to a specific channel using World.eventEmitter
46
39
  */
47
- export declare function publishEvent(world: World, type: string, content: any, chatId?: string | null): void;
40
+ export declare function publishEvent(world: World, type: string, content: any, chatId: string): void;
48
41
  /**
49
42
  * Message publishing using World.eventEmitter with chat session management
50
43
  * Parses enhanced string protocol and automatically prepends @mention if agentId detected
51
44
  * Returns the messageEvent so callers can access the generated messageId
52
45
  *
53
- * @param chatId - Optional chat ID. If not provided, uses world.currentChatId
46
+ * @param chatId - Explicit chat ID for concurrency-safe routing
54
47
  * @param replyToMessageId - Optional parent message ID for threading
55
48
  */
56
- export declare function publishMessage(world: World, content: string, sender: string, chatId?: string | null, replyToMessageId?: string): WorldMessageEvent;
49
+ export declare function publishMessage(world: World, content: string, sender: string, chatId: string, replyToMessageId?: string): WorldMessageEvent;
57
50
  /**
58
51
  * Message publishing with pre-generated messageId
59
52
  * Used when messageId needs to be known before publishing (e.g., for agent responses)
60
53
  *
61
- * @param chatId - Optional chat ID. If not provided, uses world.currentChatId
54
+ * @param chatId - Explicit chat ID for concurrency-safe routing
62
55
  * @param replyToMessageId - Optional parent message ID for threading
63
56
  */
64
- export declare function publishMessageWithId(world: World, content: string, sender: string, messageId: string, chatId?: string | null, replyToMessageId?: string): WorldMessageEvent;
57
+ export declare function publishMessageWithId(world: World, content: string, sender: string, messageId: string, chatId: string, replyToMessageId?: string): WorldMessageEvent;
65
58
  /**
66
59
  * Subscribe to message events
67
60
  */
@@ -69,11 +62,15 @@ export declare function subscribeToMessages(world: World, handler: (event: World
69
62
  /**
70
63
  * SSE events using World.eventEmitter (for LLM streaming)
71
64
  */
72
- export declare function publishSSE(world: World, data: Partial<WorldSSEEvent>): void;
65
+ export declare function publishSSE(world: World, data: Partial<WorldSSEEvent> & {
66
+ chatId: string;
67
+ }): void;
73
68
  /**
74
69
  * Tool events using World.eventEmitter (for agent behavioral events)
75
70
  */
76
- export declare function publishToolEvent(world: World, data: Partial<WorldToolEvent>): void;
71
+ export declare function publishToolEvent(world: World, data: Partial<WorldToolEvent> & {
72
+ chatId: string;
73
+ }): void;
77
74
  /**
78
75
  * SSE subscription using World.eventEmitter
79
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"publishers.d.ts","sourceRoot":"","sources":["../../../core/events/publishers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAExD,MAAM,aAAa,CAAC;AAUrB,wBAAgB,eAAe,IAAI,IAAI,CAAmC;AAC1E,wBAAgB,gBAAgB,IAAI,IAAI,CAAoC;AAC5E,wBAAgB,kBAAkB,IAAI,OAAO,CAAmC;AAEhF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EACzC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,EACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,GAAG,EAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,IAAI,CAkBN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CASnG;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAqFlJ;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAa3K;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,MAAM,IAAI,CA6BZ;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAe3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CASlF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GACtC,MAAM,IAAI,CAGZ"}
1
+ {"version":3,"file":"publishers.d.ts","sourceRoot":"","sources":["../../../core/events/publishers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAExD,MAAM,aAAa,CAAC;AAUrB,wBAAgB,eAAe,IAAI,IAAI,CAAmC;AAC1E,wBAAgB,gBAAgB,IAAI,IAAI,CAAoC;AAC5E,wBAAgB,kBAAkB,IAAI,OAAO,CAAmC;AAEhF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAStD;AAgDD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAS3F;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAwE1I;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAWnK;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,MAAM,IAAI,CA6BZ;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiBhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUvG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GACtC,MAAM,IAAI,CAGZ"}