@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,341 @@
1
+ /**
2
+ * Metrics Collection System.
3
+ *
4
+ * Provides a flexible metrics system for tracking:
5
+ * - Token usage (input/output tokens)
6
+ * - Latency (request duration)
7
+ * - Error rates
8
+ * - Custom counters, gauges, and histograms
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ /**
13
+ * Metric types supported by the system.
14
+ *
15
+ * @category Observability
16
+ */
17
+ export type MetricType = "counter" | "gauge" | "histogram";
18
+ /**
19
+ * Labels/tags for metrics.
20
+ *
21
+ * @category Observability
22
+ */
23
+ export type MetricLabels = Record<string, string>;
24
+ /**
25
+ * A single metric data point.
26
+ *
27
+ * @category Observability
28
+ */
29
+ export interface MetricPoint {
30
+ /** Metric name */
31
+ name: string;
32
+ /** Metric type */
33
+ type: MetricType;
34
+ /** Metric value */
35
+ value: number;
36
+ /** Labels/tags */
37
+ labels: MetricLabels;
38
+ /** ISO timestamp */
39
+ timestamp: string;
40
+ }
41
+ /**
42
+ * Histogram bucket definition.
43
+ *
44
+ * @category Observability
45
+ */
46
+ export interface HistogramBucket {
47
+ /** Upper bound */
48
+ le: number;
49
+ /** Count of observations <= le */
50
+ count: number;
51
+ }
52
+ /**
53
+ * Histogram metric data.
54
+ *
55
+ * @category Observability
56
+ */
57
+ export interface HistogramData {
58
+ /** Bucket counts */
59
+ buckets: HistogramBucket[];
60
+ /** Total sum of all observations */
61
+ sum: number;
62
+ /** Total count of observations */
63
+ count: number;
64
+ }
65
+ /**
66
+ * A counter metric that can only increase.
67
+ *
68
+ * @category Observability
69
+ */
70
+ export interface Counter {
71
+ /** Increment the counter */
72
+ inc(value?: number, labels?: MetricLabels): void;
73
+ /** Get current value */
74
+ get(labels?: MetricLabels): number;
75
+ /** Reset to zero */
76
+ reset(labels?: MetricLabels): void;
77
+ }
78
+ /**
79
+ * A gauge metric that can go up and down.
80
+ *
81
+ * @category Observability
82
+ */
83
+ export interface Gauge {
84
+ /** Set the gauge value */
85
+ set(value: number, labels?: MetricLabels): void;
86
+ /** Increment the gauge */
87
+ inc(value?: number, labels?: MetricLabels): void;
88
+ /** Decrement the gauge */
89
+ dec(value?: number, labels?: MetricLabels): void;
90
+ /** Get current value */
91
+ get(labels?: MetricLabels): number;
92
+ }
93
+ /**
94
+ * A histogram metric for measuring distributions.
95
+ *
96
+ * @category Observability
97
+ */
98
+ export interface Histogram {
99
+ /** Observe a value */
100
+ observe(value: number, labels?: MetricLabels): void;
101
+ /** Get histogram data */
102
+ get(labels?: MetricLabels): HistogramData;
103
+ /** Start a timer that observes duration when stopped */
104
+ startTimer(labels?: MetricLabels): () => number;
105
+ /** Reset the histogram */
106
+ reset(labels?: MetricLabels): void;
107
+ }
108
+ /**
109
+ * A metrics exporter sends metrics to an external system.
110
+ *
111
+ * @category Observability
112
+ */
113
+ export interface MetricsExporter {
114
+ /** Exporter name */
115
+ name: string;
116
+ /** Export metrics */
117
+ export(metrics: MetricPoint[]): void | Promise<void>;
118
+ /** Optional flush for batch exporters */
119
+ flush?(): void | Promise<void>;
120
+ /** Optional close for cleanup */
121
+ close?(): void | Promise<void>;
122
+ }
123
+ /**
124
+ * Options for creating a metrics registry.
125
+ *
126
+ * @category Observability
127
+ */
128
+ export interface MetricsRegistryOptions {
129
+ /** Default labels for all metrics */
130
+ defaultLabels?: MetricLabels;
131
+ /** Exporters to send metrics to */
132
+ exporters?: MetricsExporter[];
133
+ /** Export interval in milliseconds (0 = manual only) */
134
+ exportInterval?: number;
135
+ /** Prefix for all metric names */
136
+ prefix?: string;
137
+ }
138
+ /**
139
+ * A registry for managing metrics.
140
+ *
141
+ * @category Observability
142
+ */
143
+ export interface MetricsRegistry {
144
+ /** Create or get a counter */
145
+ counter(name: string, description?: string): Counter;
146
+ /** Create or get a gauge */
147
+ gauge(name: string, description?: string): Gauge;
148
+ /** Create or get a histogram */
149
+ histogram(name: string, buckets?: number[], description?: string): Histogram;
150
+ /** Get all current metric values */
151
+ getMetrics(): MetricPoint[];
152
+ /** Export metrics to all exporters */
153
+ export(): Promise<void>;
154
+ /** Close the registry and exporters */
155
+ close(): Promise<void>;
156
+ }
157
+ /**
158
+ * Default histogram buckets (latency in ms).
159
+ */
160
+ export declare const DEFAULT_LATENCY_BUCKETS: number[];
161
+ /**
162
+ * Default histogram buckets for token counts.
163
+ */
164
+ export declare const DEFAULT_TOKEN_BUCKETS: number[];
165
+ /**
166
+ * Creates a metrics registry.
167
+ *
168
+ * @param options - Registry options
169
+ * @returns A metrics registry
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const registry = createMetricsRegistry({
174
+ * defaultLabels: { service: "my-agent" },
175
+ * });
176
+ *
177
+ * const requestCounter = registry.counter("requests_total");
178
+ * const latencyHistogram = registry.histogram("request_duration_ms");
179
+ *
180
+ * requestCounter.inc();
181
+ * latencyHistogram.observe(150);
182
+ * ```
183
+ *
184
+ * @category Observability
185
+ */
186
+ export declare function createMetricsRegistry(options?: MetricsRegistryOptions): MetricsRegistry;
187
+ /**
188
+ * Creates a console exporter for debugging.
189
+ *
190
+ * @returns A console exporter
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const registry = createMetricsRegistry({
195
+ * exporters: [createConsoleMetricsExporter()],
196
+ * });
197
+ * ```
198
+ *
199
+ * @category Observability
200
+ */
201
+ export declare function createConsoleMetricsExporter(): MetricsExporter;
202
+ /**
203
+ * Creates a memory exporter that stores metrics.
204
+ *
205
+ * @returns A memory exporter with access to stored metrics
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * const exporter = createMemoryMetricsExporter();
210
+ * const registry = createMetricsRegistry({ exporters: [exporter] });
211
+ *
212
+ * registry.counter("test").inc();
213
+ * await registry.export();
214
+ *
215
+ * console.log(exporter.metrics);
216
+ * ```
217
+ *
218
+ * @category Observability
219
+ */
220
+ export declare function createMemoryMetricsExporter(): MetricsExporter & {
221
+ metrics: MetricPoint[];
222
+ clear(): void;
223
+ };
224
+ /**
225
+ * Creates a callback exporter that invokes a function for each export.
226
+ *
227
+ * @param callback - Function to call with metrics
228
+ * @returns A callback exporter
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const exporter = createCallbackMetricsExporter((metrics) => {
233
+ * sendToPrometheus(metrics);
234
+ * });
235
+ * ```
236
+ *
237
+ * @category Observability
238
+ */
239
+ export declare function createCallbackMetricsExporter(callback: (metrics: MetricPoint[]) => void | Promise<void>): MetricsExporter;
240
+ /**
241
+ * Pre-defined metrics for agent SDK.
242
+ *
243
+ * @category Observability
244
+ */
245
+ export interface AgentMetrics {
246
+ /** Total requests made */
247
+ requestsTotal: Counter;
248
+ /** Requests in progress */
249
+ requestsInProgress: Gauge;
250
+ /** Request duration in milliseconds */
251
+ requestDurationMs: Histogram;
252
+ /** Input tokens used */
253
+ inputTokensTotal: Counter;
254
+ /** Output tokens used */
255
+ outputTokensTotal: Counter;
256
+ /** Total tokens used */
257
+ tokensTotal: Counter;
258
+ /** Tool calls made */
259
+ toolCallsTotal: Counter;
260
+ /** Tool call errors */
261
+ toolErrorsTotal: Counter;
262
+ /** Subagent spawns */
263
+ subagentSpawnsTotal: Counter;
264
+ /** Errors by type */
265
+ errorsTotal: Counter;
266
+ /** Context compactions */
267
+ compactionsTotal: Counter;
268
+ /** Checkpoint operations */
269
+ checkpointsTotal: Counter;
270
+ }
271
+ /**
272
+ * Creates pre-defined agent metrics.
273
+ *
274
+ * @param registry - The metrics registry to use
275
+ * @returns Agent metrics object
276
+ *
277
+ * @example
278
+ * ```typescript
279
+ * const registry = createMetricsRegistry();
280
+ * const metrics = createAgentMetrics(registry);
281
+ *
282
+ * // Use in agent hooks
283
+ * hooks.on("PostGenerate", (ctx) => {
284
+ * metrics.requestsTotal.inc({ model: "claude-3" });
285
+ * if (ctx.data.type === "PostGenerate" && ctx.data.result.usage) {
286
+ * metrics.inputTokensTotal.inc(ctx.data.result.usage.inputTokens);
287
+ * metrics.outputTokensTotal.inc(ctx.data.result.usage.outputTokens);
288
+ * }
289
+ * });
290
+ * ```
291
+ *
292
+ * @category Observability
293
+ */
294
+ export declare function createAgentMetrics(registry: MetricsRegistry): AgentMetrics;
295
+ import type { HookCallback } from "../types.js";
296
+ /**
297
+ * Creates hooks that automatically update agent metrics.
298
+ *
299
+ * @param metrics - The agent metrics to update
300
+ * @returns Hook callbacks for metrics collection
301
+ *
302
+ * @example
303
+ * ```typescript
304
+ * const registry = createMetricsRegistry();
305
+ * const metrics = createAgentMetrics(registry);
306
+ * const metricsHooks = createMetricsHooks(metrics);
307
+ *
308
+ * const agent = createAgent({
309
+ * model,
310
+ * hooks: {
311
+ * PostGenerate: [metricsHooks.PostGenerate],
312
+ * PostToolUse: [metricsHooks.PostToolUse],
313
+ * PostToolUseFailure: [metricsHooks.PostToolUseFailure],
314
+ * PostCompact: [metricsHooks.PostCompact],
315
+ * },
316
+ * });
317
+ * ```
318
+ *
319
+ * @category Observability
320
+ */
321
+ export declare function createMetricsHooks(metrics: AgentMetrics): {
322
+ PostGenerate: HookCallback;
323
+ PostToolUse: HookCallback;
324
+ PostToolUseFailure: HookCallback;
325
+ PostCompact: HookCallback;
326
+ };
327
+ /**
328
+ * The default global metrics registry.
329
+ *
330
+ * @category Observability
331
+ */
332
+ export declare let defaultMetricsRegistry: MetricsRegistry;
333
+ /**
334
+ * Sets the default global metrics registry.
335
+ *
336
+ * @param registry - The registry to use as default
337
+ *
338
+ * @category Observability
339
+ */
340
+ export declare function setDefaultMetricsRegistry(registry: MetricsRegistry): void;
341
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":"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"}