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,209 @@
1
+ /**
2
+ * Tracer event types for tracking system interactions.
3
+ *
4
+ * Tracer events are used to track system interactions for observability purposes.
5
+ * They are distinct from regular events which are used for agent communication.
6
+ */
7
+ import { ToolCall } from '../llm/models';
8
+ /**
9
+ * Type alias for TracerEvent constructor functions.
10
+ * Uses abstract new to indicate these are class constructors that can be instantiated.
11
+ * The never[] parameter list indicates we don't care about the specific constructor arguments
12
+ * when using this type for filtering/type-checking purposes.
13
+ */
14
+ export type TracerEventConstructor = abstract new (...args: never[]) => TracerEvent;
15
+ /**
16
+ * Base class for all tracer-specific events.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const event = new LLMCallTracerEvent(
21
+ * 'gpt-4',
22
+ * [{ role: 'user', content: 'Hello' }],
23
+ * 0.7,
24
+ * undefined,
25
+ * 'my-correlation-id'
26
+ * );
27
+ * console.log(event.printableSummary());
28
+ * ```
29
+ */
30
+ export declare abstract class TracerEvent {
31
+ /**
32
+ * Timestamp when the event occurred (milliseconds since epoch)
33
+ */
34
+ readonly timestamp: number;
35
+ /**
36
+ * UUID string that is copied from cause-to-effect for tracing events
37
+ */
38
+ readonly correlationId: string;
39
+ /**
40
+ * Source of the event (optional, for context)
41
+ */
42
+ readonly source?: string;
43
+ /**
44
+ * Creates a new tracer event.
45
+ *
46
+ * @param timestamp - Timestamp when the event occurred
47
+ * @param correlationId - UUID for tracing related events
48
+ * @param source - Optional source identifier
49
+ */
50
+ constructor(timestamp: number, correlationId: string, source?: string);
51
+ /**
52
+ * Set the timestamp for testing purposes only.
53
+ * This method allows tests to manipulate timestamps without type casting.
54
+ *
55
+ * @param timestamp - The timestamp to set (milliseconds since epoch)
56
+ * @throws Error if called outside of test environment
57
+ *
58
+ * @internal This method is only for testing and should not be used in production code.
59
+ */
60
+ setTimestampForTesting(timestamp: number): void;
61
+ /**
62
+ * Return a formatted string summary of the event.
63
+ *
64
+ * @returns A formatted string with the event information
65
+ */
66
+ printableSummary(): string;
67
+ }
68
+ /**
69
+ * Records when an LLM is called with specific messages.
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const event = new LLMCallTracerEvent(
74
+ * 'gpt-4',
75
+ * [Message.user('Hello')],
76
+ * 0.7,
77
+ * [dateTool.descriptor()],
78
+ * 'corr-123'
79
+ * );
80
+ * ```
81
+ */
82
+ export declare class LLMCallTracerEvent extends TracerEvent {
83
+ /**
84
+ * The LLM model that was used
85
+ */
86
+ readonly model: string;
87
+ /**
88
+ * The messages sent to the LLM
89
+ */
90
+ readonly messages: unknown[];
91
+ /**
92
+ * The temperature setting used for the call
93
+ */
94
+ readonly temperature: number;
95
+ /**
96
+ * The tools available to the LLM, if any
97
+ */
98
+ readonly tools?: Record<string, unknown>[];
99
+ constructor(model: string, messages: unknown[], temperature?: number, tools?: Record<string, unknown>[], correlationId?: string, source?: string);
100
+ printableSummary(): string;
101
+ }
102
+ /**
103
+ * Records when an LLM responds to a call.
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const event = new LLMResponseTracerEvent(
108
+ * 'gpt-4',
109
+ * 'Hello! How can I help?',
110
+ * undefined,
111
+ * 150.5,
112
+ * 'corr-123'
113
+ * );
114
+ * ```
115
+ */
116
+ export declare class LLMResponseTracerEvent extends TracerEvent {
117
+ /**
118
+ * The LLM model that was used
119
+ */
120
+ readonly model: string;
121
+ /**
122
+ * The content of the LLM response
123
+ */
124
+ readonly content: string;
125
+ /**
126
+ * Any tool calls made by the LLM
127
+ */
128
+ readonly toolCalls?: ToolCall[];
129
+ /**
130
+ * Duration of the LLM call in milliseconds
131
+ */
132
+ readonly callDurationMs?: number;
133
+ constructor(model: string, content: string, toolCalls?: ToolCall[], callDurationMs?: number, correlationId?: string, source?: string);
134
+ printableSummary(): string;
135
+ }
136
+ /**
137
+ * Records when a tool is called during agent execution.
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * const event = new ToolCallTracerEvent(
142
+ * 'resolve_date',
143
+ * { date_string: 'tomorrow' },
144
+ * { resolved: '2025-11-16' },
145
+ * 'my-agent',
146
+ * 25.3,
147
+ * 'corr-123'
148
+ * );
149
+ * ```
150
+ */
151
+ export declare class ToolCallTracerEvent extends TracerEvent {
152
+ /**
153
+ * Name of the tool that was called
154
+ */
155
+ readonly toolName: string;
156
+ /**
157
+ * Arguments provided to the tool
158
+ */
159
+ readonly arguments: Record<string, unknown>;
160
+ /**
161
+ * Result returned by the tool
162
+ */
163
+ readonly result: unknown;
164
+ /**
165
+ * Name of the agent or component that called the tool
166
+ */
167
+ readonly caller?: string;
168
+ /**
169
+ * Duration of the tool call in milliseconds
170
+ */
171
+ readonly callDurationMs?: number;
172
+ constructor(toolName: string, args: Record<string, unknown>, result: unknown, caller?: string, callDurationMs?: number, correlationId?: string, source?: string);
173
+ printableSummary(): string;
174
+ }
175
+ /**
176
+ * Records interactions between agents.
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const event = new AgentInteractionTracerEvent(
181
+ * 'coordinator',
182
+ * 'specialist',
183
+ * 'task_request',
184
+ * 'event-456',
185
+ * 'corr-123'
186
+ * );
187
+ * ```
188
+ */
189
+ export declare class AgentInteractionTracerEvent extends TracerEvent {
190
+ /**
191
+ * Name of the agent sending the event
192
+ */
193
+ readonly fromAgent: string;
194
+ /**
195
+ * Name of the agent receiving the event
196
+ */
197
+ readonly toAgent: string;
198
+ /**
199
+ * Type of event being processed
200
+ */
201
+ readonly eventType: string;
202
+ /**
203
+ * Unique identifier for the event
204
+ */
205
+ readonly eventId?: string;
206
+ constructor(fromAgent: string, toAgent: string, eventType: string, eventId?: string, correlationId?: string, source?: string);
207
+ printableSummary(): string;
208
+ }
209
+ //# sourceMappingURL=tracerEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracerEvents.d.ts","sourceRoot":"","sources":["../../src/tracer/tracerEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ /**
3
+ * Tracer event types for tracking system interactions.
4
+ *
5
+ * Tracer events are used to track system interactions for observability purposes.
6
+ * They are distinct from regular events which are used for agent communication.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AgentInteractionTracerEvent = exports.ToolCallTracerEvent = exports.LLMResponseTracerEvent = exports.LLMCallTracerEvent = exports.TracerEvent = void 0;
10
+ const crypto_1 = require("crypto");
11
+ /**
12
+ * Base class for all tracer-specific events.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const event = new LLMCallTracerEvent(
17
+ * 'gpt-4',
18
+ * [{ role: 'user', content: 'Hello' }],
19
+ * 0.7,
20
+ * undefined,
21
+ * 'my-correlation-id'
22
+ * );
23
+ * console.log(event.printableSummary());
24
+ * ```
25
+ */
26
+ class TracerEvent {
27
+ /**
28
+ * Timestamp when the event occurred (milliseconds since epoch)
29
+ */
30
+ timestamp;
31
+ /**
32
+ * UUID string that is copied from cause-to-effect for tracing events
33
+ */
34
+ correlationId;
35
+ /**
36
+ * Source of the event (optional, for context)
37
+ */
38
+ source;
39
+ /**
40
+ * Creates a new tracer event.
41
+ *
42
+ * @param timestamp - Timestamp when the event occurred
43
+ * @param correlationId - UUID for tracing related events
44
+ * @param source - Optional source identifier
45
+ */
46
+ constructor(timestamp, correlationId, source) {
47
+ this.timestamp = timestamp;
48
+ this.correlationId = correlationId;
49
+ this.source = source;
50
+ }
51
+ /**
52
+ * Set the timestamp for testing purposes only.
53
+ * This method allows tests to manipulate timestamps without type casting.
54
+ *
55
+ * @param timestamp - The timestamp to set (milliseconds since epoch)
56
+ * @throws Error if called outside of test environment
57
+ *
58
+ * @internal This method is only for testing and should not be used in production code.
59
+ */
60
+ setTimestampForTesting(timestamp) {
61
+ if (process.env.NODE_ENV !== 'test') {
62
+ throw new Error('setTimestampForTesting can only be called in test environment');
63
+ }
64
+ // Using Object.defineProperty to modify the readonly property
65
+ Object.defineProperty(this, 'timestamp', {
66
+ value: timestamp,
67
+ writable: false,
68
+ enumerable: true,
69
+ configurable: true,
70
+ });
71
+ }
72
+ /**
73
+ * Return a formatted string summary of the event.
74
+ *
75
+ * @returns A formatted string with the event information
76
+ */
77
+ printableSummary() {
78
+ const eventTime = new Date(this.timestamp).toTimeString().split(' ')[0];
79
+ const ms = String(this.timestamp % 1000).padStart(3, '0');
80
+ return `[${eventTime}.${ms}] ${this.constructor.name} (correlation_id: ${this.correlationId})`;
81
+ }
82
+ }
83
+ exports.TracerEvent = TracerEvent;
84
+ /**
85
+ * Records when an LLM is called with specific messages.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const event = new LLMCallTracerEvent(
90
+ * 'gpt-4',
91
+ * [Message.user('Hello')],
92
+ * 0.7,
93
+ * [dateTool.descriptor()],
94
+ * 'corr-123'
95
+ * );
96
+ * ```
97
+ */
98
+ class LLMCallTracerEvent extends TracerEvent {
99
+ /**
100
+ * The LLM model that was used
101
+ */
102
+ model;
103
+ /**
104
+ * The messages sent to the LLM
105
+ */
106
+ messages;
107
+ /**
108
+ * The temperature setting used for the call
109
+ */
110
+ temperature;
111
+ /**
112
+ * The tools available to the LLM, if any
113
+ */
114
+ tools;
115
+ constructor(model, messages, temperature = 1.0, tools, correlationId, source) {
116
+ super(Date.now(), correlationId || (0, crypto_1.randomUUID)(), source);
117
+ this.model = model;
118
+ this.messages = messages;
119
+ this.temperature = temperature;
120
+ this.tools = tools;
121
+ }
122
+ printableSummary() {
123
+ const baseSummary = super.printableSummary();
124
+ let summary = `${baseSummary}\n Model: ${this.model}`;
125
+ if (this.messages.length > 0) {
126
+ const msgCount = this.messages.length;
127
+ summary += `\n Messages: ${msgCount} message${msgCount !== 1 ? 's' : ''}`;
128
+ }
129
+ if (this.temperature !== 1.0) {
130
+ summary += `\n Temperature: ${this.temperature}`;
131
+ }
132
+ if (this.tools && this.tools.length > 0) {
133
+ const toolNames = this.tools
134
+ .map((t) => t.function?.name || 'unknown')
135
+ .join(', ');
136
+ summary += `\n Available Tools: ${toolNames}`;
137
+ }
138
+ return summary;
139
+ }
140
+ }
141
+ exports.LLMCallTracerEvent = LLMCallTracerEvent;
142
+ /**
143
+ * Records when an LLM responds to a call.
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const event = new LLMResponseTracerEvent(
148
+ * 'gpt-4',
149
+ * 'Hello! How can I help?',
150
+ * undefined,
151
+ * 150.5,
152
+ * 'corr-123'
153
+ * );
154
+ * ```
155
+ */
156
+ class LLMResponseTracerEvent extends TracerEvent {
157
+ /**
158
+ * The LLM model that was used
159
+ */
160
+ model;
161
+ /**
162
+ * The content of the LLM response
163
+ */
164
+ content;
165
+ /**
166
+ * Any tool calls made by the LLM
167
+ */
168
+ toolCalls;
169
+ /**
170
+ * Duration of the LLM call in milliseconds
171
+ */
172
+ callDurationMs;
173
+ constructor(model, content, toolCalls, callDurationMs, correlationId, source) {
174
+ super(Date.now(), correlationId || (0, crypto_1.randomUUID)(), source);
175
+ this.model = model;
176
+ this.content = content;
177
+ this.toolCalls = toolCalls;
178
+ this.callDurationMs = callDurationMs;
179
+ }
180
+ printableSummary() {
181
+ const baseSummary = super.printableSummary();
182
+ let summary = `${baseSummary}\n Model: ${this.model}`;
183
+ if (this.content) {
184
+ const contentPreview = this.content.length > 100 ? this.content.substring(0, 100) + '...' : this.content;
185
+ summary += `\n Content: ${contentPreview}`;
186
+ }
187
+ if (this.toolCalls && this.toolCalls.length > 0) {
188
+ const toolCount = this.toolCalls.length;
189
+ summary += `\n Tool Calls: ${toolCount} call${toolCount !== 1 ? 's' : ''}`;
190
+ }
191
+ if (this.callDurationMs !== undefined) {
192
+ summary += `\n Duration: ${this.callDurationMs.toFixed(2)}ms`;
193
+ }
194
+ return summary;
195
+ }
196
+ }
197
+ exports.LLMResponseTracerEvent = LLMResponseTracerEvent;
198
+ /**
199
+ * Records when a tool is called during agent execution.
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * const event = new ToolCallTracerEvent(
204
+ * 'resolve_date',
205
+ * { date_string: 'tomorrow' },
206
+ * { resolved: '2025-11-16' },
207
+ * 'my-agent',
208
+ * 25.3,
209
+ * 'corr-123'
210
+ * );
211
+ * ```
212
+ */
213
+ class ToolCallTracerEvent extends TracerEvent {
214
+ /**
215
+ * Name of the tool that was called
216
+ */
217
+ toolName;
218
+ /**
219
+ * Arguments provided to the tool
220
+ */
221
+ arguments;
222
+ /**
223
+ * Result returned by the tool
224
+ */
225
+ result;
226
+ /**
227
+ * Name of the agent or component that called the tool
228
+ */
229
+ caller;
230
+ /**
231
+ * Duration of the tool call in milliseconds
232
+ */
233
+ callDurationMs;
234
+ constructor(toolName, args, result, caller, callDurationMs, correlationId, source) {
235
+ super(Date.now(), correlationId || (0, crypto_1.randomUUID)(), source);
236
+ this.toolName = toolName;
237
+ this.arguments = args;
238
+ this.result = result;
239
+ this.caller = caller;
240
+ this.callDurationMs = callDurationMs;
241
+ }
242
+ printableSummary() {
243
+ const baseSummary = super.printableSummary();
244
+ let summary = `${baseSummary}\n Tool: ${this.toolName}`;
245
+ if (Object.keys(this.arguments).length > 0) {
246
+ summary += `\n Arguments: ${JSON.stringify(this.arguments)}`;
247
+ }
248
+ if (this.result !== undefined) {
249
+ const resultStr = JSON.stringify(this.result);
250
+ const resultPreview = resultStr.length > 100 ? resultStr.substring(0, 100) + '...' : resultStr;
251
+ summary += `\n Result: ${resultPreview}`;
252
+ }
253
+ if (this.caller) {
254
+ summary += `\n Caller: ${this.caller}`;
255
+ }
256
+ if (this.callDurationMs !== undefined) {
257
+ summary += `\n Duration: ${this.callDurationMs.toFixed(2)}ms`;
258
+ }
259
+ return summary;
260
+ }
261
+ }
262
+ exports.ToolCallTracerEvent = ToolCallTracerEvent;
263
+ /**
264
+ * Records interactions between agents.
265
+ *
266
+ * @example
267
+ * ```typescript
268
+ * const event = new AgentInteractionTracerEvent(
269
+ * 'coordinator',
270
+ * 'specialist',
271
+ * 'task_request',
272
+ * 'event-456',
273
+ * 'corr-123'
274
+ * );
275
+ * ```
276
+ */
277
+ class AgentInteractionTracerEvent extends TracerEvent {
278
+ /**
279
+ * Name of the agent sending the event
280
+ */
281
+ fromAgent;
282
+ /**
283
+ * Name of the agent receiving the event
284
+ */
285
+ toAgent;
286
+ /**
287
+ * Type of event being processed
288
+ */
289
+ eventType;
290
+ /**
291
+ * Unique identifier for the event
292
+ */
293
+ eventId;
294
+ constructor(fromAgent, toAgent, eventType, eventId, correlationId, source) {
295
+ super(Date.now(), correlationId || (0, crypto_1.randomUUID)(), source);
296
+ this.fromAgent = fromAgent;
297
+ this.toAgent = toAgent;
298
+ this.eventType = eventType;
299
+ this.eventId = eventId;
300
+ }
301
+ printableSummary() {
302
+ const baseSummary = super.printableSummary();
303
+ let summary = `${baseSummary}\n From: ${this.fromAgent} → To: ${this.toAgent}`;
304
+ summary += `\n Event Type: ${this.eventType}`;
305
+ if (this.eventId) {
306
+ summary += `\n Event ID: ${this.eventId}`;
307
+ }
308
+ return summary;
309
+ }
310
+ }
311
+ exports.AgentInteractionTracerEvent = AgentInteractionTracerEvent;
312
+ //# sourceMappingURL=tracerEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracerEvents.js","sourceRoot":"","sources":["../../src/tracer/tracerEvents.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAoC;AAWpC;;;;;;;;;;;;;;GAcG;AACH,MAAsB,WAAW;IAC/B;;OAEG;IACM,SAAS,CAAS;IAE3B;;OAEG;IACM,aAAa,CAAS;IAE/B;;OAEG;IACM,MAAM,CAAU;IAEzB;;;;;;OAMG;IACH,YAAY,SAAiB,EAAE,aAAqB,EAAE,MAAe;QACnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,SAAiB;QACtC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,8DAA8D;QAC9D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;YACvC,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,OAAO,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,qBAAqB,IAAI,CAAC,aAAa,GAAG,CAAC;IACjG,CAAC;CACF;AA7DD,kCA6DC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,kBAAmB,SAAQ,WAAW;IACjD;;OAEG;IACM,KAAK,CAAS;IAEvB;;OAEG;IACM,QAAQ,CAAY;IAE7B;;OAEG;IACM,WAAW,CAAS;IAE7B;;OAEG;IACM,KAAK,CAA6B;IAE3C,YACE,KAAa,EACb,QAAmB,EACnB,cAAsB,GAAG,EACzB,KAAiC,EACjC,aAAsB,EACtB,MAAe;QAEf,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,IAAI,IAAA,mBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,GAAG,WAAW,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC;QAExD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,OAAO,IAAI,kBAAkB,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO,IAAI,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,QAA8B,EAAE,IAAI,IAAI,SAAS,CAAC;iBAChE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,IAAI,yBAAyB,SAAS,EAAE,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1DD,gDA0DC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,sBAAuB,SAAQ,WAAW;IACrD;;OAEG;IACM,KAAK,CAAS;IAEvB;;OAEG;IACM,OAAO,CAAS;IAEzB;;OAEG;IACM,SAAS,CAAc;IAEhC;;OAEG;IACM,cAAc,CAAU;IAEjC,YACE,KAAa,EACb,OAAe,EACf,SAAsB,EACtB,cAAuB,EACvB,aAAsB,EACtB,MAAe;QAEf,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,IAAI,IAAA,mBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,GAAG,WAAW,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC;QAExD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,cAAc,GAClB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACpF,OAAO,IAAI,iBAAiB,cAAc,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACxC,OAAO,IAAI,oBAAoB,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/E,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,kBAAkB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAzDD,wDAyDC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAa,mBAAoB,SAAQ,WAAW;IAClD;;OAEG;IACM,QAAQ,CAAS;IAE1B;;OAEG;IACM,SAAS,CAA0B;IAE5C;;OAEG;IACM,MAAM,CAAU;IAEzB;;OAEG;IACM,MAAM,CAAU;IAEzB;;OAEG;IACM,cAAc,CAAU;IAEjC,YACE,QAAgB,EAChB,IAA6B,EAC7B,MAAe,EACf,MAAe,EACf,cAAuB,EACvB,aAAsB,EACtB,MAAe;QAEf,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,IAAI,IAAA,mBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,GAAG,WAAW,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,aAAa,GACjB,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3E,OAAO,IAAI,gBAAgB,aAAa,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,kBAAkB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApED,kDAoEC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,2BAA4B,SAAQ,WAAW;IAC1D;;OAEG;IACM,SAAS,CAAS;IAE3B;;OAEG;IACM,OAAO,CAAS;IAEzB;;OAEG;IACM,SAAS,CAAS;IAE3B;;OAEG;IACM,OAAO,CAAU;IAE1B,YACE,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,OAAgB,EAChB,aAAsB,EACtB,MAAe;QAEf,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,IAAI,IAAA,mBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,GAAG,WAAW,cAAc,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QACjF,OAAO,IAAI,oBAAoB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA/CD,kEA+CC"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * TracerSystem module for coordinating tracer events.
3
+ *
4
+ * This provides a central system for recording, filtering, and querying tracer events.
5
+ */
6
+ import { EventStore, FilterOptions } from './eventStore';
7
+ import { TracerEvent, TracerEventConstructor } from './tracerEvents';
8
+ import { ToolCall } from '../llm/models';
9
+ /**
10
+ * Central system for capturing and querying tracer events.
11
+ *
12
+ * The TracerSystem is responsible for recording events related to LLM calls,
13
+ * tool usage, and agent interactions, providing a way to trace through the
14
+ * major events of the system.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const tracer = new TracerSystem();
19
+ *
20
+ * tracer.recordLlmCall('gpt-4', [Message.user('Hello')], 0.7, undefined, 'corr-123');
21
+ * tracer.recordLlmResponse('gpt-4', 'Hi there!', undefined, 150, 'corr-123');
22
+ *
23
+ * const events = tracer.getEvents();
24
+ * console.log(`Recorded ${events.length} events`);
25
+ * ```
26
+ */
27
+ export declare class TracerSystem {
28
+ private eventStore;
29
+ private _enabled;
30
+ /**
31
+ * Initialize the tracer system.
32
+ *
33
+ * @param eventStore - The event store to use for storing events. If not provided, a new EventStore will be created.
34
+ * @param enabled - Whether the tracer system is enabled. If false, no events will be recorded.
35
+ */
36
+ constructor(eventStore?: EventStore, enabled?: boolean);
37
+ /**
38
+ * Get whether the tracer system is enabled.
39
+ */
40
+ get enabled(): boolean;
41
+ /**
42
+ * Record a tracer event in the event store.
43
+ *
44
+ * @param event - The tracer event to record
45
+ */
46
+ recordEvent(event: TracerEvent): void;
47
+ /**
48
+ * Record an LLM call event.
49
+ *
50
+ * @param model - The name of the LLM model being called
51
+ * @param messages - The messages sent to the LLM
52
+ * @param temperature - The temperature setting for the LLM call
53
+ * @param tools - The tools available to the LLM, if any
54
+ * @param correlationId - UUID string that is copied from cause-to-effect for tracing events
55
+ * @param source - The source of the event
56
+ */
57
+ recordLlmCall(model: string, messages: unknown[], temperature?: number, tools?: Record<string, unknown>[], correlationId?: string, source?: string): void;
58
+ /**
59
+ * Record an LLM response event.
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: string, content: string, toolCalls?: ToolCall[], callDurationMs?: number, correlationId?: string, source?: string): void;
69
+ /**
70
+ * Record a tool call event.
71
+ *
72
+ * @param toolName - The name of the tool being called
73
+ * @param args - The arguments provided to the tool
74
+ * @param result - The result returned by the tool
75
+ * @param caller - The name of the agent or component calling the tool
76
+ * @param callDurationMs - The duration of the tool call in milliseconds
77
+ * @param correlationId - UUID string that is copied from cause-to-effect for tracing events
78
+ * @param source - The source of the event
79
+ */
80
+ recordToolCall(toolName: string, args: Record<string, unknown>, result: unknown, caller?: string, callDurationMs?: number, correlationId?: string, source?: string): void;
81
+ /**
82
+ * Record an agent interaction event.
83
+ *
84
+ * @param fromAgent - The name of the agent sending the event
85
+ * @param toAgent - The name of the agent receiving the event
86
+ * @param eventType - The type of event being processed
87
+ * @param eventId - A unique identifier for the event
88
+ * @param correlationId - UUID string that is copied from cause-to-effect for tracing events
89
+ * @param source - The source of the event
90
+ */
91
+ recordAgentInteraction(fromAgent: string, toAgent: string, eventType: string, eventId?: string, correlationId?: string, source?: string): void;
92
+ /**
93
+ * Get tracer events from the store, optionally filtered.
94
+ *
95
+ * This is a convenience wrapper around the EventStore's getEvents method,
96
+ * specifically for tracer events.
97
+ *
98
+ * @param options - Filter options for querying events
99
+ * @returns Events that match the filter criteria
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * // Get all LLM call events
104
+ * const llmCalls = tracer.getEvents({ eventType: LLMCallTracerEvent });
105
+ *
106
+ * // Get events in a time range
107
+ * const recent = tracer.getEvents({
108
+ * startTime: Date.now() - 60000,
109
+ * endTime: Date.now()
110
+ * });
111
+ *
112
+ * // Get events with custom filter
113
+ * const filtered = tracer.getEvents({
114
+ * filterFunc: (e) => e.correlationId === 'my-id'
115
+ * });
116
+ * ```
117
+ */
118
+ getEvents(options?: FilterOptions): TracerEvent[];
119
+ /**
120
+ * Get the last N tracer events, optionally filtered by type.
121
+ *
122
+ * @param n - Number of events to return
123
+ * @param eventType - Optional event type to filter by
124
+ * @returns The last N tracer events that match the filter criteria
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * // Get last 10 events
129
+ * const last10 = tracer.getLastNTracerEvents(10);
130
+ *
131
+ * // Get last 5 LLM response events
132
+ * const last5 = tracer.getLastNTracerEvents(5, LLMResponseTracerEvent);
133
+ * ```
134
+ */
135
+ getLastNTracerEvents(n: number, eventType?: TracerEventConstructor): TracerEvent[];
136
+ /**
137
+ * Clear all events from the event store.
138
+ */
139
+ clear(): void;
140
+ /**
141
+ * Enable the tracer system.
142
+ */
143
+ enable(): void;
144
+ /**
145
+ * Disable the tracer system.
146
+ */
147
+ disable(): void;
148
+ }
149
+ //# sourceMappingURL=tracerSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracerSystem.d.ts","sourceRoot":"","sources":["../../src/tracer/tracerSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,WAAW,EACX,sBAAsB,EAKvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAU;IAE1B;;;;;OAKG;gBACS,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,GAAE,OAAc;IAK5D;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAQrC;;;;;;;;;OASG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,GAAE,MAAY,EACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACjC,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAgBP;;;;;;;;;OASG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAgBP;;;;;;;;;;OAUG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAiBP;;;;;;;;;OASG;IACH,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAgBP;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,EAAE;IAIrD;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,WAAW,EAAE;IAIlF;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}