@lleverage-ai/agent-sdk 0.0.1

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 (327) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2321 -0
  3. package/dist/agent.d.ts +52 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +2122 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/backend.d.ts +378 -0
  8. package/dist/backend.d.ts.map +1 -0
  9. package/dist/backend.js +71 -0
  10. package/dist/backend.js.map +1 -0
  11. package/dist/backends/composite.d.ts +258 -0
  12. package/dist/backends/composite.d.ts.map +1 -0
  13. package/dist/backends/composite.js +437 -0
  14. package/dist/backends/composite.js.map +1 -0
  15. package/dist/backends/filesystem.d.ts +268 -0
  16. package/dist/backends/filesystem.d.ts.map +1 -0
  17. package/dist/backends/filesystem.js +623 -0
  18. package/dist/backends/filesystem.js.map +1 -0
  19. package/dist/backends/index.d.ts +14 -0
  20. package/dist/backends/index.d.ts.map +1 -0
  21. package/dist/backends/index.js +14 -0
  22. package/dist/backends/index.js.map +1 -0
  23. package/dist/backends/persistent.d.ts +312 -0
  24. package/dist/backends/persistent.d.ts.map +1 -0
  25. package/dist/backends/persistent.js +519 -0
  26. package/dist/backends/persistent.js.map +1 -0
  27. package/dist/backends/sandbox.d.ts +315 -0
  28. package/dist/backends/sandbox.d.ts.map +1 -0
  29. package/dist/backends/sandbox.js +490 -0
  30. package/dist/backends/sandbox.js.map +1 -0
  31. package/dist/backends/state.d.ts +225 -0
  32. package/dist/backends/state.d.ts.map +1 -0
  33. package/dist/backends/state.js +396 -0
  34. package/dist/backends/state.js.map +1 -0
  35. package/dist/checkpointer/file-saver.d.ts +182 -0
  36. package/dist/checkpointer/file-saver.d.ts.map +1 -0
  37. package/dist/checkpointer/file-saver.js +298 -0
  38. package/dist/checkpointer/file-saver.js.map +1 -0
  39. package/dist/checkpointer/index.d.ts +40 -0
  40. package/dist/checkpointer/index.d.ts.map +1 -0
  41. package/dist/checkpointer/index.js +40 -0
  42. package/dist/checkpointer/index.js.map +1 -0
  43. package/dist/checkpointer/kv-saver.d.ts +142 -0
  44. package/dist/checkpointer/kv-saver.d.ts.map +1 -0
  45. package/dist/checkpointer/kv-saver.js +176 -0
  46. package/dist/checkpointer/kv-saver.js.map +1 -0
  47. package/dist/checkpointer/memory-saver.d.ts +158 -0
  48. package/dist/checkpointer/memory-saver.d.ts.map +1 -0
  49. package/dist/checkpointer/memory-saver.js +222 -0
  50. package/dist/checkpointer/memory-saver.js.map +1 -0
  51. package/dist/checkpointer/types.d.ts +353 -0
  52. package/dist/checkpointer/types.d.ts.map +1 -0
  53. package/dist/checkpointer/types.js +159 -0
  54. package/dist/checkpointer/types.js.map +1 -0
  55. package/dist/context-manager.d.ts +627 -0
  56. package/dist/context-manager.d.ts.map +1 -0
  57. package/dist/context-manager.js +1039 -0
  58. package/dist/context-manager.js.map +1 -0
  59. package/dist/context.d.ts +57 -0
  60. package/dist/context.d.ts.map +1 -0
  61. package/dist/context.js +76 -0
  62. package/dist/context.js.map +1 -0
  63. package/dist/errors/index.d.ts +611 -0
  64. package/dist/errors/index.d.ts.map +1 -0
  65. package/dist/errors/index.js +1023 -0
  66. package/dist/errors/index.js.map +1 -0
  67. package/dist/generation-helpers.d.ts +126 -0
  68. package/dist/generation-helpers.d.ts.map +1 -0
  69. package/dist/generation-helpers.js +181 -0
  70. package/dist/generation-helpers.js.map +1 -0
  71. package/dist/hooks/audit.d.ts +210 -0
  72. package/dist/hooks/audit.d.ts.map +1 -0
  73. package/dist/hooks/audit.js +305 -0
  74. package/dist/hooks/audit.js.map +1 -0
  75. package/dist/hooks/cache.d.ts +180 -0
  76. package/dist/hooks/cache.d.ts.map +1 -0
  77. package/dist/hooks/cache.js +273 -0
  78. package/dist/hooks/cache.js.map +1 -0
  79. package/dist/hooks/guardrails.d.ts +145 -0
  80. package/dist/hooks/guardrails.d.ts.map +1 -0
  81. package/dist/hooks/guardrails.js +326 -0
  82. package/dist/hooks/guardrails.js.map +1 -0
  83. package/dist/hooks/index.d.ts +18 -0
  84. package/dist/hooks/index.d.ts.map +1 -0
  85. package/dist/hooks/index.js +32 -0
  86. package/dist/hooks/index.js.map +1 -0
  87. package/dist/hooks/logging.d.ts +193 -0
  88. package/dist/hooks/logging.d.ts.map +1 -0
  89. package/dist/hooks/logging.js +345 -0
  90. package/dist/hooks/logging.js.map +1 -0
  91. package/dist/hooks/parallel-guardrails.d.ts +268 -0
  92. package/dist/hooks/parallel-guardrails.d.ts.map +1 -0
  93. package/dist/hooks/parallel-guardrails.js +416 -0
  94. package/dist/hooks/parallel-guardrails.js.map +1 -0
  95. package/dist/hooks/rate-limit.d.ts +305 -0
  96. package/dist/hooks/rate-limit.d.ts.map +1 -0
  97. package/dist/hooks/rate-limit.js +372 -0
  98. package/dist/hooks/rate-limit.js.map +1 -0
  99. package/dist/hooks/retry.d.ts +144 -0
  100. package/dist/hooks/retry.d.ts.map +1 -0
  101. package/dist/hooks/retry.js +210 -0
  102. package/dist/hooks/retry.js.map +1 -0
  103. package/dist/hooks/secrets.d.ts +174 -0
  104. package/dist/hooks/secrets.d.ts.map +1 -0
  105. package/dist/hooks/secrets.js +306 -0
  106. package/dist/hooks/secrets.js.map +1 -0
  107. package/dist/hooks.d.ts +229 -0
  108. package/dist/hooks.d.ts.map +1 -0
  109. package/dist/hooks.js +352 -0
  110. package/dist/hooks.js.map +1 -0
  111. package/dist/index.d.ts +97 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +182 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/mcp/env.d.ts +25 -0
  116. package/dist/mcp/env.d.ts.map +1 -0
  117. package/dist/mcp/env.js +18 -0
  118. package/dist/mcp/env.js.map +1 -0
  119. package/dist/mcp/index.d.ts +16 -0
  120. package/dist/mcp/index.d.ts.map +1 -0
  121. package/dist/mcp/index.js +17 -0
  122. package/dist/mcp/index.js.map +1 -0
  123. package/dist/mcp/manager.d.ts +184 -0
  124. package/dist/mcp/manager.d.ts.map +1 -0
  125. package/dist/mcp/manager.js +446 -0
  126. package/dist/mcp/manager.js.map +1 -0
  127. package/dist/mcp/types.d.ts +58 -0
  128. package/dist/mcp/types.d.ts.map +1 -0
  129. package/dist/mcp/types.js +7 -0
  130. package/dist/mcp/types.js.map +1 -0
  131. package/dist/mcp/validation.d.ts +119 -0
  132. package/dist/mcp/validation.d.ts.map +1 -0
  133. package/dist/mcp/validation.js +407 -0
  134. package/dist/mcp/validation.js.map +1 -0
  135. package/dist/mcp/virtual-server.d.ts +78 -0
  136. package/dist/mcp/virtual-server.d.ts.map +1 -0
  137. package/dist/mcp/virtual-server.js +137 -0
  138. package/dist/mcp/virtual-server.js.map +1 -0
  139. package/dist/memory/filesystem-store.d.ts +217 -0
  140. package/dist/memory/filesystem-store.d.ts.map +1 -0
  141. package/dist/memory/filesystem-store.js +343 -0
  142. package/dist/memory/filesystem-store.js.map +1 -0
  143. package/dist/memory/index.d.ts +46 -0
  144. package/dist/memory/index.d.ts.map +1 -0
  145. package/dist/memory/index.js +46 -0
  146. package/dist/memory/index.js.map +1 -0
  147. package/dist/memory/loader.d.ts +396 -0
  148. package/dist/memory/loader.d.ts.map +1 -0
  149. package/dist/memory/loader.js +419 -0
  150. package/dist/memory/loader.js.map +1 -0
  151. package/dist/memory/permissions.d.ts +282 -0
  152. package/dist/memory/permissions.d.ts.map +1 -0
  153. package/dist/memory/permissions.js +297 -0
  154. package/dist/memory/permissions.js.map +1 -0
  155. package/dist/memory/rules.d.ts +249 -0
  156. package/dist/memory/rules.d.ts.map +1 -0
  157. package/dist/memory/rules.js +362 -0
  158. package/dist/memory/rules.js.map +1 -0
  159. package/dist/memory/store.d.ts +286 -0
  160. package/dist/memory/store.d.ts.map +1 -0
  161. package/dist/memory/store.js +263 -0
  162. package/dist/memory/store.js.map +1 -0
  163. package/dist/middleware/apply.d.ts +73 -0
  164. package/dist/middleware/apply.d.ts.map +1 -0
  165. package/dist/middleware/apply.js +219 -0
  166. package/dist/middleware/apply.js.map +1 -0
  167. package/dist/middleware/context.d.ts +33 -0
  168. package/dist/middleware/context.d.ts.map +1 -0
  169. package/dist/middleware/context.js +176 -0
  170. package/dist/middleware/context.js.map +1 -0
  171. package/dist/middleware/index.d.ts +31 -0
  172. package/dist/middleware/index.d.ts.map +1 -0
  173. package/dist/middleware/index.js +32 -0
  174. package/dist/middleware/index.js.map +1 -0
  175. package/dist/middleware/logging.d.ts +137 -0
  176. package/dist/middleware/logging.d.ts.map +1 -0
  177. package/dist/middleware/logging.js +374 -0
  178. package/dist/middleware/logging.js.map +1 -0
  179. package/dist/middleware/types.d.ts +183 -0
  180. package/dist/middleware/types.d.ts.map +1 -0
  181. package/dist/middleware/types.js +11 -0
  182. package/dist/middleware/types.js.map +1 -0
  183. package/dist/observability/events.d.ts +183 -0
  184. package/dist/observability/events.d.ts.map +1 -0
  185. package/dist/observability/events.js +305 -0
  186. package/dist/observability/events.js.map +1 -0
  187. package/dist/observability/index.d.ts +55 -0
  188. package/dist/observability/index.d.ts.map +1 -0
  189. package/dist/observability/index.js +87 -0
  190. package/dist/observability/index.js.map +1 -0
  191. package/dist/observability/logger.d.ts +318 -0
  192. package/dist/observability/logger.d.ts.map +1 -0
  193. package/dist/observability/logger.js +436 -0
  194. package/dist/observability/logger.js.map +1 -0
  195. package/dist/observability/metrics.d.ts +341 -0
  196. package/dist/observability/metrics.d.ts.map +1 -0
  197. package/dist/observability/metrics.js +490 -0
  198. package/dist/observability/metrics.js.map +1 -0
  199. package/dist/observability/preset.d.ts +161 -0
  200. package/dist/observability/preset.d.ts.map +1 -0
  201. package/dist/observability/preset.js +133 -0
  202. package/dist/observability/preset.js.map +1 -0
  203. package/dist/observability/streaming.d.ts +113 -0
  204. package/dist/observability/streaming.d.ts.map +1 -0
  205. package/dist/observability/streaming.js +114 -0
  206. package/dist/observability/streaming.js.map +1 -0
  207. package/dist/observability/tracing.d.ts +378 -0
  208. package/dist/observability/tracing.d.ts.map +1 -0
  209. package/dist/observability/tracing.js +539 -0
  210. package/dist/observability/tracing.js.map +1 -0
  211. package/dist/plugins.d.ts +55 -0
  212. package/dist/plugins.d.ts.map +1 -0
  213. package/dist/plugins.js +63 -0
  214. package/dist/plugins.js.map +1 -0
  215. package/dist/presets/index.d.ts +7 -0
  216. package/dist/presets/index.d.ts.map +1 -0
  217. package/dist/presets/index.js +7 -0
  218. package/dist/presets/index.js.map +1 -0
  219. package/dist/presets/production.d.ts +262 -0
  220. package/dist/presets/production.d.ts.map +1 -0
  221. package/dist/presets/production.js +295 -0
  222. package/dist/presets/production.js.map +1 -0
  223. package/dist/security/index.d.ts +179 -0
  224. package/dist/security/index.d.ts.map +1 -0
  225. package/dist/security/index.js +323 -0
  226. package/dist/security/index.js.map +1 -0
  227. package/dist/subagents/advanced.d.ts +413 -0
  228. package/dist/subagents/advanced.d.ts.map +1 -0
  229. package/dist/subagents/advanced.js +396 -0
  230. package/dist/subagents/advanced.js.map +1 -0
  231. package/dist/subagents/index.d.ts +14 -0
  232. package/dist/subagents/index.d.ts.map +1 -0
  233. package/dist/subagents/index.js +15 -0
  234. package/dist/subagents/index.js.map +1 -0
  235. package/dist/subagents.d.ts +73 -0
  236. package/dist/subagents.d.ts.map +1 -0
  237. package/dist/subagents.js +213 -0
  238. package/dist/subagents.js.map +1 -0
  239. package/dist/task-store/file-store.d.ts +76 -0
  240. package/dist/task-store/file-store.d.ts.map +1 -0
  241. package/dist/task-store/file-store.js +190 -0
  242. package/dist/task-store/file-store.js.map +1 -0
  243. package/dist/task-store/index.d.ts +11 -0
  244. package/dist/task-store/index.d.ts.map +1 -0
  245. package/dist/task-store/index.js +10 -0
  246. package/dist/task-store/index.js.map +1 -0
  247. package/dist/task-store/kv-store.d.ts +140 -0
  248. package/dist/task-store/kv-store.d.ts.map +1 -0
  249. package/dist/task-store/kv-store.js +169 -0
  250. package/dist/task-store/kv-store.js.map +1 -0
  251. package/dist/task-store/memory-store.d.ts +66 -0
  252. package/dist/task-store/memory-store.d.ts.map +1 -0
  253. package/dist/task-store/memory-store.js +125 -0
  254. package/dist/task-store/memory-store.js.map +1 -0
  255. package/dist/task-store/types.d.ts +235 -0
  256. package/dist/task-store/types.d.ts.map +1 -0
  257. package/dist/task-store/types.js +110 -0
  258. package/dist/task-store/types.js.map +1 -0
  259. package/dist/testing/assertions.d.ts +401 -0
  260. package/dist/testing/assertions.d.ts.map +1 -0
  261. package/dist/testing/assertions.js +630 -0
  262. package/dist/testing/assertions.js.map +1 -0
  263. package/dist/testing/index.d.ts +343 -0
  264. package/dist/testing/index.d.ts.map +1 -0
  265. package/dist/testing/index.js +360 -0
  266. package/dist/testing/index.js.map +1 -0
  267. package/dist/testing/mock-agent.d.ts +214 -0
  268. package/dist/testing/mock-agent.d.ts.map +1 -0
  269. package/dist/testing/mock-agent.js +448 -0
  270. package/dist/testing/mock-agent.js.map +1 -0
  271. package/dist/testing/recorder.d.ts +288 -0
  272. package/dist/testing/recorder.d.ts.map +1 -0
  273. package/dist/testing/recorder.js +499 -0
  274. package/dist/testing/recorder.js.map +1 -0
  275. package/dist/tools/execute.d.ts +104 -0
  276. package/dist/tools/execute.d.ts.map +1 -0
  277. package/dist/tools/execute.js +191 -0
  278. package/dist/tools/execute.js.map +1 -0
  279. package/dist/tools/factory.d.ts +260 -0
  280. package/dist/tools/factory.d.ts.map +1 -0
  281. package/dist/tools/factory.js +241 -0
  282. package/dist/tools/factory.js.map +1 -0
  283. package/dist/tools/filesystem.d.ts +215 -0
  284. package/dist/tools/filesystem.d.ts.map +1 -0
  285. package/dist/tools/filesystem.js +311 -0
  286. package/dist/tools/filesystem.js.map +1 -0
  287. package/dist/tools/index.d.ts +33 -0
  288. package/dist/tools/index.d.ts.map +1 -0
  289. package/dist/tools/index.js +33 -0
  290. package/dist/tools/index.js.map +1 -0
  291. package/dist/tools/search.d.ts +59 -0
  292. package/dist/tools/search.d.ts.map +1 -0
  293. package/dist/tools/search.js +94 -0
  294. package/dist/tools/search.js.map +1 -0
  295. package/dist/tools/skills.d.ts +354 -0
  296. package/dist/tools/skills.d.ts.map +1 -0
  297. package/dist/tools/skills.js +413 -0
  298. package/dist/tools/skills.js.map +1 -0
  299. package/dist/tools/task.d.ts +272 -0
  300. package/dist/tools/task.d.ts.map +1 -0
  301. package/dist/tools/task.js +521 -0
  302. package/dist/tools/task.js.map +1 -0
  303. package/dist/tools/todos.d.ts +131 -0
  304. package/dist/tools/todos.d.ts.map +1 -0
  305. package/dist/tools/todos.js +120 -0
  306. package/dist/tools/todos.js.map +1 -0
  307. package/dist/tools/tool-registry.d.ts +424 -0
  308. package/dist/tools/tool-registry.d.ts.map +1 -0
  309. package/dist/tools/tool-registry.js +607 -0
  310. package/dist/tools/tool-registry.js.map +1 -0
  311. package/dist/tools/user-interaction.d.ts +116 -0
  312. package/dist/tools/user-interaction.d.ts.map +1 -0
  313. package/dist/tools/user-interaction.js +147 -0
  314. package/dist/tools/user-interaction.js.map +1 -0
  315. package/dist/tools/utils.d.ts +124 -0
  316. package/dist/tools/utils.d.ts.map +1 -0
  317. package/dist/tools/utils.js +189 -0
  318. package/dist/tools/utils.js.map +1 -0
  319. package/dist/tools.d.ts +74 -0
  320. package/dist/tools.d.ts.map +1 -0
  321. package/dist/tools.js +73 -0
  322. package/dist/tools.js.map +1 -0
  323. package/dist/types.d.ts +2421 -0
  324. package/dist/types.d.ts.map +1 -0
  325. package/dist/types.js +55 -0
  326. package/dist/types.js.map +1 -0
  327. package/package.json +81 -0
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Observability event types and exporters for MCP and tool registry lifecycle events.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { MCPConnectionFailedInput, MCPConnectionRestoredInput, PostCompactInput, PreCompactInput, ToolLoadErrorInput, ToolRegisteredInput } from "../types.js";
7
+ /**
8
+ * Union type of all observability events.
9
+ * @category Observability
10
+ */
11
+ export type ObservabilityEvent = MCPConnectionFailedInput | MCPConnectionRestoredInput | ToolRegisteredInput | ToolLoadErrorInput | PreCompactInput | PostCompactInput;
12
+ /**
13
+ * Event severity levels for alerting.
14
+ * @category Observability
15
+ */
16
+ export type EventSeverity = "info" | "warning" | "error" | "critical";
17
+ /**
18
+ * Structured event for export with standardized fields.
19
+ * @category Observability
20
+ */
21
+ export interface StructuredEvent {
22
+ /** Timestamp in ISO format */
23
+ timestamp: string;
24
+ /** Event type */
25
+ event_type: string;
26
+ /** Severity level */
27
+ severity: EventSeverity;
28
+ /** Human-readable message */
29
+ message: string;
30
+ /** Structured metadata */
31
+ metadata: Record<string, unknown>;
32
+ /** Session ID (if available) */
33
+ session_id?: string;
34
+ }
35
+ /**
36
+ * Options for event exporters.
37
+ * @category Observability
38
+ */
39
+ export interface EventExporterOptions {
40
+ /** Minimum severity to export */
41
+ minSeverity?: EventSeverity;
42
+ /** Whether to include full error stack traces */
43
+ includeStackTraces?: boolean;
44
+ }
45
+ /**
46
+ * Convert an observability event to a structured event.
47
+ *
48
+ * @param event - The hook input event
49
+ * @returns Structured event ready for export
50
+ *
51
+ * @category Observability
52
+ */
53
+ export declare function toStructuredEvent(event: ObservabilityEvent): StructuredEvent;
54
+ /**
55
+ * Export events as JSON Lines format for log aggregation tools.
56
+ *
57
+ * @param events - Array of observability events
58
+ * @param options - Export options
59
+ * @returns JSON Lines string (one JSON object per line)
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const events = [mcpFailedEvent, toolRegisteredEvent];
64
+ * const jsonl = exportEventsJSONLines(events);
65
+ * await fs.writeFile("events.jsonl", jsonl);
66
+ * ```
67
+ *
68
+ * @category Observability
69
+ */
70
+ export declare function exportEventsJSONLines(events: ObservabilityEvent[], options?: EventExporterOptions): string;
71
+ /**
72
+ * Export events in a format suitable for Prometheus/OpenMetrics.
73
+ *
74
+ * @param events - Array of observability events
75
+ * @returns Metrics in Prometheus text format
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const events = [mcpFailedEvent, mcpRestoredEvent];
80
+ * const metrics = exportEventsPrometheus(events);
81
+ * // Send to Pushgateway or expose via /metrics endpoint
82
+ * ```
83
+ *
84
+ * @category Observability
85
+ */
86
+ export declare function exportEventsPrometheus(events: ObservabilityEvent[]): string;
87
+ /**
88
+ * In-memory store for collecting observability events.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const store = createObservabilityEventStore({ maxSize: 1000 });
93
+ *
94
+ * // Add events
95
+ * store.add(mcpFailedEvent);
96
+ * store.add(toolRegisteredEvent);
97
+ *
98
+ * // Export periodically
99
+ * setInterval(() => {
100
+ * const jsonl = exportEventsJSONLines(store.getAll());
101
+ * await sendToLogAggregator(jsonl);
102
+ * store.clear();
103
+ * }, 60000);
104
+ * ```
105
+ *
106
+ * @category Observability
107
+ */
108
+ export interface ObservabilityEventStore {
109
+ /** Add an event to the store */
110
+ add: (event: ObservabilityEvent) => void;
111
+ /** Get all events */
112
+ getAll: () => ObservabilityEvent[];
113
+ /** Get events by type */
114
+ getByType: (type: ObservabilityEvent["hook_event_name"]) => ObservabilityEvent[];
115
+ /** Clear all events */
116
+ clear: () => void;
117
+ /** Get current event count */
118
+ size: () => number;
119
+ }
120
+ /**
121
+ * Options for creating an observability event store.
122
+ * @category Observability
123
+ */
124
+ export interface ObservabilityEventStoreOptions {
125
+ /** Maximum number of events to store (LRU eviction) */
126
+ maxSize?: number;
127
+ }
128
+ /**
129
+ * Create an in-memory observability event store.
130
+ *
131
+ * @param options - Store configuration
132
+ * @returns Event store instance
133
+ *
134
+ * @category Observability
135
+ */
136
+ export declare function createObservabilityEventStore(options?: ObservabilityEventStoreOptions): ObservabilityEventStore;
137
+ /**
138
+ * Create hooks for collecting observability events.
139
+ *
140
+ * @param store - Event store to collect events in
141
+ * @returns Hook callbacks for all observability event types
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const store = createObservabilityEventStore();
146
+ * const hooks = createObservabilityEventHooks(store);
147
+ *
148
+ * const agent = createAgent({
149
+ * model,
150
+ * hooks: {
151
+ * MCPConnectionFailed: hooks.MCPConnectionFailed,
152
+ * MCPConnectionRestored: hooks.MCPConnectionRestored,
153
+ * ToolRegistered: hooks.ToolRegistered,
154
+ * ToolLoadError: hooks.ToolLoadError,
155
+ * PreCompact: hooks.PreCompact,
156
+ * PostCompact: hooks.PostCompact,
157
+ * },
158
+ * });
159
+ * ```
160
+ *
161
+ * @category Observability
162
+ */
163
+ export declare function createObservabilityEventHooks(store: ObservabilityEventStore): {
164
+ MCPConnectionFailed: ((input: MCPConnectionFailedInput) => Promise<{
165
+ continue: boolean;
166
+ }>)[];
167
+ MCPConnectionRestored: ((input: MCPConnectionRestoredInput) => Promise<{
168
+ continue: boolean;
169
+ }>)[];
170
+ ToolRegistered: ((input: ToolRegisteredInput) => Promise<{
171
+ continue: boolean;
172
+ }>)[];
173
+ ToolLoadError: ((input: ToolLoadErrorInput) => Promise<{
174
+ continue: boolean;
175
+ }>)[];
176
+ PreCompact: ((input: PreCompactInput) => Promise<{
177
+ continue: boolean;
178
+ }>)[];
179
+ PostCompact: ((input: PostCompactInput) => Promise<{
180
+ continue: boolean;
181
+ }>)[];
182
+ };
183
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,0BAA0B,GAC1B,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,qBAAqB;IACrB,QAAQ,EAAE,aAAa,CAAC;IAExB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,WAAW,CAAC,EAAE,aAAa,CAAC;IAE5B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAqG5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAmBR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAqE3E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,GAAG,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEzC,qBAAqB;IACrB,MAAM,EAAE,MAAM,kBAAkB,EAAE,CAAC;IAEnC,yBAAyB;IACzB,SAAS,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,kBAAkB,EAAE,CAAC;IAEjF,uBAAuB;IACvB,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CAwBzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,uBAAuB;kCAGxD,wBAAwB,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;oCAOzD,0BAA0B,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;6BAO3D,mBAAmB,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;4BAOpD,kBAAkB,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;yBAOnD,eAAe,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;0BAOhD,gBAAgB,KAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;EAMpE"}
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Observability event types and exporters for MCP and tool registry lifecycle events.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ /**
7
+ * Convert an observability event to a structured event.
8
+ *
9
+ * @param event - The hook input event
10
+ * @returns Structured event ready for export
11
+ *
12
+ * @category Observability
13
+ */
14
+ export function toStructuredEvent(event) {
15
+ const timestamp = new Date().toISOString();
16
+ switch (event.hook_event_name) {
17
+ case "MCPConnectionFailed": {
18
+ return {
19
+ timestamp,
20
+ event_type: "mcp_connection_failed",
21
+ severity: "error",
22
+ message: `MCP server '${event.server_name}' failed to connect: ${event.error.message}`,
23
+ metadata: {
24
+ server_name: event.server_name,
25
+ config_type: event.config.type,
26
+ error_name: event.error.name,
27
+ error_message: event.error.message,
28
+ },
29
+ session_id: event.session_id,
30
+ };
31
+ }
32
+ case "MCPConnectionRestored": {
33
+ return {
34
+ timestamp,
35
+ event_type: "mcp_connection_restored",
36
+ severity: "info",
37
+ message: `MCP server '${event.server_name}' connected successfully with ${event.tool_count} tools`,
38
+ metadata: {
39
+ server_name: event.server_name,
40
+ tool_count: event.tool_count,
41
+ },
42
+ session_id: event.session_id,
43
+ };
44
+ }
45
+ case "ToolRegistered": {
46
+ return {
47
+ timestamp,
48
+ event_type: "tool_registered",
49
+ severity: "info",
50
+ message: `Tool '${event.tool_name}' registered${event.source ? ` from ${event.source}` : ""}`,
51
+ metadata: {
52
+ tool_name: event.tool_name,
53
+ description: event.description,
54
+ source: event.source,
55
+ },
56
+ session_id: event.session_id,
57
+ };
58
+ }
59
+ case "ToolLoadError": {
60
+ return {
61
+ timestamp,
62
+ event_type: "tool_load_error",
63
+ severity: "warning",
64
+ message: `Failed to load tool '${event.tool_name}': ${event.error.message}`,
65
+ metadata: {
66
+ tool_name: event.tool_name,
67
+ error_name: event.error.name,
68
+ error_message: event.error.message,
69
+ source: event.source,
70
+ },
71
+ session_id: event.session_id,
72
+ };
73
+ }
74
+ case "PreCompact": {
75
+ return {
76
+ timestamp,
77
+ event_type: "context_compaction_started",
78
+ severity: "info",
79
+ message: `Context compaction started: ${event.message_count} messages, ${event.tokens_before} tokens`,
80
+ metadata: {
81
+ message_count: event.message_count,
82
+ tokens_before: event.tokens_before,
83
+ },
84
+ session_id: event.session_id,
85
+ };
86
+ }
87
+ case "PostCompact": {
88
+ const reductionPercent = event.tokens_before > 0
89
+ ? ((event.tokens_saved / event.tokens_before) * 100).toFixed(1)
90
+ : "0.0";
91
+ return {
92
+ timestamp,
93
+ event_type: "context_compaction_completed",
94
+ severity: "info",
95
+ message: `Context compaction completed: ${event.messages_before} → ${event.messages_after} messages, saved ${event.tokens_saved} tokens (${reductionPercent}%)`,
96
+ metadata: {
97
+ messages_before: event.messages_before,
98
+ messages_after: event.messages_after,
99
+ tokens_before: event.tokens_before,
100
+ tokens_after: event.tokens_after,
101
+ tokens_saved: event.tokens_saved,
102
+ reduction_percent: Number.parseFloat(reductionPercent),
103
+ },
104
+ session_id: event.session_id,
105
+ };
106
+ }
107
+ }
108
+ }
109
+ /**
110
+ * Export events as JSON Lines format for log aggregation tools.
111
+ *
112
+ * @param events - Array of observability events
113
+ * @param options - Export options
114
+ * @returns JSON Lines string (one JSON object per line)
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const events = [mcpFailedEvent, toolRegisteredEvent];
119
+ * const jsonl = exportEventsJSONLines(events);
120
+ * await fs.writeFile("events.jsonl", jsonl);
121
+ * ```
122
+ *
123
+ * @category Observability
124
+ */
125
+ export function exportEventsJSONLines(events, options = {}) {
126
+ const { minSeverity = "info" } = options;
127
+ const severityLevels = ["info", "warning", "error", "critical"];
128
+ const minLevel = severityLevels.indexOf(minSeverity);
129
+ return events
130
+ .map((event) => {
131
+ const structured = toStructuredEvent(event);
132
+ // Filter by severity
133
+ const eventLevel = severityLevels.indexOf(structured.severity);
134
+ if (eventLevel < minLevel) {
135
+ return null;
136
+ }
137
+ return JSON.stringify(structured);
138
+ })
139
+ .filter((line) => line !== null)
140
+ .join("\n");
141
+ }
142
+ /**
143
+ * Export events in a format suitable for Prometheus/OpenMetrics.
144
+ *
145
+ * @param events - Array of observability events
146
+ * @returns Metrics in Prometheus text format
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * const events = [mcpFailedEvent, mcpRestoredEvent];
151
+ * const metrics = exportEventsPrometheus(events);
152
+ * // Send to Pushgateway or expose via /metrics endpoint
153
+ * ```
154
+ *
155
+ * @category Observability
156
+ */
157
+ export function exportEventsPrometheus(events) {
158
+ const metrics = new Map();
159
+ for (const event of events) {
160
+ switch (event.hook_event_name) {
161
+ case "MCPConnectionFailed": {
162
+ const key = `mcp_connection_failures_total{server="${event.server_name}"}`;
163
+ metrics.set(key, (metrics.get(key) ?? 0) + 1);
164
+ break;
165
+ }
166
+ case "MCPConnectionRestored": {
167
+ const key = `mcp_connections_total{server="${event.server_name}"}`;
168
+ metrics.set(key, (metrics.get(key) ?? 0) + 1);
169
+ const toolKey = `mcp_tools_available{server="${event.server_name}"}`;
170
+ metrics.set(toolKey, event.tool_count);
171
+ break;
172
+ }
173
+ case "ToolRegistered": {
174
+ const source = event.source ?? "unknown";
175
+ const key = `tools_registered_total{source="${source}"}`;
176
+ metrics.set(key, (metrics.get(key) ?? 0) + 1);
177
+ break;
178
+ }
179
+ case "ToolLoadError": {
180
+ const source = event.source ?? "unknown";
181
+ const key = `tool_load_errors_total{source="${source}"}`;
182
+ metrics.set(key, (metrics.get(key) ?? 0) + 1);
183
+ break;
184
+ }
185
+ case "PreCompact": {
186
+ // Track compaction starts (for in-progress monitoring)
187
+ const key = `context_compactions_started_total`;
188
+ metrics.set(key, (metrics.get(key) ?? 0) + 1);
189
+ break;
190
+ }
191
+ case "PostCompact": {
192
+ // Track completed compactions
193
+ const compactKey = `context_compactions_total`;
194
+ metrics.set(compactKey, (metrics.get(compactKey) ?? 0) + 1);
195
+ // Track tokens saved
196
+ const tokensSavedKey = `context_compaction_tokens_saved_total`;
197
+ metrics.set(tokensSavedKey, (metrics.get(tokensSavedKey) ?? 0) + event.tokens_saved);
198
+ // Track messages compacted
199
+ const messagesCompactedKey = `context_compaction_messages_removed_total`;
200
+ const messagesRemoved = event.messages_before - event.messages_after;
201
+ metrics.set(messagesCompactedKey, (metrics.get(messagesCompactedKey) ?? 0) + messagesRemoved);
202
+ break;
203
+ }
204
+ }
205
+ }
206
+ const lines = [];
207
+ for (const [metric, value] of metrics) {
208
+ lines.push(`${metric} ${value}`);
209
+ }
210
+ return lines.join("\n");
211
+ }
212
+ /**
213
+ * Create an in-memory observability event store.
214
+ *
215
+ * @param options - Store configuration
216
+ * @returns Event store instance
217
+ *
218
+ * @category Observability
219
+ */
220
+ export function createObservabilityEventStore(options = {}) {
221
+ const { maxSize = 10000 } = options;
222
+ const events = [];
223
+ return {
224
+ add: (event) => {
225
+ events.push(event);
226
+ // LRU eviction
227
+ if (events.length > maxSize) {
228
+ events.shift();
229
+ }
230
+ },
231
+ getAll: () => [...events],
232
+ getByType: (type) => events.filter((e) => e.hook_event_name === type),
233
+ clear: () => {
234
+ events.length = 0;
235
+ },
236
+ size: () => events.length,
237
+ };
238
+ }
239
+ /**
240
+ * Create hooks for collecting observability events.
241
+ *
242
+ * @param store - Event store to collect events in
243
+ * @returns Hook callbacks for all observability event types
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const store = createObservabilityEventStore();
248
+ * const hooks = createObservabilityEventHooks(store);
249
+ *
250
+ * const agent = createAgent({
251
+ * model,
252
+ * hooks: {
253
+ * MCPConnectionFailed: hooks.MCPConnectionFailed,
254
+ * MCPConnectionRestored: hooks.MCPConnectionRestored,
255
+ * ToolRegistered: hooks.ToolRegistered,
256
+ * ToolLoadError: hooks.ToolLoadError,
257
+ * PreCompact: hooks.PreCompact,
258
+ * PostCompact: hooks.PostCompact,
259
+ * },
260
+ * });
261
+ * ```
262
+ *
263
+ * @category Observability
264
+ */
265
+ export function createObservabilityEventHooks(store) {
266
+ return {
267
+ MCPConnectionFailed: [
268
+ async (input) => {
269
+ store.add(input);
270
+ return { continue: true };
271
+ },
272
+ ],
273
+ MCPConnectionRestored: [
274
+ async (input) => {
275
+ store.add(input);
276
+ return { continue: true };
277
+ },
278
+ ],
279
+ ToolRegistered: [
280
+ async (input) => {
281
+ store.add(input);
282
+ return { continue: true };
283
+ },
284
+ ],
285
+ ToolLoadError: [
286
+ async (input) => {
287
+ store.add(input);
288
+ return { continue: true };
289
+ },
290
+ ],
291
+ PreCompact: [
292
+ async (input) => {
293
+ store.add(input);
294
+ return { continue: true };
295
+ },
296
+ ],
297
+ PostCompact: [
298
+ async (input) => {
299
+ store.add(input);
300
+ return { continue: true };
301
+ },
302
+ ],
303
+ };
304
+ }
305
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Observability Module.
3
+ *
4
+ * Provides comprehensive observability features for the agent SDK:
5
+ * - **Logging**: Structured logging with levels, formatters, and transports
6
+ * - **Metrics**: Counters, gauges, histograms for performance tracking
7
+ * - **Tracing**: OpenTelemetry-compatible distributed tracing
8
+ * - **Hooks**: Pre-built hooks for integrating observability with agents
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import {
13
+ * createLogger,
14
+ * createMetricsRegistry,
15
+ * createAgentMetrics,
16
+ * createTracer,
17
+ * createObservabilityHooks,
18
+ * registerObservabilityHooks,
19
+ * } from "@lleverage-ai/agent-sdk";
20
+ *
21
+ * // Set up observability
22
+ * const logger = createLogger({ name: "my-agent", level: "info" });
23
+ * const registry = createMetricsRegistry();
24
+ * const metrics = createAgentMetrics(registry);
25
+ * const tracer = createTracer({
26
+ * name: "my-agent",
27
+ * exporters: [createConsoleSpanExporter()],
28
+ * });
29
+ *
30
+ * // Create and register hooks
31
+ * const observabilityHooks = createObservabilityHooks({
32
+ * logger,
33
+ * metrics,
34
+ * tracer,
35
+ * });
36
+ *
37
+ * const hookManager = createHookManager();
38
+ * registerObservabilityHooks(hookManager, observabilityHooks);
39
+ *
40
+ * // Create agent with observability
41
+ * const agent = createAgent({
42
+ * model,
43
+ * hooks: hookManager,
44
+ * });
45
+ * ```
46
+ *
47
+ * @packageDocumentation
48
+ */
49
+ export { createObservabilityEventHooks, createObservabilityEventStore, type EventExporterOptions, type EventSeverity, exportEventsJSONLines, exportEventsPrometheus, type ObservabilityEvent, type ObservabilityEventStore, type ObservabilityEventStoreOptions, type StructuredEvent, toStructuredEvent, } from "./events.js";
50
+ export { createCallbackTransport, createConsoleTransport, createFilteredTransport, createJsonFormatter, createLogger, createMemoryTransport, createPrettyFormatter, defaultLogger, LOG_LEVEL_VALUES, type LogEntry, type LogFormatter, type Logger, type LoggerOptions, type LogLevel, type LogTimer, type LogTransport, setDefaultLogger, } from "./logger.js";
51
+ export { type AgentMetrics, type Counter, createAgentMetrics, createCallbackMetricsExporter, createConsoleMetricsExporter, createMemoryMetricsExporter, createMetricsRegistry, DEFAULT_LATENCY_BUCKETS, DEFAULT_TOKEN_BUCKETS, defaultMetricsRegistry, type Gauge, type Histogram, type HistogramBucket, type HistogramData, type MetricLabels, type MetricPoint, type MetricsExporter, type MetricsRegistry, type MetricsRegistryOptions, type MetricType, setDefaultMetricsRegistry, } from "./metrics.js";
52
+ export { createObservabilityPreset, type ObservabilityPreset, type ObservabilityPresetOptions, } from "./preset.js";
53
+ export { createStreamingLogTransport, createStreamingObservability, type StreamingLogTransportOptions, type StreamingObservabilityOptions, } from "./streaming.js";
54
+ export { createCallbackSpanExporter, createConsoleSpanExporter, createMemorySpanExporter, createOTLPSpanExporter, createTracer, defaultTracer, SemanticAttributes, type Span, type SpanAttributes, type SpanContext, type SpanData, type SpanEvent, type SpanExporter, type SpanKind, type SpanLink, type SpanStatus, type SpanStatusCode, type StartSpanOptions, setDefaultTracer, type Tracer, type TracerOptions, } from "./tracing.js";
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAGH,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,qBAAqB,EACrB,sBAAsB,EAEtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,eAAe,EAEpB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EAEvB,sBAAsB,EACtB,uBAAuB,EAEvB,mBAAmB,EAEnB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EAEZ,kBAAkB,EAClB,6BAA6B,EAE7B,4BAA4B,EAC5B,2BAA2B,EAE3B,qBAAqB,EAErB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAE3B,KAAK,UAAU,EACf,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,EAE5B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,GACnC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,0BAA0B,EAE1B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EAEtB,YAAY,EAEZ,aAAa,EAEb,kBAAkB,EAClB,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EAEf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Observability Module.
3
+ *
4
+ * Provides comprehensive observability features for the agent SDK:
5
+ * - **Logging**: Structured logging with levels, formatters, and transports
6
+ * - **Metrics**: Counters, gauges, histograms for performance tracking
7
+ * - **Tracing**: OpenTelemetry-compatible distributed tracing
8
+ * - **Hooks**: Pre-built hooks for integrating observability with agents
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import {
13
+ * createLogger,
14
+ * createMetricsRegistry,
15
+ * createAgentMetrics,
16
+ * createTracer,
17
+ * createObservabilityHooks,
18
+ * registerObservabilityHooks,
19
+ * } from "@lleverage-ai/agent-sdk";
20
+ *
21
+ * // Set up observability
22
+ * const logger = createLogger({ name: "my-agent", level: "info" });
23
+ * const registry = createMetricsRegistry();
24
+ * const metrics = createAgentMetrics(registry);
25
+ * const tracer = createTracer({
26
+ * name: "my-agent",
27
+ * exporters: [createConsoleSpanExporter()],
28
+ * });
29
+ *
30
+ * // Create and register hooks
31
+ * const observabilityHooks = createObservabilityHooks({
32
+ * logger,
33
+ * metrics,
34
+ * tracer,
35
+ * });
36
+ *
37
+ * const hookManager = createHookManager();
38
+ * registerObservabilityHooks(hookManager, observabilityHooks);
39
+ *
40
+ * // Create agent with observability
41
+ * const agent = createAgent({
42
+ * model,
43
+ * hooks: hookManager,
44
+ * });
45
+ * ```
46
+ *
47
+ * @packageDocumentation
48
+ */
49
+ // Events
50
+ export { createObservabilityEventHooks, createObservabilityEventStore, exportEventsJSONLines, exportEventsPrometheus,
51
+ // Functions
52
+ toStructuredEvent, } from "./events.js";
53
+ // Logger
54
+ export { createCallbackTransport,
55
+ // Transports
56
+ createConsoleTransport, createFilteredTransport,
57
+ // Formatters
58
+ createJsonFormatter,
59
+ // Logger
60
+ createLogger, createMemoryTransport, createPrettyFormatter, defaultLogger, LOG_LEVEL_VALUES, setDefaultLogger, } from "./logger.js";
61
+ // Metrics
62
+ export {
63
+ // Agent Metrics
64
+ createAgentMetrics, createCallbackMetricsExporter,
65
+ // Exporters
66
+ createConsoleMetricsExporter, createMemoryMetricsExporter,
67
+ // Registry
68
+ createMetricsRegistry,
69
+ // Constants
70
+ DEFAULT_LATENCY_BUCKETS, DEFAULT_TOKEN_BUCKETS, defaultMetricsRegistry, setDefaultMetricsRegistry, } from "./metrics.js";
71
+ // Preset
72
+ export { createObservabilityPreset, } from "./preset.js";
73
+ // Streaming
74
+ export {
75
+ // Factories
76
+ createStreamingLogTransport, createStreamingObservability, } from "./streaming.js";
77
+ // Tracing
78
+ export { createCallbackSpanExporter,
79
+ // Exporters
80
+ createConsoleSpanExporter, createMemorySpanExporter, createOTLPSpanExporter,
81
+ // Tracer
82
+ createTracer,
83
+ // Default
84
+ defaultTracer,
85
+ // Semantic Conventions
86
+ SemanticAttributes, setDefaultTracer, } from "./tracing.js";
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,SAAS;AACT,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAG7B,qBAAqB,EACrB,sBAAsB;AAMtB,YAAY;AACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,SAAS;AACT,OAAO,EACL,uBAAuB;AACvB,aAAa;AACb,sBAAsB,EACtB,uBAAuB;AACvB,aAAa;AACb,mBAAmB;AACnB,SAAS;AACT,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAShB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,UAAU;AACV,OAAO;AAGL,gBAAgB;AAChB,kBAAkB,EAClB,6BAA6B;AAC7B,YAAY;AACZ,4BAA4B,EAC5B,2BAA2B;AAC3B,WAAW;AACX,qBAAqB;AACrB,YAAY;AACZ,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EAYtB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,SAAS;AACT,OAAO,EACL,yBAAyB,GAG1B,MAAM,aAAa,CAAC;AAErB,YAAY;AACZ,OAAO;AACL,YAAY;AACZ,2BAA2B,EAC3B,4BAA4B,GAI7B,MAAM,gBAAgB,CAAC;AAExB,UAAU;AACV,OAAO,EACL,0BAA0B;AAC1B,YAAY;AACZ,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB;AACtB,SAAS;AACT,YAAY;AACZ,UAAU;AACV,aAAa;AACb,uBAAuB;AACvB,kBAAkB,EAalB,gBAAgB,GAGjB,MAAM,cAAc,CAAC"}