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
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Title Scheduler Module
3
+ *
4
+ * Purpose:
5
+ * - Encapsulate all chat-title auto-generation logic (Layer 4).
6
+ * - Previously embedded in subscribers.ts (Layer 6); extracted so persistence.ts (Layer 4) can
7
+ * call title-scheduling directly without a cross-layer import violation.
8
+ *
9
+ * Key Features:
10
+ * - Idle-triggered title generation on world activity events.
11
+ * - In-flight deduplication and compare-and-set storage commit.
12
+ * - World teardown cleanup helper that preserves the listener contract.
13
+ *
14
+ * Implementation Notes:
15
+ * - All state (in-flight set, storage cache) is module-level to preserve
16
+ * singleton semantics previously in subscribers.ts.
17
+ *
18
+ * Recent Changes:
19
+ * - 2026-03-10: Removed the human-message debounce trigger so idle activity is the sole
20
+ * automatic chat-title generation entry point.
21
+ * - 2026-03-03: Extracted from subscribers.ts to eliminate duplicate world-level EventEmitter
22
+ * listeners (persistence + activity + title-scheduler each had their own handler per channel).
23
+ */
24
+ import type { World } from '../types.js';
25
+ export declare function isHumanSender(sender?: string): boolean;
26
+ export declare function runIdleTitleUpdate(world: World, event: any): Promise<void>;
27
+ export declare function clearWorldTitleTimers(worldId: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-scheduler.d.ts","sourceRoot":"","sources":["../../../core/events/title-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAc,MAAM,aAAa,CAAC;AAuBrD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Title Scheduler Module
3
+ *
4
+ * Purpose:
5
+ * - Encapsulate all chat-title auto-generation logic (Layer 4).
6
+ * - Previously embedded in subscribers.ts (Layer 6); extracted so persistence.ts (Layer 4) can
7
+ * call title-scheduling directly without a cross-layer import violation.
8
+ *
9
+ * Key Features:
10
+ * - Idle-triggered title generation on world activity events.
11
+ * - In-flight deduplication and compare-and-set storage commit.
12
+ * - World teardown cleanup helper that preserves the listener contract.
13
+ *
14
+ * Implementation Notes:
15
+ * - All state (in-flight set, storage cache) is module-level to preserve
16
+ * singleton semantics previously in subscribers.ts.
17
+ *
18
+ * Recent Changes:
19
+ * - 2026-03-10: Removed the human-message debounce trigger so idle activity is the sole
20
+ * automatic chat-title generation entry point.
21
+ * - 2026-03-03: Extracted from subscribers.ts to eliminate duplicate world-level EventEmitter
22
+ * listeners (persistence + activity + title-scheduler each had their own handler per channel).
23
+ */
24
+ import { createCategoryLogger } from '../logger.js';
25
+ import { createStorageWithWrappers } from '../storage/storage-factory.js';
26
+ import { generateChatTitleFromMessages } from './memory-manager.js';
27
+ import { publishEvent } from './publishers.js';
28
+ import { isDefaultChatTitle, NEW_CHAT_TITLE, TITLE_PROVENANCE_AUTO } from '../chat-constants.js';
29
+ const loggerChatTitle = createCategoryLogger('chattitle');
30
+ const titleGenerationInFlight = new Set();
31
+ let storageWrappers = null;
32
+ async function getStorageWrappers() {
33
+ if (!storageWrappers) {
34
+ storageWrappers = await createStorageWithWrappers();
35
+ }
36
+ return storageWrappers;
37
+ }
38
+ function getTitleGenerationKey(worldId, chatId) {
39
+ return `${worldId}:${chatId}`;
40
+ }
41
+ export function isHumanSender(sender) {
42
+ const normalized = String(sender ?? '').trim().toLowerCase();
43
+ return normalized === 'human' || normalized === 'world' || normalized.startsWith('user');
44
+ }
45
+ export async function runIdleTitleUpdate(world, event) {
46
+ if (event.type !== 'idle' || event.pendingOperations !== 0) {
47
+ return;
48
+ }
49
+ const targetChatIdRaw = typeof event?.chatId === 'string' ? event.chatId.trim() : '';
50
+ const targetChatId = targetChatIdRaw || null;
51
+ if (!targetChatId) {
52
+ loggerChatTitle.debug('Skipping idle title update due to missing chatId on activity event', {
53
+ worldId: world.id,
54
+ eventType: event?.type,
55
+ pendingOperations: event?.pendingOperations
56
+ });
57
+ return;
58
+ }
59
+ try {
60
+ await tryGenerateAndApplyTitle(world, targetChatId, '', 'idle');
61
+ }
62
+ catch (err) {
63
+ loggerChatTitle.warn('Activity-based title update failed', { error: err instanceof Error ? err.message : err });
64
+ }
65
+ }
66
+ export function clearWorldTitleTimers(worldId) {
67
+ void worldId;
68
+ }
69
+ async function commitChatTitleIfDefault(world, chatId, nextTitle) {
70
+ const storage = await getStorageWrappers();
71
+ if (typeof storage.updateChatNameIfCurrent === 'function') {
72
+ return storage.updateChatNameIfCurrent(world.id, chatId, NEW_CHAT_TITLE, nextTitle, TITLE_PROVENANCE_AUTO);
73
+ }
74
+ // Legacy fallback when storage backend does not provide compare-and-set helper.
75
+ const persistedChat = await storage.loadChatData(world.id, chatId);
76
+ if (!persistedChat || !isDefaultChatTitle(persistedChat.name)) {
77
+ return false;
78
+ }
79
+ const updated = await storage.updateChatData(world.id, chatId, { name: nextTitle, titleProvenance: TITLE_PROVENANCE_AUTO });
80
+ return !!updated;
81
+ }
82
+ async function tryGenerateAndApplyTitle(world, targetChatId, content, source) {
83
+ const inFlightKey = getTitleGenerationKey(world.id, targetChatId);
84
+ if (titleGenerationInFlight.has(inFlightKey)) {
85
+ loggerChatTitle.debug('Skipping title update because generation is already in flight', {
86
+ worldId: world.id,
87
+ chatId: targetChatId,
88
+ source
89
+ });
90
+ return;
91
+ }
92
+ const chat = world.chats.get(targetChatId);
93
+ if (!chat || !isDefaultChatTitle(chat.name)) {
94
+ return;
95
+ }
96
+ titleGenerationInFlight.add(inFlightKey);
97
+ try {
98
+ const title = await generateChatTitleFromMessages(world, content, targetChatId);
99
+ if (!title) {
100
+ return;
101
+ }
102
+ // Re-check in-memory state before commit.
103
+ const currentChat = world.chats.get(targetChatId);
104
+ if (!currentChat || !isDefaultChatTitle(currentChat.name)) {
105
+ loggerChatTitle.debug('Skipping title commit because in-memory chat title is no longer default', {
106
+ worldId: world.id,
107
+ chatId: targetChatId,
108
+ source,
109
+ currentName: currentChat?.name
110
+ });
111
+ return;
112
+ }
113
+ const committed = await commitChatTitleIfDefault(world, targetChatId, title);
114
+ if (!committed) {
115
+ loggerChatTitle.debug('Skipping title commit because persisted chat title no longer matches default', {
116
+ worldId: world.id,
117
+ chatId: targetChatId,
118
+ source
119
+ });
120
+ return;
121
+ }
122
+ currentChat.name = title;
123
+ currentChat.titleProvenance = TITLE_PROVENANCE_AUTO;
124
+ publishEvent(world, 'system', {
125
+ eventType: 'chat-title-updated',
126
+ chatId: targetChatId,
127
+ title,
128
+ source,
129
+ message: `Chat title updated: ${title}`,
130
+ }, targetChatId);
131
+ }
132
+ finally {
133
+ titleGenerationInFlight.delete(inFlightKey);
134
+ }
135
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-scheduler.js","sourceRoot":"","sources":["../../../core/events/title-scheduler.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  * memory-manager to trace request/result/error handoff payloads.
7
7
  *
8
8
  * Key Features:
9
- * - Console-level bridge logs gated by `LOG_LLM_TOOL_BRIDGE` env var
9
+ * - Structured bridge logs through the core logger (`llm.tool.bridge`) for realtime log streaming
10
+ * - LOG_LLM_TOOL_BRIDGE supports explicit levels (`trace|debug|info|warn|error`) and boolean aliases (`1|true|on` => debug)
10
11
  * - Simplified output showing only type, tool name, and truncated content (100-200 chars)
11
12
  * - Safe JSON serialization with fallback to `String()`
12
13
  *
@@ -15,6 +16,8 @@
15
16
  * - Filters verbose metadata, keeps only essential debugging fields
16
17
  *
17
18
  * Changes:
19
+ * - 2026-02-28: Added canonical feature-path category emission (`tool.call.*`, `tool.continuation`) while preserving legacy bridge logging behavior.
20
+ * - 2026-02-27: Replaced ad-hoc `[LLM↔TOOLS]` console logging with structured category logger events.
18
21
  * - 2026-02-16: Extracted shared tool-bridge logging utilities from orchestrator
19
22
  * and memory-manager into a dedicated module.
20
23
  * - 2026-02-17: Simplified logToolBridge to show only type, tool name, and truncated
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge-logging.d.ts","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM9D;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAQpD;AAcD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA6BvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU3D"}
1
+ {"version":3,"file":"tool-bridge-logging.d.ts","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmHH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM9D;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAcD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAoCvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU3D"}
@@ -6,7 +6,8 @@
6
6
  * memory-manager to trace request/result/error handoff payloads.
7
7
  *
8
8
  * Key Features:
9
- * - Console-level bridge logs gated by `LOG_LLM_TOOL_BRIDGE` env var
9
+ * - Structured bridge logs through the core logger (`llm.tool.bridge`) for realtime log streaming
10
+ * - LOG_LLM_TOOL_BRIDGE supports explicit levels (`trace|debug|info|warn|error`) and boolean aliases (`1|true|on` => debug)
10
11
  * - Simplified output showing only type, tool name, and truncated content (100-200 chars)
11
12
  * - Safe JSON serialization with fallback to `String()`
12
13
  *
@@ -15,13 +16,111 @@
15
16
  * - Filters verbose metadata, keeps only essential debugging fields
16
17
  *
17
18
  * Changes:
19
+ * - 2026-02-28: Added canonical feature-path category emission (`tool.call.*`, `tool.continuation`) while preserving legacy bridge logging behavior.
20
+ * - 2026-02-27: Replaced ad-hoc `[LLM↔TOOLS]` console logging with structured category logger events.
18
21
  * - 2026-02-16: Extracted shared tool-bridge logging utilities from orchestrator
19
22
  * and memory-manager into a dedicated module.
20
23
  * - 2026-02-17: Simplified logToolBridge to show only type, tool name, and truncated
21
24
  * content/args/result (100-300 chars max) for better debugging ergonomics. Removed
22
25
  * worldId, agentId, chatId, hopCount, retryCount and other verbose metadata.
23
26
  */
27
+ import { createCategoryLogger, initializeLogger } from '../logger.js';
28
+ import { buildFeaturePathCorrelation, mergeFeaturePathData, sanitizeRawPayloadForLog, } from '../feature-path-logging.js';
24
29
  const TOOL_DEBUG_RESULT_PREVIEW_LIMIT = 200;
30
+ const TOOL_BRIDGE_LOG_CATEGORY = 'llm.tool.bridge';
31
+ let configuredToolBridgeLevel = null;
32
+ function resolveCanonicalToolCategory(direction) {
33
+ const compact = String(direction || '')
34
+ .toUpperCase()
35
+ .replace(/\s+/g, '');
36
+ if (/^LLM->TOOLS?/.test(compact)) {
37
+ return 'tool.call.request';
38
+ }
39
+ if (/^TOOLS?->LLM/.test(compact)) {
40
+ return 'tool.call.response';
41
+ }
42
+ if (/^TOOLS?ERROR->LLM/.test(compact)) {
43
+ return 'tool.call.error';
44
+ }
45
+ if (compact.includes('CONTINUE')) {
46
+ return 'tool.continuation';
47
+ }
48
+ return 'tool.continuation';
49
+ }
50
+ function emitCanonicalToolPathLog(direction, payload) {
51
+ const category = resolveCanonicalToolCategory(direction);
52
+ const logger = createCategoryLogger(category);
53
+ const obj = payload && typeof payload === 'object' && !Array.isArray(payload)
54
+ ? payload
55
+ : undefined;
56
+ const correlation = buildFeaturePathCorrelation({
57
+ worldId: typeof obj?.worldId === 'string' ? obj.worldId : undefined,
58
+ chatId: typeof obj?.chatId === 'string' || obj?.chatId === null ? obj.chatId : undefined,
59
+ agentId: typeof obj?.agentId === 'string' ? obj.agentId : undefined,
60
+ messageId: typeof obj?.messageId === 'string' ? obj.messageId : undefined,
61
+ turnId: typeof obj?.turnId === 'string' ? obj.turnId : undefined,
62
+ runId: typeof obj?.runId === 'string' ? obj.runId : undefined,
63
+ toolCallId: typeof obj?.toolCallId === 'string' ? obj.toolCallId : undefined,
64
+ toolName: typeof obj?.toolName === 'string' ? obj.toolName : undefined,
65
+ });
66
+ logger.debug('Tool path event', mergeFeaturePathData(correlation, {
67
+ direction,
68
+ payload: sanitizeRawPayloadForLog(payload, { maxStringLength: 800 }),
69
+ }));
70
+ }
71
+ function resolveToolBridgeLogLevel() {
72
+ const rawValue = typeof process !== 'undefined' && process.env
73
+ ? process.env.LOG_LLM_TOOL_BRIDGE
74
+ : undefined;
75
+ if (!rawValue)
76
+ return null;
77
+ const normalized = rawValue.toLowerCase().trim();
78
+ if (normalized === '1' || normalized === 'true' || normalized === 'on') {
79
+ return 'debug';
80
+ }
81
+ if (normalized === '0' || normalized === 'false' || normalized === 'off') {
82
+ return null;
83
+ }
84
+ if (normalized === 'trace'
85
+ || normalized === 'debug'
86
+ || normalized === 'info'
87
+ || normalized === 'warn'
88
+ || normalized === 'error') {
89
+ return normalized;
90
+ }
91
+ return null;
92
+ }
93
+ function ensureToolBridgeLoggerLevel(level) {
94
+ if (configuredToolBridgeLevel === level) {
95
+ return;
96
+ }
97
+ initializeLogger({
98
+ categoryLevels: {
99
+ [TOOL_BRIDGE_LOG_CATEGORY]: level,
100
+ },
101
+ });
102
+ configuredToolBridgeLevel = level;
103
+ }
104
+ function emitToolBridgeLog(level, message, data) {
105
+ const logger = createCategoryLogger(TOOL_BRIDGE_LOG_CATEGORY);
106
+ if (level === 'trace') {
107
+ logger.trace(message, data);
108
+ return;
109
+ }
110
+ if (level === 'debug') {
111
+ logger.debug(message, data);
112
+ return;
113
+ }
114
+ if (level === 'info') {
115
+ logger.info(message, data);
116
+ return;
117
+ }
118
+ if (level === 'warn') {
119
+ logger.warn(message, data);
120
+ return;
121
+ }
122
+ logger.error(message, data);
123
+ }
25
124
  export function safeSerializeForConsole(value) {
26
125
  try {
27
126
  return JSON.stringify(value, null, 2);
@@ -31,31 +130,28 @@ export function safeSerializeForConsole(value) {
31
130
  }
32
131
  }
33
132
  export function isToolBridgeLoggingEnabled() {
34
- const rawValue = typeof process !== 'undefined' && process.env
35
- ? process.env.LOG_LLM_TOOL_BRIDGE
36
- : undefined;
37
- if (!rawValue)
38
- return false;
39
- const normalized = rawValue.toLowerCase().trim();
40
- return normalized === '1' || normalized === 'true' || normalized === 'debug' || normalized === 'on';
133
+ return resolveToolBridgeLogLevel() !== null;
41
134
  }
42
135
  function truncateContent(value, maxLength = TOOL_DEBUG_RESULT_PREVIEW_LIMIT) {
43
136
  const str = typeof value === 'string'
44
137
  ? value
45
- : JSON.stringify(value);
138
+ : safeSerializeForConsole(value);
46
139
  if (str.length <= maxLength) {
47
140
  return str;
48
141
  }
49
142
  return `${str.slice(0, maxLength)}...[${str.length - maxLength} more]`;
50
143
  }
51
144
  export function logToolBridge(direction, payload) {
52
- if (!isToolBridgeLoggingEnabled()) {
145
+ emitCanonicalToolPathLog(direction, payload);
146
+ const logLevel = resolveToolBridgeLogLevel();
147
+ if (!logLevel) {
53
148
  return;
54
149
  }
150
+ ensureToolBridgeLoggerLevel(logLevel);
55
151
  // Extract only essential fields: type and shortened content
56
152
  if (payload && typeof payload === 'object' && !Array.isArray(payload)) {
57
153
  const obj = payload;
58
- const essential = {};
154
+ const essential = { direction };
59
155
  // Keep type fields
60
156
  if ('type' in obj)
61
157
  essential.type = obj.type;
@@ -75,11 +171,14 @@ export function logToolBridge(direction, payload) {
75
171
  essential.result = truncateContent(obj.resultPreview, 150);
76
172
  if ('args' in obj)
77
173
  essential.args = truncateContent(obj.args, 100);
78
- console.log(`[LLM↔TOOLS] ${direction}`, essential);
174
+ emitToolBridgeLog(logLevel, 'LLM tool bridge event', essential);
79
175
  }
80
176
  else {
81
177
  // Raw responses (LLM RAW -> CONTINUE)
82
- console.log(`[LLM↔TOOLS] ${direction}`, truncateContent(payload, 300));
178
+ emitToolBridgeLog(logLevel, 'LLM tool bridge event', {
179
+ direction,
180
+ payload: truncateContent(payload, 300),
181
+ });
83
182
  }
84
183
  }
85
184
  export function getToolResultPreview(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-bridge-logging.js","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-bridge-logging.js","sourceRoot":"","sources":["../../../core/events/tool-bridge-logging.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events-metadata.d.ts","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmBzE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAiBV;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,UAAU,GAAG,UAAU,GAAG,WAAW,CAavC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,YAAY,EAAE,GAC1B;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CA2DA"}
1
+ {"version":3,"file":"events-metadata.d.ts","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwBzE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAiBV;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,UAAU,GAAG,UAAU,GAAG,WAAW,CAavC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,YAAY,EAAE,GAC1B;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CA2DA"}
@@ -21,6 +21,10 @@
21
21
  * - Thread depth calculation with circular reference protection
22
22
  */
23
23
  import { extractParagraphBeginningMentions } from './utils.js';
24
+ function isHumanLikeMessageSender(sender) {
25
+ const normalized = String(sender || '').trim().toLowerCase();
26
+ return normalized === 'human' || normalized === 'world' || normalized === 'user';
27
+ }
24
28
  function resolveRecipientAgentId(world, message) {
25
29
  const mentions = extractParagraphBeginningMentions(message.content || '');
26
30
  if (mentions.length === 0) {
@@ -41,7 +45,7 @@ function resolveRecipientAgentId(world, message) {
41
45
  * - Cross-agent messages: Both sender and recipient
42
46
  */
43
47
  export function calculateOwnerAgentIds(world, message) {
44
- const isHuman = message.sender === 'human' || message.sender === 'user';
48
+ const isHuman = isHumanLikeMessageSender(message.sender);
45
49
  // Human messages go to all agents
46
50
  if (isHuman) {
47
51
  return Array.from(world.agents.keys());
@@ -70,7 +74,7 @@ export function calculateRecipientAgentId(world, message) {
70
74
  * - broadcast: No specific recipient
71
75
  */
72
76
  export function calculateMessageDirection(world, message) {
73
- const isHuman = message.sender === 'human' || message.sender === 'user';
77
+ const isHuman = isHumanLikeMessageSender(message.sender);
74
78
  if (isHuman) {
75
79
  return 'broadcast'; // Human messages are always broadcast
76
80
  }
@@ -88,7 +92,7 @@ export function calculateMessageDirection(world, message) {
88
92
  * - Saved to recipient's memory but doesn't trigger response
89
93
  */
90
94
  export function calculateIsMemoryOnly(world, message) {
91
- const isHuman = message.sender === 'human' || message.sender === 'user';
95
+ const isHuman = isHumanLikeMessageSender(message.sender);
92
96
  if (isHuman)
93
97
  return false; // Human messages always trigger responses
94
98
  const recipientId = calculateRecipientAgentId(world, message);
@@ -98,7 +102,7 @@ export function calculateIsMemoryOnly(world, message) {
98
102
  * Calculate if message is agent-to-agent communication
99
103
  */
100
104
  export function calculateIsCrossAgentMessage(world, message) {
101
- const isHuman = message.sender === 'human' || message.sender === 'user';
105
+ const isHuman = isHumanLikeMessageSender(message.sender);
102
106
  if (isHuman)
103
107
  return false;
104
108
  const recipientId = calculateRecipientAgentId(world, message);
@@ -1 +1 @@
1
- {"version":3,"file":"events-metadata.js","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-metadata.js","sourceRoot":"","sources":["../../core/events-metadata.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@
48
48
  * Time: 2025-10-25T21:24:57.105Z
49
49
  * [2 tool calls:
50
50
  * 1. read_file (filePath: /path/to/file.txt, limit: 100)
51
- * 2. grep_search (query: pattern, isRegexp: true, ...)]
51
+ * 2. grep (query: pattern, isRegexp: true, ...)]
52
52
  *
53
53
  * Agent: a1 (tool result)
54
54
  * Time: 2025-10-25T21:24:58.395Z
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../core/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AAwDH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsgB9E;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+D3F"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../core/export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AA2CH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAogB9E;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6D3F"}
@@ -48,7 +48,7 @@
48
48
  * Time: 2025-10-25T21:24:57.105Z
49
49
  * [2 tool calls:
50
50
  * 1. read_file (filePath: /path/to/file.txt, limit: 100)
51
- * 2. grep_search (query: pattern, isRegexp: true, ...)]
51
+ * 2. grep (query: pattern, isRegexp: true, ...)]
52
52
  *
53
53
  * Agent: a1 (tool result)
54
54
  * Time: 2025-10-25T21:24:58.395Z
@@ -101,19 +101,8 @@
101
101
  // Core module imports
102
102
  import { createCategoryLogger } from './logger.js';
103
103
  import { getWorld, listAgents, getAgent, getMemory } from './managers.js';
104
- import { createStorageWithWrappers } from './storage/storage-factory.js';
105
- // Initialize logger and storage
104
+ // Initialize logger
106
105
  const logger = createCategoryLogger('core.export');
107
- let storageWrappers = null;
108
- async function initializeModules() {
109
- // Skip storage initialization in test environment to prevent SQLite errors
110
- // Tests use mocked storage from vitest-setup.ts
111
- if (process.env.NODE_ENV === 'test') {
112
- return;
113
- }
114
- storageWrappers = await createStorageWithWrappers();
115
- }
116
- const moduleInitialization = initializeModules();
117
106
  async function buildAgentMap(worldId, agentSummaries) {
118
107
  const summaries = agentSummaries ?? await listAgents(worldId);
119
108
  const agentsMap = new Map();
@@ -145,7 +134,6 @@ function formatSenderLabel(message, agentsMap) {
145
134
  * Export world configuration, agents, and chats to Markdown format
146
135
  */
147
136
  export async function exportWorldToMarkdown(worldName) {
148
- await moduleInitialization;
149
137
  // Load world configuration
150
138
  const worldData = await getWorld(worldName);
151
139
  if (!worldData) {
@@ -631,7 +619,6 @@ export async function exportWorldToMarkdown(worldName) {
631
619
  return markdown;
632
620
  }
633
621
  export async function exportChatToMarkdown(worldId, chatId) {
634
- await moduleInitialization;
635
622
  const worldData = await getWorld(worldId);
636
623
  if (!worldData) {
637
624
  throw new Error(`World '${worldId}' not found`);