@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,539 @@
1
+ /**
2
+ * Distributed Tracing System.
3
+ *
4
+ * Provides OpenTelemetry-compatible tracing for:
5
+ * - Agent request tracing
6
+ * - Tool execution spans
7
+ * - Subagent spans
8
+ * - Cross-service correlation
9
+ *
10
+ * The implementation is framework-agnostic and can be used with
11
+ * actual OpenTelemetry or any compatible tracing system.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ // =============================================================================
16
+ // Utilities
17
+ // =============================================================================
18
+ /**
19
+ * Generate a random 128-bit trace ID (32 hex chars).
20
+ */
21
+ function generateTraceId() {
22
+ const bytes = new Uint8Array(16);
23
+ crypto.getRandomValues(bytes);
24
+ return Array.from(bytes)
25
+ .map((b) => b.toString(16).padStart(2, "0"))
26
+ .join("");
27
+ }
28
+ /**
29
+ * Generate a random 64-bit span ID (16 hex chars).
30
+ */
31
+ function generateSpanId() {
32
+ const bytes = new Uint8Array(8);
33
+ crypto.getRandomValues(bytes);
34
+ return Array.from(bytes)
35
+ .map((b) => b.toString(16).padStart(2, "0"))
36
+ .join("");
37
+ }
38
+ // =============================================================================
39
+ // No-op Implementation
40
+ // =============================================================================
41
+ /**
42
+ * A no-op span that does nothing.
43
+ * Used when tracing is disabled.
44
+ */
45
+ const NOOP_SPAN = {
46
+ traceId: "00000000000000000000000000000000",
47
+ spanId: "0000000000000000",
48
+ name: "noop",
49
+ setAttribute: () => NOOP_SPAN,
50
+ setAttributes: () => NOOP_SPAN,
51
+ addEvent: () => NOOP_SPAN,
52
+ addLink: () => NOOP_SPAN,
53
+ setStatus: () => NOOP_SPAN,
54
+ recordException: () => NOOP_SPAN,
55
+ end: () => { },
56
+ getData: () => null,
57
+ isRecording: () => false,
58
+ };
59
+ // =============================================================================
60
+ // Implementation
61
+ // =============================================================================
62
+ /**
63
+ * Creates a span implementation.
64
+ *
65
+ * @internal
66
+ */
67
+ function createSpan(name, traceId, spanId, parentSpanId, kind, defaultAttributes, onEnd) {
68
+ const startTime = new Date();
69
+ const attributes = { ...defaultAttributes };
70
+ const events = [];
71
+ const links = [];
72
+ let status = { code: "unset" };
73
+ let ended = false;
74
+ let spanData = null;
75
+ return {
76
+ traceId,
77
+ spanId,
78
+ name,
79
+ setAttribute(key, value) {
80
+ if (!ended) {
81
+ attributes[key] = value;
82
+ }
83
+ return this;
84
+ },
85
+ setAttributes(attrs) {
86
+ if (!ended) {
87
+ Object.assign(attributes, attrs);
88
+ }
89
+ return this;
90
+ },
91
+ addEvent(eventName, attrs) {
92
+ if (!ended) {
93
+ events.push({
94
+ name: eventName,
95
+ timestamp: new Date().toISOString(),
96
+ attributes: attrs,
97
+ });
98
+ }
99
+ return this;
100
+ },
101
+ addLink(linkTraceId, linkSpanId, attrs) {
102
+ if (!ended) {
103
+ links.push({
104
+ traceId: linkTraceId,
105
+ spanId: linkSpanId,
106
+ attributes: attrs,
107
+ });
108
+ }
109
+ return this;
110
+ },
111
+ setStatus(code, message) {
112
+ if (!ended) {
113
+ status = { code, message };
114
+ }
115
+ return this;
116
+ },
117
+ recordException(error, attrs) {
118
+ if (!ended) {
119
+ events.push({
120
+ name: "exception",
121
+ timestamp: new Date().toISOString(),
122
+ attributes: {
123
+ "exception.type": error.name,
124
+ "exception.message": error.message,
125
+ "exception.stacktrace": error.stack ?? "",
126
+ ...attrs,
127
+ },
128
+ });
129
+ if (status.code === "unset") {
130
+ status = { code: "error", message: error.message };
131
+ }
132
+ }
133
+ return this;
134
+ },
135
+ end() {
136
+ if (!ended) {
137
+ ended = true;
138
+ const endTime = new Date();
139
+ spanData = {
140
+ traceId,
141
+ spanId,
142
+ parentSpanId,
143
+ name,
144
+ kind,
145
+ startTime: startTime.toISOString(),
146
+ endTime: endTime.toISOString(),
147
+ durationMs: endTime.getTime() - startTime.getTime(),
148
+ attributes,
149
+ events,
150
+ links,
151
+ status,
152
+ };
153
+ onEnd(spanData);
154
+ }
155
+ },
156
+ getData() {
157
+ return spanData;
158
+ },
159
+ isRecording() {
160
+ return !ended;
161
+ },
162
+ };
163
+ }
164
+ /**
165
+ * Creates a tracer for distributed tracing.
166
+ *
167
+ * @param options - Tracer options
168
+ * @returns A tracer instance
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const tracer = createTracer({
173
+ * name: "my-agent",
174
+ * exporters: [createConsoleSpanExporter()],
175
+ * });
176
+ *
177
+ * const span = tracer.startSpan("generate");
178
+ * try {
179
+ * const result = await agent.generate({ prompt: "Hello" });
180
+ * span.setAttribute("tokens", result.usage?.totalTokens ?? 0);
181
+ * span.setStatus("ok");
182
+ * } catch (error) {
183
+ * span.recordException(error as Error);
184
+ * } finally {
185
+ * span.end();
186
+ * }
187
+ * ```
188
+ *
189
+ * @category Observability
190
+ */
191
+ export function createTracer(options = {}) {
192
+ const { name = "agent", version = "1.0.0", defaultAttributes = {}, exporters = [], enabled = true, samplingRate = 1.0, } = options;
193
+ const pendingSpans = [];
194
+ let activeSpan = null;
195
+ /**
196
+ * Decide whether to sample this trace.
197
+ */
198
+ function shouldSample() {
199
+ return enabled && Math.random() < samplingRate;
200
+ }
201
+ /**
202
+ * Handle span end.
203
+ */
204
+ function onSpanEnd(data) {
205
+ pendingSpans.push(data);
206
+ if (activeSpan?.spanId === data.spanId) {
207
+ activeSpan = null;
208
+ }
209
+ }
210
+ const tracer = {
211
+ name,
212
+ enabled,
213
+ startSpan(spanName, opts = {}) {
214
+ if (!shouldSample()) {
215
+ return NOOP_SPAN;
216
+ }
217
+ const traceId = opts.parent?.traceId ?? generateTraceId();
218
+ const spanId = generateSpanId();
219
+ const parentSpanId = opts.parent?.spanId;
220
+ const kind = opts.kind ?? "internal";
221
+ const span = createSpan(spanName, traceId, spanId, parentSpanId, kind, {
222
+ ...defaultAttributes,
223
+ "service.name": name,
224
+ "service.version": version,
225
+ ...opts.attributes,
226
+ }, onSpanEnd);
227
+ // Add initial links
228
+ if (opts.links) {
229
+ for (const link of opts.links) {
230
+ span.addLink(link.traceId, link.spanId, link.attributes);
231
+ }
232
+ }
233
+ activeSpan = span;
234
+ return span;
235
+ },
236
+ async withSpan(spanName, fn, opts) {
237
+ const span = this.startSpan(spanName, opts);
238
+ try {
239
+ const result = await fn(span);
240
+ // Set status to ok before ending if not already set
241
+ if (span.isRecording()) {
242
+ span.setStatus("ok");
243
+ }
244
+ return result;
245
+ }
246
+ catch (error) {
247
+ span.recordException(error);
248
+ throw error;
249
+ }
250
+ finally {
251
+ span.end();
252
+ }
253
+ },
254
+ getActiveSpan() {
255
+ return activeSpan;
256
+ },
257
+ async flush() {
258
+ if (pendingSpans.length === 0) {
259
+ return;
260
+ }
261
+ const spansToExport = [...pendingSpans];
262
+ pendingSpans.length = 0;
263
+ await Promise.all(exporters.map((e) => Promise.resolve(e.export(spansToExport)).catch(() => {
264
+ // Silently ignore export errors
265
+ })));
266
+ },
267
+ async shutdown() {
268
+ await this.flush();
269
+ await Promise.all(exporters.map((e) => e.shutdown ? Promise.resolve(e.shutdown()).catch(() => { }) : Promise.resolve()));
270
+ },
271
+ };
272
+ return tracer;
273
+ }
274
+ // =============================================================================
275
+ // Exporters
276
+ // =============================================================================
277
+ /**
278
+ * Creates a console exporter for debugging.
279
+ *
280
+ * @returns A console span exporter
281
+ *
282
+ * @example
283
+ * ```typescript
284
+ * const tracer = createTracer({
285
+ * exporters: [createConsoleSpanExporter()],
286
+ * });
287
+ * ```
288
+ *
289
+ * @category Observability
290
+ */
291
+ export function createConsoleSpanExporter() {
292
+ return {
293
+ name: "console",
294
+ export(spans) {
295
+ for (const span of spans) {
296
+ const statusIcon = span.status.code === "ok" ? "✓" : span.status.code === "error" ? "✗" : "?";
297
+ console.log(`[Trace] ${statusIcon} ${span.name} (${span.durationMs}ms)`, `trace=${span.traceId.slice(0, 8)} span=${span.spanId.slice(0, 8)}`, Object.keys(span.attributes).length > 0 ? JSON.stringify(span.attributes) : "");
298
+ }
299
+ },
300
+ };
301
+ }
302
+ /**
303
+ * Creates a memory exporter that stores spans.
304
+ *
305
+ * @returns A memory span exporter with access to stored spans
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * const exporter = createMemorySpanExporter();
310
+ * const tracer = createTracer({ exporters: [exporter] });
311
+ *
312
+ * tracer.startSpan("test").end();
313
+ * await tracer.flush();
314
+ *
315
+ * console.log(exporter.spans);
316
+ * ```
317
+ *
318
+ * @category Observability
319
+ */
320
+ export function createMemorySpanExporter() {
321
+ const spans = [];
322
+ return {
323
+ name: "memory",
324
+ spans,
325
+ export(newSpans) {
326
+ spans.push(...newSpans);
327
+ },
328
+ clear() {
329
+ spans.length = 0;
330
+ },
331
+ };
332
+ }
333
+ /**
334
+ * Creates a callback exporter that invokes a function for each batch.
335
+ *
336
+ * @param callback - Function to call with spans
337
+ * @returns A callback span exporter
338
+ *
339
+ * @example
340
+ * ```typescript
341
+ * const exporter = createCallbackSpanExporter((spans) => {
342
+ * sendToJaeger(spans);
343
+ * });
344
+ * ```
345
+ *
346
+ * @category Observability
347
+ */
348
+ export function createCallbackSpanExporter(callback) {
349
+ return {
350
+ name: "callback",
351
+ export: callback,
352
+ };
353
+ }
354
+ /**
355
+ * Creates an OTLP-compatible exporter (OpenTelemetry Protocol).
356
+ *
357
+ * This exporter formats spans for OTLP collectors but does not
358
+ * include HTTP transport. Use with a custom callback for actual sending.
359
+ *
360
+ * @param options - Exporter options
361
+ * @returns An OTLP-compatible exporter
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * const exporter = createOTLPSpanExporter({
366
+ * onExport: async (payload) => {
367
+ * await fetch("http://collector:4318/v1/traces", {
368
+ * method: "POST",
369
+ * headers: { "Content-Type": "application/json" },
370
+ * body: JSON.stringify(payload),
371
+ * });
372
+ * },
373
+ * });
374
+ * ```
375
+ *
376
+ * @category Observability
377
+ */
378
+ export function createOTLPSpanExporter(options) {
379
+ const { serviceName = "agent", onExport } = options;
380
+ return {
381
+ name: "otlp",
382
+ async export(spans) {
383
+ // Convert to OTLP format
384
+ const payload = {
385
+ resourceSpans: [
386
+ {
387
+ resource: {
388
+ attributes: [{ key: "service.name", value: { stringValue: serviceName } }],
389
+ },
390
+ scopeSpans: [
391
+ {
392
+ scope: { name: serviceName },
393
+ spans: spans.map((span) => ({
394
+ traceId: span.traceId,
395
+ spanId: span.spanId,
396
+ parentSpanId: span.parentSpanId,
397
+ name: span.name,
398
+ kind: spanKindToOTLP(span.kind),
399
+ startTimeUnixNano: new Date(span.startTime).getTime() * 1_000_000,
400
+ endTimeUnixNano: new Date(span.endTime).getTime() * 1_000_000,
401
+ attributes: Object.entries(span.attributes).map(([k, v]) => ({
402
+ key: k,
403
+ value: attributeValueToOTLP(v),
404
+ })),
405
+ events: span.events.map((e) => ({
406
+ name: e.name,
407
+ timeUnixNano: new Date(e.timestamp).getTime() * 1_000_000,
408
+ attributes: e.attributes
409
+ ? Object.entries(e.attributes).map(([k, v]) => ({
410
+ key: k,
411
+ value: attributeValueToOTLP(v),
412
+ }))
413
+ : [],
414
+ })),
415
+ status: {
416
+ code: statusCodeToOTLP(span.status.code),
417
+ message: span.status.message,
418
+ },
419
+ })),
420
+ },
421
+ ],
422
+ },
423
+ ],
424
+ };
425
+ await onExport(payload);
426
+ },
427
+ };
428
+ }
429
+ /**
430
+ * Convert span kind to OTLP value.
431
+ * @internal
432
+ */
433
+ function spanKindToOTLP(kind) {
434
+ const mapping = {
435
+ internal: 1,
436
+ server: 2,
437
+ client: 3,
438
+ producer: 4,
439
+ consumer: 5,
440
+ };
441
+ return mapping[kind];
442
+ }
443
+ /**
444
+ * Convert status code to OTLP value.
445
+ * @internal
446
+ */
447
+ function statusCodeToOTLP(code) {
448
+ const mapping = {
449
+ unset: 0,
450
+ ok: 1,
451
+ error: 2,
452
+ };
453
+ return mapping[code];
454
+ }
455
+ /**
456
+ * Convert attribute value to OTLP format.
457
+ * @internal
458
+ */
459
+ function attributeValueToOTLP(value) {
460
+ if (typeof value === "string") {
461
+ return { stringValue: value };
462
+ }
463
+ else if (typeof value === "number") {
464
+ return Number.isInteger(value) ? { intValue: value } : { doubleValue: value };
465
+ }
466
+ else if (typeof value === "boolean") {
467
+ return { boolValue: value };
468
+ }
469
+ else if (Array.isArray(value)) {
470
+ return {
471
+ arrayValue: {
472
+ values: value.map((v) => attributeValueToOTLP(v)),
473
+ },
474
+ };
475
+ }
476
+ return { stringValue: String(value) };
477
+ }
478
+ // =============================================================================
479
+ // Default Tracer
480
+ // =============================================================================
481
+ /**
482
+ * The default global tracer instance.
483
+ *
484
+ * @category Observability
485
+ */
486
+ export let defaultTracer = createTracer({ name: "agent-sdk", enabled: false });
487
+ /**
488
+ * Sets the default global tracer.
489
+ *
490
+ * @param tracer - The tracer to use as default
491
+ *
492
+ * @category Observability
493
+ */
494
+ export function setDefaultTracer(tracer) {
495
+ defaultTracer = tracer;
496
+ }
497
+ // =============================================================================
498
+ // Semantic Conventions
499
+ // =============================================================================
500
+ /**
501
+ * Semantic attribute keys for AI/LLM operations.
502
+ *
503
+ * Based on emerging OpenTelemetry semantic conventions for GenAI.
504
+ *
505
+ * @category Observability
506
+ */
507
+ export const SemanticAttributes = {
508
+ // General
509
+ SERVICE_NAME: "service.name",
510
+ SERVICE_VERSION: "service.version",
511
+ // LLM/GenAI
512
+ GEN_AI_SYSTEM: "gen_ai.system",
513
+ GEN_AI_REQUEST_MODEL: "gen_ai.request.model",
514
+ GEN_AI_REQUEST_MAX_TOKENS: "gen_ai.request.max_tokens",
515
+ GEN_AI_REQUEST_TEMPERATURE: "gen_ai.request.temperature",
516
+ GEN_AI_RESPONSE_MODEL: "gen_ai.response.model",
517
+ GEN_AI_RESPONSE_FINISH_REASONS: "gen_ai.response.finish_reasons",
518
+ GEN_AI_USAGE_INPUT_TOKENS: "gen_ai.usage.input_tokens",
519
+ GEN_AI_USAGE_OUTPUT_TOKENS: "gen_ai.usage.output_tokens",
520
+ GEN_AI_USAGE_TOTAL_TOKENS: "gen_ai.usage.total_tokens",
521
+ // Agent-specific
522
+ AGENT_ID: "agent.id",
523
+ AGENT_NAME: "agent.name",
524
+ AGENT_TOOLS: "agent.tools",
525
+ AGENT_STEP: "agent.step",
526
+ // Tool
527
+ TOOL_NAME: "tool.name",
528
+ TOOL_INPUT: "tool.input",
529
+ TOOL_OUTPUT: "tool.output",
530
+ // Subagent
531
+ SUBAGENT_ID: "subagent.id",
532
+ SUBAGENT_TYPE: "subagent.type",
533
+ SUBAGENT_PROMPT: "subagent.prompt",
534
+ // Error
535
+ EXCEPTION_TYPE: "exception.type",
536
+ EXCEPTION_MESSAGE: "exception.message",
537
+ EXCEPTION_STACKTRACE: "exception.stacktrace",
538
+ };
539
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/observability/tracing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Plugin definition helpers.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { AgentPlugin, PluginOptions } from "./types.js";
7
+ /**
8
+ * Creates a plugin that extends agent functionality.
9
+ *
10
+ * Plugins bundle related tools and skills together for easy reuse
11
+ * across multiple agents. They can also include setup logic that runs when
12
+ * the plugin is loaded into an agent.
13
+ *
14
+ * @param options - Configuration options for the plugin
15
+ * @returns A plugin definition object
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { definePlugin } from "@lleverage-ai/agent-sdk";
20
+ * import { tool } from "ai";
21
+ * import { z } from "zod";
22
+ *
23
+ * const gitPlugin = definePlugin({
24
+ * name: "git",
25
+ * description: "Git operations for version control",
26
+ * tools: {
27
+ * gitStatus: tool({
28
+ * description: "Get the current git status",
29
+ * inputSchema: z.object({}),
30
+ * execute: async () => {
31
+ * // Run git status...
32
+ * return "On branch main, nothing to commit";
33
+ * },
34
+ * }),
35
+ * gitCommit: tool({
36
+ * description: "Create a git commit",
37
+ * inputSchema: z.object({
38
+ * message: z.string().describe("Commit message"),
39
+ * }),
40
+ * execute: async ({ message }) => {
41
+ * // Run git commit...
42
+ * return `Committed with message: ${message}`;
43
+ * },
44
+ * }),
45
+ * },
46
+ * setup: async (agent) => {
47
+ * console.log(`Git plugin loaded into agent ${agent.id}`);
48
+ * },
49
+ * });
50
+ * ```
51
+ *
52
+ * @category Plugins
53
+ */
54
+ export declare function definePlugin(options: PluginOptions): AgentPlugin;
55
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAShE"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Plugin definition helpers.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ /**
7
+ * Creates a plugin that extends agent functionality.
8
+ *
9
+ * Plugins bundle related tools and skills together for easy reuse
10
+ * across multiple agents. They can also include setup logic that runs when
11
+ * the plugin is loaded into an agent.
12
+ *
13
+ * @param options - Configuration options for the plugin
14
+ * @returns A plugin definition object
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { definePlugin } from "@lleverage-ai/agent-sdk";
19
+ * import { tool } from "ai";
20
+ * import { z } from "zod";
21
+ *
22
+ * const gitPlugin = definePlugin({
23
+ * name: "git",
24
+ * description: "Git operations for version control",
25
+ * tools: {
26
+ * gitStatus: tool({
27
+ * description: "Get the current git status",
28
+ * inputSchema: z.object({}),
29
+ * execute: async () => {
30
+ * // Run git status...
31
+ * return "On branch main, nothing to commit";
32
+ * },
33
+ * }),
34
+ * gitCommit: tool({
35
+ * description: "Create a git commit",
36
+ * inputSchema: z.object({
37
+ * message: z.string().describe("Commit message"),
38
+ * }),
39
+ * execute: async ({ message }) => {
40
+ * // Run git commit...
41
+ * return `Committed with message: ${message}`;
42
+ * },
43
+ * }),
44
+ * },
45
+ * setup: async (agent) => {
46
+ * console.log(`Git plugin loaded into agent ${agent.id}`);
47
+ * },
48
+ * });
49
+ * ```
50
+ *
51
+ * @category Plugins
52
+ */
53
+ export function definePlugin(options) {
54
+ return {
55
+ name: options.name,
56
+ description: options.description,
57
+ setup: options.setup,
58
+ tools: options.tools,
59
+ mcpServer: options.mcpServer,
60
+ skills: options.skills,
61
+ };
62
+ }
63
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Preset bundles for quick agent setup.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export { createProductionAgent, createSecureProductionAgent, DEFAULT_BLOCKED_INPUT_PATTERNS, DEFAULT_BLOCKED_OUTPUT_PATTERNS, type ProductionAgentOptions, type ProductionAgentResult, type SecureProductionAgentOptions, } from "./production.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,GAClC,MAAM,iBAAiB,CAAC"}