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.
- package/LICENSE +21 -0
- package/README.md +459 -0
- package/dist/agents/async-aggregator-agent.d.ts +101 -0
- package/dist/agents/async-aggregator-agent.d.ts.map +1 -0
- package/dist/agents/async-aggregator-agent.js +160 -0
- package/dist/agents/async-aggregator-agent.js.map +1 -0
- package/dist/agents/async-dispatcher.d.ts +98 -0
- package/dist/agents/async-dispatcher.d.ts.map +1 -0
- package/dist/agents/async-dispatcher.js +173 -0
- package/dist/agents/async-dispatcher.js.map +1 -0
- package/dist/agents/async-llm-agent-with-memory.d.ts +95 -0
- package/dist/agents/async-llm-agent-with-memory.d.ts.map +1 -0
- package/dist/agents/async-llm-agent-with-memory.js +136 -0
- package/dist/agents/async-llm-agent-with-memory.js.map +1 -0
- package/dist/agents/async-llm-agent.d.ts +85 -0
- package/dist/agents/async-llm-agent.d.ts.map +1 -0
- package/dist/agents/async-llm-agent.js +87 -0
- package/dist/agents/async-llm-agent.js.map +1 -0
- package/dist/agents/base-agent.d.ts +59 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +24 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/base-async-agent.d.ts +42 -0
- package/dist/agents/base-async-agent.d.ts.map +1 -0
- package/dist/agents/base-async-agent.js +6 -0
- package/dist/agents/base-async-agent.js.map +1 -0
- package/dist/agents/event.d.ts +26 -0
- package/dist/agents/event.d.ts.map +1 -0
- package/dist/agents/event.js +13 -0
- package/dist/agents/event.js.map +1 -0
- package/dist/agents/index.d.ts +14 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +30 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/iterative-problem-solver.d.ts +83 -0
- package/dist/agents/iterative-problem-solver.d.ts.map +1 -0
- package/dist/agents/iterative-problem-solver.js +120 -0
- package/dist/agents/iterative-problem-solver.js.map +1 -0
- package/dist/agents/router.d.ts +44 -0
- package/dist/agents/router.d.ts.map +1 -0
- package/dist/agents/router.js +53 -0
- package/dist/agents/router.js.map +1 -0
- package/dist/agents/simple-recursive-agent.d.ts +182 -0
- package/dist/agents/simple-recursive-agent.d.ts.map +1 -0
- package/dist/agents/simple-recursive-agent.js +272 -0
- package/dist/agents/simple-recursive-agent.js.map +1 -0
- package/dist/context/index.d.ts +5 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +21 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/shared-working-memory.d.ts +76 -0
- package/dist/context/shared-working-memory.d.ts.map +1 -0
- package/dist/context/shared-working-memory.js +121 -0
- package/dist/context/shared-working-memory.js.map +1 -0
- package/dist/error.d.ts +93 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +149 -0
- package/dist/error.js.map +1 -0
- package/dist/examples/react/decisioning-agent.d.ts +48 -0
- package/dist/examples/react/decisioning-agent.d.ts.map +1 -0
- package/dist/examples/react/decisioning-agent.js +204 -0
- package/dist/examples/react/decisioning-agent.js.map +1 -0
- package/dist/examples/react/events.d.ts +77 -0
- package/dist/examples/react/events.d.ts.map +1 -0
- package/dist/examples/react/events.js +9 -0
- package/dist/examples/react/events.js.map +1 -0
- package/dist/examples/react/formatters.d.ts +23 -0
- package/dist/examples/react/formatters.d.ts.map +1 -0
- package/dist/examples/react/formatters.js +68 -0
- package/dist/examples/react/formatters.js.map +1 -0
- package/dist/examples/react/index.d.ts +12 -0
- package/dist/examples/react/index.d.ts.map +1 -0
- package/dist/examples/react/index.js +28 -0
- package/dist/examples/react/index.js.map +1 -0
- package/dist/examples/react/models.d.ts +57 -0
- package/dist/examples/react/models.d.ts.map +1 -0
- package/dist/examples/react/models.js +19 -0
- package/dist/examples/react/models.js.map +1 -0
- package/dist/examples/react/output-agent.d.ts +23 -0
- package/dist/examples/react/output-agent.d.ts.map +1 -0
- package/dist/examples/react/output-agent.js +28 -0
- package/dist/examples/react/output-agent.js.map +1 -0
- package/dist/examples/react/summarization-agent.d.ts +46 -0
- package/dist/examples/react/summarization-agent.d.ts.map +1 -0
- package/dist/examples/react/summarization-agent.js +102 -0
- package/dist/examples/react/summarization-agent.js.map +1 -0
- package/dist/examples/react/thinking-agent.d.ts +47 -0
- package/dist/examples/react/thinking-agent.d.ts.map +1 -0
- package/dist/examples/react/thinking-agent.js +127 -0
- package/dist/examples/react/thinking-agent.js.map +1 -0
- package/dist/examples/react/tool-call-agent.d.ts +25 -0
- package/dist/examples/react/tool-call-agent.d.ts.map +1 -0
- package/dist/examples/react/tool-call-agent.js +83 -0
- package/dist/examples/react/tool-call-agent.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/agent.d.ts +68 -0
- package/dist/llm/agent.d.ts.map +1 -0
- package/dist/llm/agent.js +85 -0
- package/dist/llm/agent.js.map +1 -0
- package/dist/llm/broker.d.ts +150 -0
- package/dist/llm/broker.d.ts.map +1 -0
- package/dist/llm/broker.js +355 -0
- package/dist/llm/broker.js.map +1 -0
- package/dist/llm/chat-session.d.ts +98 -0
- package/dist/llm/chat-session.d.ts.map +1 -0
- package/dist/llm/chat-session.js +156 -0
- package/dist/llm/chat-session.js.map +1 -0
- package/dist/llm/gateway.d.ts +28 -0
- package/dist/llm/gateway.d.ts.map +1 -0
- package/dist/llm/gateway.js +6 -0
- package/dist/llm/gateway.js.map +1 -0
- package/dist/llm/gateways/index.d.ts +9 -0
- package/dist/llm/gateways/index.d.ts.map +1 -0
- package/dist/llm/gateways/index.js +25 -0
- package/dist/llm/gateways/index.js.map +1 -0
- package/dist/llm/gateways/ollama.d.ts +30 -0
- package/dist/llm/gateways/ollama.d.ts.map +1 -0
- package/dist/llm/gateways/ollama.js +322 -0
- package/dist/llm/gateways/ollama.js.map +1 -0
- package/dist/llm/gateways/openai-messages-adapter.d.ts +29 -0
- package/dist/llm/gateways/openai-messages-adapter.d.ts.map +1 -0
- package/dist/llm/gateways/openai-messages-adapter.js +188 -0
- package/dist/llm/gateways/openai-messages-adapter.js.map +1 -0
- package/dist/llm/gateways/openai-model-registry.d.ts +82 -0
- package/dist/llm/gateways/openai-model-registry.d.ts.map +1 -0
- package/dist/llm/gateways/openai-model-registry.js +352 -0
- package/dist/llm/gateways/openai-model-registry.js.map +1 -0
- package/dist/llm/gateways/openai.d.ts +40 -0
- package/dist/llm/gateways/openai.d.ts.map +1 -0
- package/dist/llm/gateways/openai.js +469 -0
- package/dist/llm/gateways/openai.js.map +1 -0
- package/dist/llm/gateways/tokenizerGateway.d.ts +61 -0
- package/dist/llm/gateways/tokenizerGateway.d.ts.map +1 -0
- package/dist/llm/gateways/tokenizerGateway.js +75 -0
- package/dist/llm/gateways/tokenizerGateway.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +27 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/models.d.ts +95 -0
- package/dist/llm/models.d.ts.map +1 -0
- package/dist/llm/models.js +50 -0
- package/dist/llm/models.js.map +1 -0
- package/dist/llm/tools/ask-user.d.ts +39 -0
- package/dist/llm/tools/ask-user.d.ts.map +1 -0
- package/dist/llm/tools/ask-user.js +111 -0
- package/dist/llm/tools/ask-user.js.map +1 -0
- package/dist/llm/tools/current-datetime.d.ts +17 -0
- package/dist/llm/tools/current-datetime.d.ts.map +1 -0
- package/dist/llm/tools/current-datetime.js +76 -0
- package/dist/llm/tools/current-datetime.js.map +1 -0
- package/dist/llm/tools/date-resolver.d.ts +17 -0
- package/dist/llm/tools/date-resolver.d.ts.map +1 -0
- package/dist/llm/tools/date-resolver.js +135 -0
- package/dist/llm/tools/date-resolver.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.js +54 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js +37 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts +15 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.js +56 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/index.d.ts +44 -0
- package/dist/llm/tools/ephemeral-task-manager/index.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/index.js +73 -0
- package/dist/llm/tools/ephemeral-task-manager/index.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js +59 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts +14 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.js +45 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.js +54 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts +15 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.js +56 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts +68 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.js +120 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task.d.ts +21 -0
- package/dist/llm/tools/ephemeral-task-manager/task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task.js +24 -0
- package/dist/llm/tools/ephemeral-task-manager/task.js.map +1 -0
- package/dist/llm/tools/file-manager.d.ts +127 -0
- package/dist/llm/tools/file-manager.d.ts.map +1 -0
- package/dist/llm/tools/file-manager.js +598 -0
- package/dist/llm/tools/file-manager.js.map +1 -0
- package/dist/llm/tools/index.d.ts +11 -0
- package/dist/llm/tools/index.d.ts.map +1 -0
- package/dist/llm/tools/index.js +27 -0
- package/dist/llm/tools/index.js.map +1 -0
- package/dist/llm/tools/tell-user.d.ts +31 -0
- package/dist/llm/tools/tell-user.d.ts.map +1 -0
- package/dist/llm/tools/tell-user.js +57 -0
- package/dist/llm/tools/tell-user.js.map +1 -0
- package/dist/llm/tools/tool-wrapper.d.ts +54 -0
- package/dist/llm/tools/tool-wrapper.d.ts.map +1 -0
- package/dist/llm/tools/tool-wrapper.js +91 -0
- package/dist/llm/tools/tool-wrapper.js.map +1 -0
- package/dist/llm/tools/tool.d.ts +70 -0
- package/dist/llm/tools/tool.d.ts.map +1 -0
- package/dist/llm/tools/tool.js +19 -0
- package/dist/llm/tools/tool.js.map +1 -0
- package/dist/llm/tools/web-search-tool.d.ts +35 -0
- package/dist/llm/tools/web-search-tool.d.ts.map +1 -0
- package/dist/llm/tools/web-search-tool.js +105 -0
- package/dist/llm/tools/web-search-tool.js.map +1 -0
- package/dist/llm/utils/image.d.ts +30 -0
- package/dist/llm/utils/image.d.ts.map +1 -0
- package/dist/llm/utils/image.js +65 -0
- package/dist/llm/utils/image.js.map +1 -0
- package/dist/tracer/eventStore.d.ts +101 -0
- package/dist/tracer/eventStore.d.ts.map +1 -0
- package/dist/tracer/eventStore.js +120 -0
- package/dist/tracer/eventStore.js.map +1 -0
- package/dist/tracer/index.d.ts +8 -0
- package/dist/tracer/index.d.ts.map +1 -0
- package/dist/tracer/index.js +24 -0
- package/dist/tracer/index.js.map +1 -0
- package/dist/tracer/nullTracer.d.ts +127 -0
- package/dist/tracer/nullTracer.d.ts.map +1 -0
- package/dist/tracer/nullTracer.js +148 -0
- package/dist/tracer/nullTracer.js.map +1 -0
- package/dist/tracer/tracerEvents.d.ts +209 -0
- package/dist/tracer/tracerEvents.d.ts.map +1 -0
- package/dist/tracer/tracerEvents.js +312 -0
- package/dist/tracer/tracerEvents.js.map +1 -0
- package/dist/tracer/tracerSystem.d.ts +149 -0
- package/dist/tracer/tracerSystem.d.ts.map +1 -0
- package/dist/tracer/tracerSystem.js +196 -0
- package/dist/tracer/tracerSystem.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|