agent-world 0.13.0 → 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 +90 -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 +4 -1
  5. package/dist/cli/hitl.js +55 -20
  6. package/dist/cli/index.js +249 -97
  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 +26 -0
  10. package/dist/core/activity-tracker.d.ts.map +1 -1
  11. package/dist/core/activity-tracker.js +21 -4
  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 +5 -0
  22. package/dist/core/create-agent-tool.d.ts.map +1 -1
  23. package/dist/core/create-agent-tool.js +57 -34
  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 +203 -36
  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 -35
  40. package/dist/core/events/persistence.js.map +1 -1
  41. package/dist/core/events/publishers.d.ts +13 -7
  42. package/dist/core/events/publishers.d.ts.map +1 -1
  43. package/dist/core/events/publishers.js +53 -37
  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 +61 -148
  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 +6 -12
  81. package/dist/core/hitl-tool.d.ts.map +1 -1
  82. package/dist/core/hitl-tool.js +66 -88
  83. package/dist/core/hitl-tool.js.map +1 -1
  84. package/dist/core/hitl.d.ts +61 -4
  85. package/dist/core/hitl.d.ts.map +1 -1
  86. package/dist/core/hitl.js +324 -60
  87. package/dist/core/hitl.js.map +1 -1
  88. package/dist/core/index.d.ts +11 -7
  89. package/dist/core/index.d.ts.map +1 -1
  90. package/dist/core/index.js +10 -6
  91. package/dist/core/index.js.map +1 -1
  92. package/dist/core/llm-manager.d.ts +15 -0
  93. package/dist/core/llm-manager.d.ts.map +1 -1
  94. package/dist/core/llm-manager.js +325 -40
  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 +18 -50
  105. package/dist/core/managers.d.ts.map +1 -1
  106. package/dist/core/managers.js +340 -502
  107. package/dist/core/managers.js.map +1 -1
  108. package/dist/core/mcp-server-registry.d.ts +16 -1
  109. package/dist/core/mcp-server-registry.d.ts.map +1 -1
  110. package/dist/core/mcp-server-registry.js +162 -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 +7 -2
  228. package/dist/core/tool-utils.d.ts.map +1 -1
  229. package/dist/core/tool-utils.js +81 -17
  230. package/dist/core/tool-utils.js.map +1 -1
  231. package/dist/core/types.d.ts +67 -19
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/core/types.js +3 -0
  234. package/dist/core/types.js.map +1 -1
  235. package/dist/core/utils.d.ts +7 -0
  236. package/dist/core/utils.d.ts.map +1 -1
  237. package/dist/core/utils.js +71 -21
  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 +260 -18
  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 +11 -1
  257. package/dist/server/sse-handler.js +194 -34
  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-BW41BxMy.css +0 -1
  263. package/dist/public/assets/index-kO6UJFwK.js +0 -96
@@ -27,10 +27,13 @@
27
27
  * - NO event emission, NO storage, NO tool execution
28
28
  *
29
29
  * Recent Changes:
30
+ * - 2026-03-13: Switched world reasoning overrides to the `reasoning` request object with `default` omission and explicit `none|low|medium|high` effort values.
31
+ * - 2026-03-12: Reclassified streaming abort logs as info-level cancellations to suppress expected stop/edit noise.
32
+ * - 2026-02-28: Added canonical `llm.openai` category emission while preserving legacy `openai` logs during migration.
33
+ * - 2026-02-27: Normalized overlong tool-call IDs to OpenAI's 40-char limit and preserved assistant/tool ID linkage in outbound message conversion.
30
34
  * - 2026-02-16: Fixed streaming tool-call chunk merge to preserve delayed tool `id`/`name` fields across deltas.
31
35
  * - 2026-02-13: Added abort-signal support for streaming and non-streaming calls to enable chat stop cancellation.
32
- * - 2026-02-10: Added env-flagged Ollama tool attachment support via ENABLE_OLLAMA_TOOLS
33
- * - 2026-02-07: Disabled tool definitions for Ollama provider requests
36
+ * - 2026-02-07: Tool definitions now attached for all providers including Ollama
34
37
  * - 2025-11-09: Phase 2 - Removed ALL tool execution logic (~200 lines)
35
38
  * - Provider is now a pure client - only API calls and data transformation
36
39
  * - Returns LLMResponse interface with type discriminator
@@ -43,8 +46,176 @@
43
46
  import OpenAI from 'openai';
44
47
  import { createCategoryLogger } from './logger.js';
45
48
  import { generateFallbackId } from './tool-utils.js';
46
- const logger = createCategoryLogger('openai');
49
+ import { getEnvValueFromText } from './utils.js';
50
+ const loggerCanonical = createCategoryLogger('llm.openai');
51
+ const loggerLegacy = createCategoryLogger('openai');
52
+ const logger = {
53
+ trace: (msg, ...args) => {
54
+ loggerCanonical.trace(msg, ...args);
55
+ loggerLegacy.trace(msg, ...args);
56
+ },
57
+ debug: (msg, ...args) => {
58
+ loggerCanonical.debug(msg, ...args);
59
+ loggerLegacy.debug(msg, ...args);
60
+ },
61
+ info: (msg, ...args) => {
62
+ loggerCanonical.info(msg, ...args);
63
+ loggerLegacy.info(msg, ...args);
64
+ },
65
+ warn: (msg, ...args) => {
66
+ loggerCanonical.warn(msg, ...args);
67
+ loggerLegacy.warn(msg, ...args);
68
+ },
69
+ error: (msg, ...args) => {
70
+ loggerCanonical.error(msg, ...args);
71
+ loggerLegacy.error(msg, ...args);
72
+ },
73
+ };
47
74
  const mcpLogger = createCategoryLogger('mcp.execution');
75
+ const OPENAI_TOOL_CALL_ID_MAX_LENGTH = 40;
76
+ function normalizeReasoningEffort(value) {
77
+ const normalized = String(value || '').trim().toLowerCase();
78
+ if (normalized === 'none' || normalized === 'low' || normalized === 'high' || normalized === 'medium') {
79
+ return normalized;
80
+ }
81
+ return 'default';
82
+ }
83
+ function getReasoningConfigForOpenAIProvider(world) {
84
+ const effort = normalizeReasoningEffort(getEnvValueFromText(world.variables, 'reasoning_effort'));
85
+ return effort === 'default' ? undefined : { effort };
86
+ }
87
+ function extractReasoningText(value) {
88
+ if (typeof value === 'string') {
89
+ return value;
90
+ }
91
+ if (Array.isArray(value)) {
92
+ return value
93
+ .map((part) => {
94
+ if (typeof part === 'string')
95
+ return part;
96
+ if (part && typeof part === 'object' && typeof part.text === 'string') {
97
+ return part.text;
98
+ }
99
+ return '';
100
+ })
101
+ .join('');
102
+ }
103
+ return '';
104
+ }
105
+ function isAbortLikeError(error) {
106
+ if (!error)
107
+ return false;
108
+ if (error instanceof DOMException && error.name === 'AbortError')
109
+ return true;
110
+ if (error instanceof Error && error.name === 'AbortError')
111
+ return true;
112
+ const message = error instanceof Error ? error.message : String(error);
113
+ const normalized = message.toLowerCase();
114
+ return normalized.includes('abort') || normalized.includes('canceled') || normalized.includes('cancelled');
115
+ }
116
+ function fnv1a32(input, reverse = false) {
117
+ let hash = 2166136261;
118
+ if (reverse) {
119
+ for (let i = input.length - 1; i >= 0; i -= 1) {
120
+ hash ^= input.charCodeAt(i);
121
+ hash = Math.imul(hash, 16777619);
122
+ }
123
+ }
124
+ else {
125
+ for (let i = 0; i < input.length; i += 1) {
126
+ hash ^= input.charCodeAt(i);
127
+ hash = Math.imul(hash, 16777619);
128
+ }
129
+ }
130
+ return hash >>> 0;
131
+ }
132
+ function shortenToolCallIdForOpenAI(rawId) {
133
+ const trimmed = rawId.trim();
134
+ if (!trimmed)
135
+ return '';
136
+ if (trimmed.length <= OPENAI_TOOL_CALL_ID_MAX_LENGTH)
137
+ return trimmed;
138
+ const hash = `${fnv1a32(trimmed).toString(36)}${fnv1a32(trimmed, true).toString(36)}`.slice(0, 10);
139
+ const prefixLength = Math.max(1, OPENAI_TOOL_CALL_ID_MAX_LENGTH - hash.length - 1);
140
+ return `${trimmed.slice(0, prefixLength)}_${hash}`;
141
+ }
142
+ function collectHistoricalToolCallIds(messages) {
143
+ const ids = [];
144
+ for (const message of messages) {
145
+ if (message.role === 'assistant' && Array.isArray(message.tool_calls)) {
146
+ for (const toolCall of message.tool_calls) {
147
+ ids.push(String(toolCall?.id || ''));
148
+ }
149
+ }
150
+ if (message.role === 'tool') {
151
+ ids.push(String(message?.tool_call_id || ''));
152
+ }
153
+ }
154
+ return ids;
155
+ }
156
+ function finalizePendingAssistantToolCalls(converted, pending) {
157
+ const assistantMessage = converted[pending.assistantIndex];
158
+ if (!assistantMessage || assistantMessage.role !== 'assistant') {
159
+ return;
160
+ }
161
+ const currentToolCalls = Array.isArray(assistantMessage.tool_calls)
162
+ ? assistantMessage.tool_calls
163
+ : [];
164
+ const resolvedToolCalls = currentToolCalls.filter((tc) => pending.resolvedIds.has(String(tc?.id || '')));
165
+ if (resolvedToolCalls.length > 0) {
166
+ assistantMessage.tool_calls = resolvedToolCalls;
167
+ return;
168
+ }
169
+ if (assistantMessage.content && String(assistantMessage.content).trim()) {
170
+ delete assistantMessage.tool_calls;
171
+ return;
172
+ }
173
+ converted.splice(pending.assistantIndex, 1);
174
+ }
175
+ function createToolCallIdAllocator(seedIds = []) {
176
+ const normalizedByOriginal = new Map();
177
+ const usedIds = new Set();
178
+ const reserveUnique = (candidate) => {
179
+ const safeCandidate = (candidate || generateFallbackId()).slice(0, OPENAI_TOOL_CALL_ID_MAX_LENGTH);
180
+ if (!usedIds.has(safeCandidate)) {
181
+ usedIds.add(safeCandidate);
182
+ return safeCandidate;
183
+ }
184
+ let suffix = 1;
185
+ while (true) {
186
+ const suffixToken = `_${suffix.toString(36)}`;
187
+ const nextCandidate = `${safeCandidate.slice(0, OPENAI_TOOL_CALL_ID_MAX_LENGTH - suffixToken.length)}${suffixToken}`;
188
+ if (!usedIds.has(nextCandidate)) {
189
+ usedIds.add(nextCandidate);
190
+ return nextCandidate;
191
+ }
192
+ suffix += 1;
193
+ }
194
+ };
195
+ const allocate = (originalId) => {
196
+ const raw = typeof originalId === 'string' ? originalId.trim() : '';
197
+ if (!raw) {
198
+ return reserveUnique(shortenToolCallIdForOpenAI(generateFallbackId()));
199
+ }
200
+ const existing = normalizedByOriginal.get(raw);
201
+ if (existing)
202
+ return existing;
203
+ const shortened = shortenToolCallIdForOpenAI(raw);
204
+ const normalized = reserveUnique(shortened);
205
+ normalizedByOriginal.set(raw, normalized);
206
+ if (normalized !== raw) {
207
+ logger.warn('OpenAI Direct: normalized tool_call id for API compatibility', {
208
+ originalLength: raw.length,
209
+ normalizedLength: normalized.length,
210
+ });
211
+ }
212
+ return normalized;
213
+ };
214
+ for (const seedId of seedIds) {
215
+ allocate(seedId);
216
+ }
217
+ return allocate;
218
+ }
48
219
  /**
49
220
  * OpenAI client factory for standard OpenAI API
50
221
  */
@@ -96,34 +267,86 @@ export function createOllamaClient(config) {
96
267
  });
97
268
  }
98
269
  function convertMessagesToOpenAI(messages) {
99
- return messages.map(message => {
270
+ const allocateToolCallId = createToolCallIdAllocator(collectHistoricalToolCallIds(messages));
271
+ const converted = [];
272
+ let pendingAssistant = null;
273
+ const closePendingAssistant = () => {
274
+ if (!pendingAssistant)
275
+ return;
276
+ finalizePendingAssistantToolCalls(converted, pendingAssistant);
277
+ pendingAssistant = null;
278
+ };
279
+ for (const message of messages) {
280
+ if (pendingAssistant && message.role === 'tool') {
281
+ const toolCallId = allocateToolCallId(message.tool_call_id);
282
+ if (pendingAssistant.expectedIds.has(toolCallId)
283
+ && !pendingAssistant.resolvedIds.has(toolCallId)) {
284
+ converted.push({
285
+ role: 'tool',
286
+ content: message.content,
287
+ tool_call_id: toolCallId,
288
+ });
289
+ pendingAssistant.resolvedIds.add(toolCallId);
290
+ if (pendingAssistant.resolvedIds.size === pendingAssistant.expectedIds.size) {
291
+ pendingAssistant = null;
292
+ }
293
+ }
294
+ else {
295
+ logger.debug('OpenAI Direct: dropping unexpected tool message during conversion', {
296
+ toolCallId,
297
+ });
298
+ }
299
+ continue;
300
+ }
301
+ if (pendingAssistant && message.role !== 'tool') {
302
+ closePendingAssistant();
303
+ }
100
304
  switch (message.role) {
101
305
  case 'system':
102
- return {
306
+ converted.push({
103
307
  role: 'system',
104
308
  content: message.content,
105
- };
309
+ });
310
+ break;
106
311
  case 'user':
107
- return {
312
+ converted.push({
108
313
  role: 'user',
109
314
  content: message.content,
110
- };
111
- case 'assistant':
112
- return {
315
+ });
316
+ break;
317
+ case 'assistant': {
318
+ const mappedToolCalls = Array.isArray(message.tool_calls)
319
+ ? message.tool_calls.map((toolCall) => ({
320
+ ...toolCall,
321
+ id: allocateToolCallId(toolCall?.id),
322
+ }))
323
+ : [];
324
+ const assistantMessage = {
113
325
  role: 'assistant',
114
326
  content: message.content,
115
- ...(message.tool_calls && { tool_calls: message.tool_calls }),
327
+ ...(mappedToolCalls.length > 0 ? { tool_calls: mappedToolCalls } : {}),
116
328
  };
329
+ converted.push(assistantMessage);
330
+ if (mappedToolCalls.length > 0) {
331
+ pendingAssistant = {
332
+ assistantIndex: converted.length - 1,
333
+ expectedIds: new Set(mappedToolCalls.map((tc) => String(tc.id))),
334
+ resolvedIds: new Set(),
335
+ };
336
+ }
337
+ break;
338
+ }
117
339
  case 'tool':
118
- return {
119
- role: 'tool',
120
- content: message.content,
121
- tool_call_id: message.tool_call_id,
122
- };
340
+ logger.debug('OpenAI Direct: dropping orphaned tool message during conversion', {
341
+ toolCallId: message.tool_call_id,
342
+ });
343
+ break;
123
344
  default:
124
345
  throw new Error(`Unsupported message role: ${message.role}`);
125
346
  }
126
- });
347
+ }
348
+ closePendingAssistant();
349
+ return converted;
127
350
  }
128
351
  /**
129
352
  * Convert MCP tools from AI SDK format to OpenAI format
@@ -138,19 +361,8 @@ function convertMCPToolsToOpenAI(mcpTools) {
138
361
  },
139
362
  }));
140
363
  }
141
- function isTruthyEnvValue(value) {
142
- if (!value)
143
- return false;
144
- const normalized = value.trim().toLowerCase();
145
- return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';
146
- }
147
- function shouldAttachTools(provider) {
148
- if (provider !== 'ollama') {
149
- return true;
150
- }
151
- // Ollama frequently behaves better without OpenAI-style tool definitions attached.
152
- // Opt-in override: ENABLE_OLLAMA_TOOLS=true|1|yes|on
153
- return isTruthyEnvValue(process.env.ENABLE_OLLAMA_TOOLS);
364
+ function shouldAttachTools(_provider) {
365
+ return true;
154
366
  }
155
367
  /**
156
368
  * Streaming OpenAI response handler - Pure client (no tool execution)
@@ -161,12 +373,16 @@ export async function streamOpenAIResponse(client, model, messages, agent, mcpTo
161
373
  const openaiTools = shouldAttachTools(agent.provider) && Object.keys(mcpTools).length > 0
162
374
  ? convertMCPToolsToOpenAI(mcpTools)
163
375
  : undefined;
376
+ const reasoning = getReasoningConfigForOpenAIProvider(world);
164
377
  const requestParams = {
165
378
  model,
166
379
  messages: openaiMessages,
167
380
  stream: true,
168
381
  temperature: agent.temperature,
169
382
  max_completion_tokens: agent.maxTokens,
383
+ ...(reasoning
384
+ ? { reasoning }
385
+ : {}),
170
386
  ...(openaiTools && { tools: openaiTools }),
171
387
  };
172
388
  logger.debug(`OpenAI Direct: Starting streaming request for agent=${agent.id}, model=${model}`, {
@@ -183,9 +399,15 @@ export async function streamOpenAIResponse(client, model, messages, agent, mcpTo
183
399
  throw new DOMException('OpenAI stream aborted', 'AbortError');
184
400
  }
185
401
  const delta = chunk.choices[0]?.delta;
402
+ const reasoningContent = extractReasoningText(delta?.reasoning_content
403
+ ?? delta?.reasoning
404
+ ?? delta?.thinking);
405
+ if (reasoningContent) {
406
+ onChunk({ reasoningContent });
407
+ }
186
408
  if (delta?.content) {
187
409
  fullResponse += delta.content;
188
- onChunk(delta.content);
410
+ onChunk({ content: delta.content });
189
411
  }
190
412
  // Handle function calls
191
413
  if (delta?.tool_calls) {
@@ -228,8 +450,9 @@ export async function streamOpenAIResponse(client, model, messages, agent, mcpTo
228
450
  toolCount: validCalls.length,
229
451
  toolNames: validCalls.map(fc => fc.function?.name)
230
452
  });
453
+ const allocateToolCallId = createToolCallIdAllocator();
231
454
  const toolCallsFormatted = validCalls.map(fc => ({
232
- id: fc.id || generateFallbackId(),
455
+ id: allocateToolCallId(fc.id),
233
456
  type: 'function',
234
457
  function: {
235
458
  name: fc.function.name,
@@ -260,6 +483,12 @@ export async function streamOpenAIResponse(client, model, messages, agent, mcpTo
260
483
  };
261
484
  }
262
485
  catch (error) {
486
+ if (abortSignal?.aborted || isAbortLikeError(error)) {
487
+ logger.info(`OpenAI Direct: Streaming canceled for agent=${agent.id}`, {
488
+ error: error instanceof Error ? error.message : String(error),
489
+ });
490
+ throw error;
491
+ }
263
492
  logger.error(`OpenAI Direct: Streaming error for agent=${agent.id}:`, error);
264
493
  throw error;
265
494
  }
@@ -273,11 +502,15 @@ export async function generateOpenAIResponse(client, model, messages, agent, mcp
273
502
  const openaiTools = shouldAttachTools(agent.provider) && Object.keys(mcpTools).length > 0
274
503
  ? convertMCPToolsToOpenAI(mcpTools)
275
504
  : undefined;
505
+ const reasoning = getReasoningConfigForOpenAIProvider(world);
276
506
  const requestParams = {
277
507
  model,
278
508
  messages: openaiMessages,
279
509
  temperature: agent.temperature,
280
510
  max_completion_tokens: agent.maxTokens,
511
+ ...(reasoning
512
+ ? { reasoning }
513
+ : {}),
281
514
  ...(openaiTools && { tools: openaiTools }),
282
515
  };
283
516
  logger.debug(`OpenAI Direct: Starting non-streaming request for agent=${agent.id}, model=${model}`, {
@@ -307,10 +540,11 @@ export async function generateOpenAIResponse(client, model, messages, agent, mcp
307
540
  toolCount: validToolCalls.length,
308
541
  toolNames: validToolCalls.map(tc => tc.type === 'function' ? tc.function.name : 'unknown')
309
542
  });
543
+ const allocateToolCallId = createToolCallIdAllocator();
310
544
  const toolCallsFormatted = validToolCalls.map(tc => {
311
545
  const funcCall = tc;
312
546
  return {
313
- id: tc.id || generateFallbackId(),
547
+ id: allocateToolCallId(tc.id),
314
548
  type: 'function',
315
549
  function: {
316
550
  name: funcCall.function.name,
@@ -1 +1 @@
1
- {"version":3,"file":"openai-direct.js","sourceRoot":"","sources":["../../core/openai-direct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-direct.js","sourceRoot":"","sources":["../../core/openai-direct.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { World } from '../types.js';
2
+ type OptionalTracer = {
3
+ attachToWorld: (world: World) => void;
4
+ };
5
+ type OpikModule = {
6
+ createOpikTracer?: (config: {
7
+ apiKey: string;
8
+ workspace: string;
9
+ project?: string;
10
+ }) => Promise<OptionalTracer | null>;
11
+ };
12
+ export type OpikRuntimeConfig = {
13
+ enabled: boolean;
14
+ safetyEnabled: boolean;
15
+ evalEnabled: boolean;
16
+ apiKey?: string;
17
+ workspace?: string;
18
+ project?: string;
19
+ blockOnHighSeverity: boolean;
20
+ redact: boolean;
21
+ };
22
+ export type AttachOpikResult = 'disabled' | 'already_attached' | 'missing_dependency' | 'missing_config' | 'init_failed' | 'attached';
23
+ export type ResolveOpikConfigOptions = {
24
+ enabledOverride?: boolean;
25
+ };
26
+ export declare function resolveOpikRuntimeConfig(world: World, options?: ResolveOpikConfigOptions): OpikRuntimeConfig;
27
+ export declare function isOpikSafetyEnabled(world: World, options?: ResolveOpikConfigOptions): boolean;
28
+ export declare function attachOptionalOpikTracer(world: World, options: ResolveOpikConfigOptions & {
29
+ source: 'cli' | 'server';
30
+ moduleLoader?: () => Promise<OpikModule>;
31
+ }): Promise<AttachOpikResult>;
32
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opik-runtime.d.ts","sourceRoot":"","sources":["../../../core/optional-tracers/opik-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAQzC,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAqFF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,wBAA6B,GAAG,iBAAiB,CAahH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAEjG;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,wBAAwB,GAAG;IAClC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1C,GACA,OAAO,CAAC,gBAAgB,CAAC,CAqD3B"}
@@ -0,0 +1,141 @@
1
+ import { dirname, resolve } from 'path';
2
+ import { fileURLToPath, pathToFileURL } from 'url';
3
+ import { createCategoryLogger } from '../logger.js';
4
+ import { getEnvValueFromText } from '../utils.js';
5
+ // Opik integration: centralized optional tracer runtime gate and attach behavior.
6
+ const logger = createCategoryLogger('opik.runtime');
7
+ const ATTACHED_WORLDS = new WeakSet();
8
+ function parseBoolean(value) {
9
+ if (typeof value !== 'string') {
10
+ return undefined;
11
+ }
12
+ const normalized = value.trim().toLowerCase();
13
+ if (normalized === 'true' || normalized === '1' || normalized === 'yes' || normalized === 'on') {
14
+ return true;
15
+ }
16
+ if (normalized === 'false' || normalized === '0' || normalized === 'no' || normalized === 'off') {
17
+ return false;
18
+ }
19
+ return undefined;
20
+ }
21
+ function getWorldConfig(world, key) {
22
+ if (!world || typeof world.variables !== 'string') {
23
+ return undefined;
24
+ }
25
+ return getEnvValueFromText(world.variables, key);
26
+ }
27
+ function resolveBoolean(world, key, defaultValue) {
28
+ const worldValue = parseBoolean(getWorldConfig(world, key));
29
+ if (worldValue !== undefined) {
30
+ return worldValue;
31
+ }
32
+ const envValue = parseBoolean(process.env[key]);
33
+ if (envValue !== undefined) {
34
+ return envValue;
35
+ }
36
+ return defaultValue;
37
+ }
38
+ function resolveString(world, key) {
39
+ const worldValue = getWorldConfig(world, key);
40
+ if (worldValue && worldValue.trim()) {
41
+ return worldValue.trim();
42
+ }
43
+ const envValue = process.env[key];
44
+ if (envValue && envValue.trim()) {
45
+ return envValue.trim();
46
+ }
47
+ return undefined;
48
+ }
49
+ function getImportCandidates() {
50
+ const currentDir = dirname(fileURLToPath(import.meta.url));
51
+ return [
52
+ '@agent-world/opik',
53
+ pathToFileURL(resolve(currentDir, '../packages/opik/dist/index.js')).href,
54
+ pathToFileURL(resolve(currentDir, '../packages/opik/src/index.ts')).href,
55
+ pathToFileURL(resolve(currentDir, '../../packages/opik/dist/index.js')).href,
56
+ pathToFileURL(resolve(currentDir, '../../packages/opik/src/index.ts')).href,
57
+ ];
58
+ }
59
+ async function importOpikModule(moduleLoader) {
60
+ if (moduleLoader) {
61
+ try {
62
+ return await moduleLoader();
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ for (const candidate of getImportCandidates()) {
69
+ try {
70
+ const loaded = await import(candidate);
71
+ if (loaded?.createOpikTracer) {
72
+ return loaded;
73
+ }
74
+ }
75
+ catch {
76
+ continue;
77
+ }
78
+ }
79
+ return null;
80
+ }
81
+ export function resolveOpikRuntimeConfig(world, options = {}) {
82
+ const enabled = options.enabledOverride ?? resolveBoolean(world, 'OPIK_ENABLED', false);
83
+ return {
84
+ enabled,
85
+ safetyEnabled: enabled && resolveBoolean(world, 'OPIK_SAFETY_ENABLED', false),
86
+ evalEnabled: enabled && resolveBoolean(world, 'OPIK_EVAL_ENABLED', false),
87
+ apiKey: resolveString(world, 'OPIK_API_KEY'),
88
+ workspace: resolveString(world, 'OPIK_WORKSPACE'),
89
+ project: resolveString(world, 'OPIK_PROJECT'),
90
+ blockOnHighSeverity: resolveBoolean(world, 'OPIK_SAFETY_BLOCK_ON_HIGH', true),
91
+ redact: resolveBoolean(world, 'OPIK_SAFETY_REDACT', true),
92
+ };
93
+ }
94
+ export function isOpikSafetyEnabled(world, options = {}) {
95
+ return resolveOpikRuntimeConfig(world, options).safetyEnabled;
96
+ }
97
+ export async function attachOptionalOpikTracer(world, options) {
98
+ const runtimeConfig = resolveOpikRuntimeConfig(world, options);
99
+ if (!runtimeConfig.enabled) {
100
+ return 'disabled';
101
+ }
102
+ if (ATTACHED_WORLDS.has(world)) {
103
+ return 'already_attached';
104
+ }
105
+ if (!runtimeConfig.apiKey || !runtimeConfig.workspace) {
106
+ logger.warn('Opik enabled but required env is missing; skipping tracer attachment', {
107
+ source: options.source,
108
+ hasApiKey: Boolean(runtimeConfig.apiKey),
109
+ hasWorkspace: Boolean(runtimeConfig.workspace),
110
+ requiredVars: ['OPIK_API_KEY', 'OPIK_WORKSPACE'],
111
+ });
112
+ return 'missing_config';
113
+ }
114
+ const opikModule = await importOpikModule(options.moduleLoader);
115
+ if (!opikModule?.createOpikTracer) {
116
+ logger.warn('Opik enabled but optional dependency is unavailable; startup continues without tracing', {
117
+ source: options.source,
118
+ });
119
+ return 'missing_dependency';
120
+ }
121
+ const tracer = await opikModule.createOpikTracer({
122
+ apiKey: runtimeConfig.apiKey,
123
+ workspace: runtimeConfig.workspace,
124
+ project: runtimeConfig.project,
125
+ });
126
+ if (!tracer) {
127
+ logger.warn('Opik module loaded but tracer initialization failed; startup continues without tracing', {
128
+ source: options.source,
129
+ });
130
+ return 'init_failed';
131
+ }
132
+ tracer.attachToWorld(world);
133
+ ATTACHED_WORLDS.add(world);
134
+ logger.info('Opik tracer attached', {
135
+ source: options.source,
136
+ worldId: world.id,
137
+ safetyEnabled: runtimeConfig.safetyEnabled,
138
+ evalEnabled: runtimeConfig.evalEnabled,
139
+ });
140
+ return 'attached';
141
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opik-runtime.js","sourceRoot":"","sources":["../../../core/optional-tracers/opik-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,kFAAkF;AAClF,MAAM,MAAM,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAEpD,MAAM,eAAe,GAAG,IAAI,OAAO,EAAS,CAAC;AAqC7C,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,GAAW;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,GAAW,EAAE,YAAqB;IACtE,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAY,EAAE,GAAW;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACpC,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO;QACL,mBAAmB;QACnB,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC,CAAC,IAAI;QACzE,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC,CAAC,IAAI;QACxE,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC,CAAC,IAAI;QAC5E,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,IAAI;KAC5E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,YAAwC;IACtE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBAC7B,OAAO,MAAoB,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAY,EAAE,UAAoC,EAAE;IAC3F,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAExF,OAAO;QACL,OAAO;QACP,aAAa,EAAE,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE,KAAK,CAAC;QAC7E,WAAW,EAAE,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC;QACzE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;QAC5C,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACjD,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;QAC7C,mBAAmB,EAAE,cAAc,CAAC,KAAK,EAAE,2BAA2B,EAAE,IAAI,CAAC;QAC7E,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,UAAoC,EAAE;IACtF,OAAO,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAY,EACZ,OAGC;IAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,sEAAsE,EAAE;YAClF,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;YACxC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;YAC9C,YAAY,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;SACjD,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,wFAAwF,EAAE;YACpG,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC;QAC/C,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,OAAO,EAAE,aAAa,CAAC,OAAO;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,wFAAwF,EAAE;YACpG,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,aAAa,EAAE,aAAa,CAAC,aAAa;QAC1C,WAAW,EAAE,aAAa,CAAC,WAAW;KACvC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}