mojentic 1.0.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 (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +459 -0
  3. package/dist/agents/async-aggregator-agent.d.ts +101 -0
  4. package/dist/agents/async-aggregator-agent.d.ts.map +1 -0
  5. package/dist/agents/async-aggregator-agent.js +160 -0
  6. package/dist/agents/async-aggregator-agent.js.map +1 -0
  7. package/dist/agents/async-dispatcher.d.ts +98 -0
  8. package/dist/agents/async-dispatcher.d.ts.map +1 -0
  9. package/dist/agents/async-dispatcher.js +173 -0
  10. package/dist/agents/async-dispatcher.js.map +1 -0
  11. package/dist/agents/async-llm-agent-with-memory.d.ts +95 -0
  12. package/dist/agents/async-llm-agent-with-memory.d.ts.map +1 -0
  13. package/dist/agents/async-llm-agent-with-memory.js +136 -0
  14. package/dist/agents/async-llm-agent-with-memory.js.map +1 -0
  15. package/dist/agents/async-llm-agent.d.ts +85 -0
  16. package/dist/agents/async-llm-agent.d.ts.map +1 -0
  17. package/dist/agents/async-llm-agent.js +87 -0
  18. package/dist/agents/async-llm-agent.js.map +1 -0
  19. package/dist/agents/base-agent.d.ts +59 -0
  20. package/dist/agents/base-agent.d.ts.map +1 -0
  21. package/dist/agents/base-agent.js +24 -0
  22. package/dist/agents/base-agent.js.map +1 -0
  23. package/dist/agents/base-async-agent.d.ts +42 -0
  24. package/dist/agents/base-async-agent.d.ts.map +1 -0
  25. package/dist/agents/base-async-agent.js +6 -0
  26. package/dist/agents/base-async-agent.js.map +1 -0
  27. package/dist/agents/event.d.ts +26 -0
  28. package/dist/agents/event.d.ts.map +1 -0
  29. package/dist/agents/event.js +13 -0
  30. package/dist/agents/event.js.map +1 -0
  31. package/dist/agents/index.d.ts +14 -0
  32. package/dist/agents/index.d.ts.map +1 -0
  33. package/dist/agents/index.js +30 -0
  34. package/dist/agents/index.js.map +1 -0
  35. package/dist/agents/iterative-problem-solver.d.ts +83 -0
  36. package/dist/agents/iterative-problem-solver.d.ts.map +1 -0
  37. package/dist/agents/iterative-problem-solver.js +120 -0
  38. package/dist/agents/iterative-problem-solver.js.map +1 -0
  39. package/dist/agents/router.d.ts +44 -0
  40. package/dist/agents/router.d.ts.map +1 -0
  41. package/dist/agents/router.js +53 -0
  42. package/dist/agents/router.js.map +1 -0
  43. package/dist/agents/simple-recursive-agent.d.ts +182 -0
  44. package/dist/agents/simple-recursive-agent.d.ts.map +1 -0
  45. package/dist/agents/simple-recursive-agent.js +272 -0
  46. package/dist/agents/simple-recursive-agent.js.map +1 -0
  47. package/dist/context/index.d.ts +5 -0
  48. package/dist/context/index.d.ts.map +1 -0
  49. package/dist/context/index.js +21 -0
  50. package/dist/context/index.js.map +1 -0
  51. package/dist/context/shared-working-memory.d.ts +76 -0
  52. package/dist/context/shared-working-memory.d.ts.map +1 -0
  53. package/dist/context/shared-working-memory.js +121 -0
  54. package/dist/context/shared-working-memory.js.map +1 -0
  55. package/dist/error.d.ts +93 -0
  56. package/dist/error.d.ts.map +1 -0
  57. package/dist/error.js +149 -0
  58. package/dist/error.js.map +1 -0
  59. package/dist/examples/react/decisioning-agent.d.ts +48 -0
  60. package/dist/examples/react/decisioning-agent.d.ts.map +1 -0
  61. package/dist/examples/react/decisioning-agent.js +204 -0
  62. package/dist/examples/react/decisioning-agent.js.map +1 -0
  63. package/dist/examples/react/events.d.ts +77 -0
  64. package/dist/examples/react/events.d.ts.map +1 -0
  65. package/dist/examples/react/events.js +9 -0
  66. package/dist/examples/react/events.js.map +1 -0
  67. package/dist/examples/react/formatters.d.ts +23 -0
  68. package/dist/examples/react/formatters.d.ts.map +1 -0
  69. package/dist/examples/react/formatters.js +68 -0
  70. package/dist/examples/react/formatters.js.map +1 -0
  71. package/dist/examples/react/index.d.ts +12 -0
  72. package/dist/examples/react/index.d.ts.map +1 -0
  73. package/dist/examples/react/index.js +28 -0
  74. package/dist/examples/react/index.js.map +1 -0
  75. package/dist/examples/react/models.d.ts +57 -0
  76. package/dist/examples/react/models.d.ts.map +1 -0
  77. package/dist/examples/react/models.js +19 -0
  78. package/dist/examples/react/models.js.map +1 -0
  79. package/dist/examples/react/output-agent.d.ts +23 -0
  80. package/dist/examples/react/output-agent.d.ts.map +1 -0
  81. package/dist/examples/react/output-agent.js +28 -0
  82. package/dist/examples/react/output-agent.js.map +1 -0
  83. package/dist/examples/react/summarization-agent.d.ts +46 -0
  84. package/dist/examples/react/summarization-agent.d.ts.map +1 -0
  85. package/dist/examples/react/summarization-agent.js +102 -0
  86. package/dist/examples/react/summarization-agent.js.map +1 -0
  87. package/dist/examples/react/thinking-agent.d.ts +47 -0
  88. package/dist/examples/react/thinking-agent.d.ts.map +1 -0
  89. package/dist/examples/react/thinking-agent.js +127 -0
  90. package/dist/examples/react/thinking-agent.js.map +1 -0
  91. package/dist/examples/react/tool-call-agent.d.ts +25 -0
  92. package/dist/examples/react/tool-call-agent.d.ts.map +1 -0
  93. package/dist/examples/react/tool-call-agent.js +83 -0
  94. package/dist/examples/react/tool-call-agent.js.map +1 -0
  95. package/dist/index.d.ts +10 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +28 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/llm/agent.d.ts +68 -0
  100. package/dist/llm/agent.d.ts.map +1 -0
  101. package/dist/llm/agent.js +85 -0
  102. package/dist/llm/agent.js.map +1 -0
  103. package/dist/llm/broker.d.ts +150 -0
  104. package/dist/llm/broker.d.ts.map +1 -0
  105. package/dist/llm/broker.js +355 -0
  106. package/dist/llm/broker.js.map +1 -0
  107. package/dist/llm/chat-session.d.ts +98 -0
  108. package/dist/llm/chat-session.d.ts.map +1 -0
  109. package/dist/llm/chat-session.js +156 -0
  110. package/dist/llm/chat-session.js.map +1 -0
  111. package/dist/llm/gateway.d.ts +28 -0
  112. package/dist/llm/gateway.d.ts.map +1 -0
  113. package/dist/llm/gateway.js +6 -0
  114. package/dist/llm/gateway.js.map +1 -0
  115. package/dist/llm/gateways/index.d.ts +9 -0
  116. package/dist/llm/gateways/index.d.ts.map +1 -0
  117. package/dist/llm/gateways/index.js +25 -0
  118. package/dist/llm/gateways/index.js.map +1 -0
  119. package/dist/llm/gateways/ollama.d.ts +30 -0
  120. package/dist/llm/gateways/ollama.d.ts.map +1 -0
  121. package/dist/llm/gateways/ollama.js +322 -0
  122. package/dist/llm/gateways/ollama.js.map +1 -0
  123. package/dist/llm/gateways/openai-messages-adapter.d.ts +29 -0
  124. package/dist/llm/gateways/openai-messages-adapter.d.ts.map +1 -0
  125. package/dist/llm/gateways/openai-messages-adapter.js +188 -0
  126. package/dist/llm/gateways/openai-messages-adapter.js.map +1 -0
  127. package/dist/llm/gateways/openai-model-registry.d.ts +82 -0
  128. package/dist/llm/gateways/openai-model-registry.d.ts.map +1 -0
  129. package/dist/llm/gateways/openai-model-registry.js +352 -0
  130. package/dist/llm/gateways/openai-model-registry.js.map +1 -0
  131. package/dist/llm/gateways/openai.d.ts +40 -0
  132. package/dist/llm/gateways/openai.d.ts.map +1 -0
  133. package/dist/llm/gateways/openai.js +469 -0
  134. package/dist/llm/gateways/openai.js.map +1 -0
  135. package/dist/llm/gateways/tokenizerGateway.d.ts +61 -0
  136. package/dist/llm/gateways/tokenizerGateway.d.ts.map +1 -0
  137. package/dist/llm/gateways/tokenizerGateway.js +75 -0
  138. package/dist/llm/gateways/tokenizerGateway.js.map +1 -0
  139. package/dist/llm/index.d.ts +11 -0
  140. package/dist/llm/index.d.ts.map +1 -0
  141. package/dist/llm/index.js +27 -0
  142. package/dist/llm/index.js.map +1 -0
  143. package/dist/llm/models.d.ts +95 -0
  144. package/dist/llm/models.d.ts.map +1 -0
  145. package/dist/llm/models.js +50 -0
  146. package/dist/llm/models.js.map +1 -0
  147. package/dist/llm/tools/ask-user.d.ts +39 -0
  148. package/dist/llm/tools/ask-user.d.ts.map +1 -0
  149. package/dist/llm/tools/ask-user.js +111 -0
  150. package/dist/llm/tools/ask-user.js.map +1 -0
  151. package/dist/llm/tools/current-datetime.d.ts +17 -0
  152. package/dist/llm/tools/current-datetime.d.ts.map +1 -0
  153. package/dist/llm/tools/current-datetime.js +76 -0
  154. package/dist/llm/tools/current-datetime.js.map +1 -0
  155. package/dist/llm/tools/date-resolver.d.ts +17 -0
  156. package/dist/llm/tools/date-resolver.d.ts.map +1 -0
  157. package/dist/llm/tools/date-resolver.js +135 -0
  158. package/dist/llm/tools/date-resolver.js.map +1 -0
  159. package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts +13 -0
  160. package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts.map +1 -0
  161. package/dist/llm/tools/ephemeral-task-manager/append-task.js +54 -0
  162. package/dist/llm/tools/ephemeral-task-manager/append-task.js.map +1 -0
  163. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts +13 -0
  164. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts.map +1 -0
  165. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js +37 -0
  166. package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js.map +1 -0
  167. package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts +15 -0
  168. package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts.map +1 -0
  169. package/dist/llm/tools/ephemeral-task-manager/complete-task.js +56 -0
  170. package/dist/llm/tools/ephemeral-task-manager/complete-task.js.map +1 -0
  171. package/dist/llm/tools/ephemeral-task-manager/index.d.ts +44 -0
  172. package/dist/llm/tools/ephemeral-task-manager/index.d.ts.map +1 -0
  173. package/dist/llm/tools/ephemeral-task-manager/index.js +73 -0
  174. package/dist/llm/tools/ephemeral-task-manager/index.js.map +1 -0
  175. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts +13 -0
  176. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts.map +1 -0
  177. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js +59 -0
  178. package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js.map +1 -0
  179. package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts +14 -0
  180. package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts.map +1 -0
  181. package/dist/llm/tools/ephemeral-task-manager/list-tasks.js +45 -0
  182. package/dist/llm/tools/ephemeral-task-manager/list-tasks.js.map +1 -0
  183. package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts +13 -0
  184. package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts.map +1 -0
  185. package/dist/llm/tools/ephemeral-task-manager/prepend-task.js +54 -0
  186. package/dist/llm/tools/ephemeral-task-manager/prepend-task.js.map +1 -0
  187. package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts +15 -0
  188. package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts.map +1 -0
  189. package/dist/llm/tools/ephemeral-task-manager/start-task.js +56 -0
  190. package/dist/llm/tools/ephemeral-task-manager/start-task.js.map +1 -0
  191. package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts +68 -0
  192. package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts.map +1 -0
  193. package/dist/llm/tools/ephemeral-task-manager/task-list.js +120 -0
  194. package/dist/llm/tools/ephemeral-task-manager/task-list.js.map +1 -0
  195. package/dist/llm/tools/ephemeral-task-manager/task.d.ts +21 -0
  196. package/dist/llm/tools/ephemeral-task-manager/task.d.ts.map +1 -0
  197. package/dist/llm/tools/ephemeral-task-manager/task.js +24 -0
  198. package/dist/llm/tools/ephemeral-task-manager/task.js.map +1 -0
  199. package/dist/llm/tools/file-manager.d.ts +127 -0
  200. package/dist/llm/tools/file-manager.d.ts.map +1 -0
  201. package/dist/llm/tools/file-manager.js +598 -0
  202. package/dist/llm/tools/file-manager.js.map +1 -0
  203. package/dist/llm/tools/index.d.ts +11 -0
  204. package/dist/llm/tools/index.d.ts.map +1 -0
  205. package/dist/llm/tools/index.js +27 -0
  206. package/dist/llm/tools/index.js.map +1 -0
  207. package/dist/llm/tools/tell-user.d.ts +31 -0
  208. package/dist/llm/tools/tell-user.d.ts.map +1 -0
  209. package/dist/llm/tools/tell-user.js +57 -0
  210. package/dist/llm/tools/tell-user.js.map +1 -0
  211. package/dist/llm/tools/tool-wrapper.d.ts +54 -0
  212. package/dist/llm/tools/tool-wrapper.d.ts.map +1 -0
  213. package/dist/llm/tools/tool-wrapper.js +91 -0
  214. package/dist/llm/tools/tool-wrapper.js.map +1 -0
  215. package/dist/llm/tools/tool.d.ts +70 -0
  216. package/dist/llm/tools/tool.d.ts.map +1 -0
  217. package/dist/llm/tools/tool.js +19 -0
  218. package/dist/llm/tools/tool.js.map +1 -0
  219. package/dist/llm/tools/web-search-tool.d.ts +35 -0
  220. package/dist/llm/tools/web-search-tool.d.ts.map +1 -0
  221. package/dist/llm/tools/web-search-tool.js +105 -0
  222. package/dist/llm/tools/web-search-tool.js.map +1 -0
  223. package/dist/llm/utils/image.d.ts +30 -0
  224. package/dist/llm/utils/image.d.ts.map +1 -0
  225. package/dist/llm/utils/image.js +65 -0
  226. package/dist/llm/utils/image.js.map +1 -0
  227. package/dist/tracer/eventStore.d.ts +101 -0
  228. package/dist/tracer/eventStore.d.ts.map +1 -0
  229. package/dist/tracer/eventStore.js +120 -0
  230. package/dist/tracer/eventStore.js.map +1 -0
  231. package/dist/tracer/index.d.ts +8 -0
  232. package/dist/tracer/index.d.ts.map +1 -0
  233. package/dist/tracer/index.js +24 -0
  234. package/dist/tracer/index.js.map +1 -0
  235. package/dist/tracer/nullTracer.d.ts +127 -0
  236. package/dist/tracer/nullTracer.d.ts.map +1 -0
  237. package/dist/tracer/nullTracer.js +148 -0
  238. package/dist/tracer/nullTracer.js.map +1 -0
  239. package/dist/tracer/tracerEvents.d.ts +209 -0
  240. package/dist/tracer/tracerEvents.d.ts.map +1 -0
  241. package/dist/tracer/tracerEvents.js +312 -0
  242. package/dist/tracer/tracerEvents.js.map +1 -0
  243. package/dist/tracer/tracerSystem.d.ts +149 -0
  244. package/dist/tracer/tracerSystem.d.ts.map +1 -0
  245. package/dist/tracer/tracerSystem.js +196 -0
  246. package/dist/tracer/tracerSystem.js.map +1 -0
  247. package/package.json +87 -0
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Event store for capturing and querying tracer events.
3
+ */
4
+ import { TracerEvent, TracerEventConstructor } from './tracerEvents';
5
+ /**
6
+ * Filter options for querying events.
7
+ */
8
+ export interface FilterOptions {
9
+ /**
10
+ * Filter events by this specific event type
11
+ */
12
+ eventType?: TracerEventConstructor;
13
+ /**
14
+ * Include events with timestamp >= startTime
15
+ */
16
+ startTime?: number;
17
+ /**
18
+ * Include events with timestamp <= endTime
19
+ */
20
+ endTime?: number;
21
+ /**
22
+ * Custom filter function to apply to events
23
+ */
24
+ filterFunc?: (event: TracerEvent) => boolean;
25
+ }
26
+ /**
27
+ * Store for capturing and querying events, particularly useful for tracer events.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const store = new EventStore((event) => {
32
+ * console.log('Event stored:', event.constructor.name);
33
+ * });
34
+ *
35
+ * store.store(new LLMCallTracerEvent('gpt-4', [], 0.7));
36
+ * const events = store.getEvents();
37
+ * ```
38
+ */
39
+ export declare class EventStore {
40
+ private events;
41
+ private onStoreCallback?;
42
+ /**
43
+ * Initialize an EventStore.
44
+ *
45
+ * @param onStoreCallback - A callback function that will be called whenever an event is stored.
46
+ * The callback receives the stored event as its argument.
47
+ */
48
+ constructor(onStoreCallback?: (event: TracerEvent) => void);
49
+ /**
50
+ * Store an event in the event store.
51
+ *
52
+ * @param event - The event to store
53
+ */
54
+ store(event: TracerEvent): void;
55
+ /**
56
+ * Get events from the store, optionally filtered by type, time range, and custom filter function.
57
+ *
58
+ * @param options - Filter options for querying events
59
+ * @returns Events that match the filter criteria
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Get all LLM call events
64
+ * const llmCalls = store.getEvents({ eventType: LLMCallTracerEvent });
65
+ *
66
+ * // Get events in a time range
67
+ * const recent = store.getEvents({
68
+ * startTime: Date.now() - 60000,
69
+ * endTime: Date.now()
70
+ * });
71
+ *
72
+ * // Get events with custom filter
73
+ * const filtered = store.getEvents({
74
+ * filterFunc: (e) => e.correlationId === 'my-id'
75
+ * });
76
+ * ```
77
+ */
78
+ getEvents(options?: FilterOptions): TracerEvent[];
79
+ /**
80
+ * Clear all events from the store.
81
+ */
82
+ clear(): void;
83
+ /**
84
+ * Get the last N events, optionally filtered by type.
85
+ *
86
+ * @param n - Number of events to return
87
+ * @param eventType - Optional event type to filter by
88
+ * @returns The last N events that match the filter criteria
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Get last 10 events
93
+ * const last10 = store.getLastNEvents(10);
94
+ *
95
+ * // Get last 5 LLM response events
96
+ * const last5Responses = store.getLastNEvents(5, LLMResponseTracerEvent);
97
+ * ```
98
+ */
99
+ getLastNEvents(n: number, eventType?: TracerEventConstructor): TracerEvent[];
100
+ }
101
+ //# sourceMappingURL=eventStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventStore.d.ts","sourceRoot":"","sources":["../../src/tracer/eventStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;CAC9C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAC,CAA+B;IAEvD;;;;;OAKG;gBACS,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;IAI1D;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAS/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,EAAE;IA4BrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,WAAW,EAAE;CAS7E"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Event store for capturing and querying tracer events.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventStore = void 0;
7
+ /**
8
+ * Store for capturing and querying events, particularly useful for tracer events.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const store = new EventStore((event) => {
13
+ * console.log('Event stored:', event.constructor.name);
14
+ * });
15
+ *
16
+ * store.store(new LLMCallTracerEvent('gpt-4', [], 0.7));
17
+ * const events = store.getEvents();
18
+ * ```
19
+ */
20
+ class EventStore {
21
+ events = [];
22
+ onStoreCallback;
23
+ /**
24
+ * Initialize an EventStore.
25
+ *
26
+ * @param onStoreCallback - A callback function that will be called whenever an event is stored.
27
+ * The callback receives the stored event as its argument.
28
+ */
29
+ constructor(onStoreCallback) {
30
+ this.onStoreCallback = onStoreCallback;
31
+ }
32
+ /**
33
+ * Store an event in the event store.
34
+ *
35
+ * @param event - The event to store
36
+ */
37
+ store(event) {
38
+ this.events.push(event);
39
+ // Call the callback if it exists
40
+ if (this.onStoreCallback) {
41
+ this.onStoreCallback(event);
42
+ }
43
+ }
44
+ /**
45
+ * Get events from the store, optionally filtered by type, time range, and custom filter function.
46
+ *
47
+ * @param options - Filter options for querying events
48
+ * @returns Events that match the filter criteria
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Get all LLM call events
53
+ * const llmCalls = store.getEvents({ eventType: LLMCallTracerEvent });
54
+ *
55
+ * // Get events in a time range
56
+ * const recent = store.getEvents({
57
+ * startTime: Date.now() - 60000,
58
+ * endTime: Date.now()
59
+ * });
60
+ *
61
+ * // Get events with custom filter
62
+ * const filtered = store.getEvents({
63
+ * filterFunc: (e) => e.correlationId === 'my-id'
64
+ * });
65
+ * ```
66
+ */
67
+ getEvents(options = {}) {
68
+ let result = [...this.events];
69
+ // Filter by event type if specified
70
+ const { eventType } = options;
71
+ if (eventType) {
72
+ result = result.filter((e) => e instanceof eventType);
73
+ }
74
+ // Filter by time range
75
+ const { startTime } = options;
76
+ if (startTime !== undefined) {
77
+ result = result.filter((e) => e.timestamp >= startTime);
78
+ }
79
+ const { endTime } = options;
80
+ if (endTime !== undefined) {
81
+ result = result.filter((e) => e.timestamp <= endTime);
82
+ }
83
+ // Apply custom filter function if provided
84
+ if (options.filterFunc) {
85
+ result = result.filter(options.filterFunc);
86
+ }
87
+ return result;
88
+ }
89
+ /**
90
+ * Clear all events from the store.
91
+ */
92
+ clear() {
93
+ this.events = [];
94
+ }
95
+ /**
96
+ * Get the last N events, optionally filtered by type.
97
+ *
98
+ * @param n - Number of events to return
99
+ * @param eventType - Optional event type to filter by
100
+ * @returns The last N events that match the filter criteria
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Get last 10 events
105
+ * const last10 = store.getLastNEvents(10);
106
+ *
107
+ * // Get last 5 LLM response events
108
+ * const last5Responses = store.getLastNEvents(5, LLMResponseTracerEvent);
109
+ * ```
110
+ */
111
+ getLastNEvents(n, eventType) {
112
+ let filtered = this.events;
113
+ if (eventType) {
114
+ filtered = filtered.filter((e) => e instanceof eventType);
115
+ }
116
+ return filtered.slice(-n);
117
+ }
118
+ }
119
+ exports.EventStore = EventStore;
120
+ //# sourceMappingURL=eventStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventStore.js","sourceRoot":"","sources":["../../src/tracer/eventStore.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA6BH;;;;;;;;;;;;GAYG;AACH,MAAa,UAAU;IACb,MAAM,GAAkB,EAAE,CAAC;IAC3B,eAAe,CAAgC;IAEvD;;;;;OAKG;IACH,YAAY,eAA8C;QACxD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,iCAAiC;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,UAAyB,EAAE;QACnC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,oCAAoC;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,SAAS,CAAC,CAAC;QACxD,CAAC;QAED,uBAAuB;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,CAAS,EAAE,SAAkC;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,SAAS,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;CACF;AA/GD,gCA+GC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tracer system exports
3
+ */
4
+ export * from './tracerEvents';
5
+ export * from './eventStore';
6
+ export * from './tracerSystem';
7
+ export * from './nullTracer';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Tracer system exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./tracerEvents"), exports);
21
+ __exportStar(require("./eventStore"), exports);
22
+ __exportStar(require("./tracerSystem"), exports);
23
+ __exportStar(require("./nullTracer"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracer/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,+CAA6B;AAC7B,iDAA+B;AAC/B,+CAA6B"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * NullTracer implementation to eliminate conditional checks in the code.
3
+ *
4
+ * This module provides a NullTracer that implements the same interface as TracerSystem
5
+ * but performs no operations, following the Null Object Pattern.
6
+ */
7
+ import { TracerEvent, TracerEventConstructor } from './tracerEvents';
8
+ import { ToolCall } from '../llm/models';
9
+ import { FilterOptions } from './eventStore';
10
+ /**
11
+ * A no-op implementation of TracerSystem that silently discards all tracing operations.
12
+ *
13
+ * This class follows the Null Object Pattern to eliminate conditional checks in client code.
14
+ * All record methods are overridden to do nothing, and all query methods return empty results.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { nullTracer } from './tracer';
19
+ *
20
+ * // Use nullTracer when you don't want any tracing
21
+ * const broker = new LlmBroker('gpt-4', gateway, nullTracer);
22
+ *
23
+ * // All tracer methods are no-ops
24
+ * nullTracer.recordLlmCall('gpt-4', [], 0.7);
25
+ * console.log(nullTracer.getEvents()); // []
26
+ * ```
27
+ */
28
+ export declare class NullTracer {
29
+ /**
30
+ * Always false for NullTracer
31
+ */
32
+ readonly enabled: boolean;
33
+ /**
34
+ * Always undefined for NullTracer
35
+ */
36
+ readonly eventStore: undefined;
37
+ /**
38
+ * Do nothing implementation of recordEvent.
39
+ *
40
+ * @param _event - The tracer event to record (will be ignored)
41
+ */
42
+ recordEvent(_event: TracerEvent): void;
43
+ /**
44
+ * Do nothing implementation of recordLlmCall.
45
+ *
46
+ * @param _model - The name of the LLM model being called
47
+ * @param _messages - The messages sent to the LLM
48
+ * @param _temperature - The temperature setting for the LLM call
49
+ * @param _tools - The tools available to the LLM, if any
50
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
51
+ * @param _source - The source of the event
52
+ */
53
+ recordLlmCall(_model: string, _messages: unknown[], _temperature?: number, _tools?: Record<string, unknown>[], _correlationId?: string, _source?: string): void;
54
+ /**
55
+ * Do nothing implementation of recordLlmResponse.
56
+ *
57
+ * @param _model - The name of the LLM model that responded
58
+ * @param _content - The content of the LLM response
59
+ * @param _toolCalls - Any tool calls made by the LLM in its response
60
+ * @param _callDurationMs - The duration of the LLM call in milliseconds
61
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
62
+ * @param _source - The source of the event
63
+ */
64
+ recordLlmResponse(_model: string, _content: string, _toolCalls?: ToolCall[], _callDurationMs?: number, _correlationId?: string, _source?: string): void;
65
+ /**
66
+ * Do nothing implementation of recordToolCall.
67
+ *
68
+ * @param _toolName - The name of the tool being called
69
+ * @param _args - The arguments provided to the tool
70
+ * @param _result - The result returned by the tool
71
+ * @param _caller - The name of the agent or component calling the tool
72
+ * @param _callDurationMs - The duration of the tool call in milliseconds
73
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
74
+ * @param _source - The source of the event
75
+ */
76
+ recordToolCall(_toolName: string, _args: Record<string, unknown>, _result: unknown, _caller?: string, _callDurationMs?: number, _correlationId?: string, _source?: string): void;
77
+ /**
78
+ * Do nothing implementation of recordAgentInteraction.
79
+ *
80
+ * @param _fromAgent - The name of the agent sending the event
81
+ * @param _toAgent - The name of the agent receiving the event
82
+ * @param _eventType - The type of event being processed
83
+ * @param _eventId - A unique identifier for the event
84
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
85
+ * @param _source - The source of the event
86
+ */
87
+ recordAgentInteraction(_fromAgent: string, _toAgent: string, _eventType: string, _eventId?: string, _correlationId?: string, _source?: string): void;
88
+ /**
89
+ * Return an empty array for any getEvents request.
90
+ *
91
+ * @param _options - Filter options (ignored)
92
+ * @returns An empty array
93
+ */
94
+ getEvents(_options?: FilterOptions): TracerEvent[];
95
+ /**
96
+ * Return an empty array for any getLastNTracerEvents request.
97
+ *
98
+ * @param _n - Number of events to return (ignored)
99
+ * @param _eventType - Optional event type to filter by (ignored)
100
+ * @returns An empty array
101
+ */
102
+ getLastNTracerEvents(_n: number, _eventType?: TracerEventConstructor): TracerEvent[];
103
+ /**
104
+ * Do nothing implementation of clear method.
105
+ */
106
+ clear(): void;
107
+ /**
108
+ * No-op method for interface compatibility.
109
+ */
110
+ enable(): void;
111
+ /**
112
+ * No-op method for interface compatibility.
113
+ */
114
+ disable(): void;
115
+ }
116
+ /**
117
+ * Singleton null tracer instance for convenient use across the application.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * import { nullTracer } from './tracer';
122
+ *
123
+ * const broker = new LlmBroker('gpt-4', gateway, nullTracer);
124
+ * ```
125
+ */
126
+ export declare const nullTracer: NullTracer;
127
+ //# sourceMappingURL=nullTracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullTracer.d.ts","sourceRoot":"","sources":["../../src/tracer/nullTracer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,YAAa;IAEhC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAItC;;;;;;;;;OASG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAAE,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;;OASG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,QAAQ,EAAE,EACvB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;;;OAUG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;;OASG;IACH,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,WAAW,EAAE;IAIlD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,sBAAsB,GAAG,WAAW,EAAE;IAIpF;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * NullTracer implementation to eliminate conditional checks in the code.
4
+ *
5
+ * This module provides a NullTracer that implements the same interface as TracerSystem
6
+ * but performs no operations, following the Null Object Pattern.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.nullTracer = exports.NullTracer = void 0;
10
+ /**
11
+ * A no-op implementation of TracerSystem that silently discards all tracing operations.
12
+ *
13
+ * This class follows the Null Object Pattern to eliminate conditional checks in client code.
14
+ * All record methods are overridden to do nothing, and all query methods return empty results.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { nullTracer } from './tracer';
19
+ *
20
+ * // Use nullTracer when you don't want any tracing
21
+ * const broker = new LlmBroker('gpt-4', gateway, nullTracer);
22
+ *
23
+ * // All tracer methods are no-ops
24
+ * nullTracer.recordLlmCall('gpt-4', [], 0.7);
25
+ * console.log(nullTracer.getEvents()); // []
26
+ * ```
27
+ */
28
+ class NullTracer {
29
+ /**
30
+ * Always false for NullTracer
31
+ */
32
+ enabled = false;
33
+ /**
34
+ * Always undefined for NullTracer
35
+ */
36
+ eventStore = undefined;
37
+ /**
38
+ * Do nothing implementation of recordEvent.
39
+ *
40
+ * @param _event - The tracer event to record (will be ignored)
41
+ */
42
+ recordEvent(_event) {
43
+ // Do nothing
44
+ }
45
+ /**
46
+ * Do nothing implementation of recordLlmCall.
47
+ *
48
+ * @param _model - The name of the LLM model being called
49
+ * @param _messages - The messages sent to the LLM
50
+ * @param _temperature - The temperature setting for the LLM call
51
+ * @param _tools - The tools available to the LLM, if any
52
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
53
+ * @param _source - The source of the event
54
+ */
55
+ recordLlmCall(_model, _messages, _temperature, _tools, _correlationId, _source) {
56
+ // Do nothing
57
+ }
58
+ /**
59
+ * Do nothing implementation of recordLlmResponse.
60
+ *
61
+ * @param _model - The name of the LLM model that responded
62
+ * @param _content - The content of the LLM response
63
+ * @param _toolCalls - Any tool calls made by the LLM in its response
64
+ * @param _callDurationMs - The duration of the LLM call in milliseconds
65
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
66
+ * @param _source - The source of the event
67
+ */
68
+ recordLlmResponse(_model, _content, _toolCalls, _callDurationMs, _correlationId, _source) {
69
+ // Do nothing
70
+ }
71
+ /**
72
+ * Do nothing implementation of recordToolCall.
73
+ *
74
+ * @param _toolName - The name of the tool being called
75
+ * @param _args - The arguments provided to the tool
76
+ * @param _result - The result returned by the tool
77
+ * @param _caller - The name of the agent or component calling the tool
78
+ * @param _callDurationMs - The duration of the tool call in milliseconds
79
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
80
+ * @param _source - The source of the event
81
+ */
82
+ recordToolCall(_toolName, _args, _result, _caller, _callDurationMs, _correlationId, _source) {
83
+ // Do nothing
84
+ }
85
+ /**
86
+ * Do nothing implementation of recordAgentInteraction.
87
+ *
88
+ * @param _fromAgent - The name of the agent sending the event
89
+ * @param _toAgent - The name of the agent receiving the event
90
+ * @param _eventType - The type of event being processed
91
+ * @param _eventId - A unique identifier for the event
92
+ * @param _correlationId - UUID string that is copied from cause-to-effect for tracing events
93
+ * @param _source - The source of the event
94
+ */
95
+ recordAgentInteraction(_fromAgent, _toAgent, _eventType, _eventId, _correlationId, _source) {
96
+ // Do nothing
97
+ }
98
+ /**
99
+ * Return an empty array for any getEvents request.
100
+ *
101
+ * @param _options - Filter options (ignored)
102
+ * @returns An empty array
103
+ */
104
+ getEvents(_options) {
105
+ return [];
106
+ }
107
+ /**
108
+ * Return an empty array for any getLastNTracerEvents request.
109
+ *
110
+ * @param _n - Number of events to return (ignored)
111
+ * @param _eventType - Optional event type to filter by (ignored)
112
+ * @returns An empty array
113
+ */
114
+ getLastNTracerEvents(_n, _eventType) {
115
+ return [];
116
+ }
117
+ /**
118
+ * Do nothing implementation of clear method.
119
+ */
120
+ clear() {
121
+ // Do nothing
122
+ }
123
+ /**
124
+ * No-op method for interface compatibility.
125
+ */
126
+ enable() {
127
+ // Do nothing
128
+ }
129
+ /**
130
+ * No-op method for interface compatibility.
131
+ */
132
+ disable() {
133
+ // Do nothing
134
+ }
135
+ }
136
+ exports.NullTracer = NullTracer;
137
+ /**
138
+ * Singleton null tracer instance for convenient use across the application.
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * import { nullTracer } from './tracer';
143
+ *
144
+ * const broker = new LlmBroker('gpt-4', gateway, nullTracer);
145
+ * ```
146
+ */
147
+ exports.nullTracer = new NullTracer();
148
+ //# sourceMappingURL=nullTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullTracer.js","sourceRoot":"","sources":["../../src/tracer/nullTracer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAMH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,UAAU;IACrB;;OAEG;IACM,OAAO,GAAY,KAAK,CAAC;IAElC;;OAEG;IACM,UAAU,GAAG,SAAS,CAAC;IAEhC;;;;OAIG;IACH,WAAW,CAAC,MAAmB;QAC7B,aAAa;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa,CACX,MAAc,EACd,SAAoB,EACpB,YAAqB,EACrB,MAAkC,EAClC,cAAuB,EACvB,OAAgB;QAEhB,aAAa;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CACf,MAAc,EACd,QAAgB,EAChB,UAAuB,EACvB,eAAwB,EACxB,cAAuB,EACvB,OAAgB;QAEhB,aAAa;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CACZ,SAAiB,EACjB,KAA8B,EAC9B,OAAgB,EAChB,OAAgB,EAChB,eAAwB,EACxB,cAAuB,EACvB,OAAgB;QAEhB,aAAa;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,sBAAsB,CACpB,UAAkB,EAClB,QAAgB,EAChB,UAAkB,EAClB,QAAiB,EACjB,cAAuB,EACvB,OAAgB;QAEhB,aAAa;IACf,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAwB;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAU,EAAE,UAAmC;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,aAAa;IACf,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,aAAa;IACf,CAAC;IAED;;OAEG;IACH,OAAO;QACL,aAAa;IACf,CAAC;CACF;AAnJD,gCAmJC;AAED;;;;;;;;;GASG;AACU,QAAA,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}