@artinet/sdk 0.5.18 → 0.6.0-preview.2

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 (434) hide show
  1. package/README.md +36 -617
  2. package/dist/browser/browser.d.ts +1 -1
  3. package/dist/browser/browser.js +1 -1
  4. package/dist/browser/client/a2a-client.d.ts +19 -18
  5. package/dist/browser/client/a2a-client.js +20 -8
  6. package/dist/browser/config/index.d.ts +158 -0
  7. package/dist/browser/config/index.js +155 -0
  8. package/dist/browser/config/observability.d.ts +119 -0
  9. package/dist/browser/config/observability.js +35 -0
  10. package/dist/browser/create/agentcard-builder.d.ts +47 -0
  11. package/dist/browser/create/agentcard-builder.js +65 -0
  12. package/dist/browser/create/base.d.ts +4 -0
  13. package/dist/browser/create/describe.d.ts +8 -0
  14. package/dist/browser/create/describe.js +8 -0
  15. package/dist/browser/create/message-builder.d.ts +78 -0
  16. package/dist/browser/create/message-builder.js +108 -0
  17. package/dist/browser/create/part-builder.d.ts +60 -0
  18. package/dist/browser/create/part-builder.js +81 -0
  19. package/dist/browser/create/task-builder.d.ts +251 -0
  20. package/dist/browser/create/task-builder.js +379 -0
  21. package/dist/browser/transport/rpc/parser.d.ts +2 -2
  22. package/dist/browser/transport/rpc/parser.js +7 -6
  23. package/dist/browser/transport/rpc/rpc-client.d.ts +5 -5
  24. package/dist/browser/transport/rpc/rpc-client.js +6 -6
  25. package/dist/browser/transport/streaming/event-stream.d.ts +3 -3
  26. package/dist/browser/transport/streaming/event-stream.js +11 -10
  27. package/dist/browser/types/a2a/a2a.d.ts +382 -0
  28. package/dist/browser/types/a2a/a2a.js +14 -0
  29. package/dist/browser/types/a2a/index.d.ts +5 -0
  30. package/dist/browser/types/a2a/index.js +1 -0
  31. package/dist/browser/types/{interfaces/client.d.ts → client.d.ts} +25 -27
  32. package/dist/browser/types/core/core.d.ts +31 -0
  33. package/dist/browser/types/core/index.d.ts +1 -0
  34. package/dist/browser/types/core/index.js +1 -0
  35. package/dist/browser/types/index.d.ts +6 -3
  36. package/dist/browser/types/index.js +6 -3
  37. package/dist/browser/types/mcp/index.d.ts +1 -0
  38. package/dist/browser/types/mcp/index.js +1 -0
  39. package/dist/{types/interfaces/services/mcp/service.d.ts → browser/types/mcp/mcp.d.ts} +4 -3
  40. package/dist/browser/types/{interfaces/services/a2a/builder.js → mcp/mcp.js} +1 -1
  41. package/dist/browser/types/storage.d.ts +21 -0
  42. package/dist/browser/utils/common/constants.d.ts +2 -7
  43. package/dist/browser/utils/common/constants.js +5 -32
  44. package/dist/browser/utils/common/errors.d.ts +74 -18
  45. package/dist/browser/utils/common/errors.js +81 -28
  46. package/dist/browser/utils/common/utils.d.ts +23 -0
  47. package/dist/browser/utils/common/utils.js +32 -0
  48. package/dist/client/a2a-client.d.ts +19 -18
  49. package/dist/client/a2a-client.js +20 -8
  50. package/dist/config/default.d.ts +50 -0
  51. package/dist/config/default.js +62 -0
  52. package/dist/config/index.d.ts +158 -0
  53. package/dist/config/index.js +155 -0
  54. package/dist/config/observability.d.ts +119 -0
  55. package/dist/config/observability.js +35 -0
  56. package/dist/create/agent-builder.d.ts +77 -0
  57. package/dist/create/agent-builder.js +20 -0
  58. package/dist/create/agentcard-builder.d.ts +47 -0
  59. package/dist/create/agentcard-builder.js +66 -0
  60. package/dist/create/base.d.ts +4 -0
  61. package/dist/create/base.js +1 -0
  62. package/dist/create/create.d.ts +762 -0
  63. package/dist/create/create.js +556 -0
  64. package/dist/create/describe.d.ts +8 -0
  65. package/dist/create/describe.js +8 -0
  66. package/dist/create/index.d.ts +4 -0
  67. package/dist/create/index.js +4 -0
  68. package/dist/create/message-builder.d.ts +78 -0
  69. package/dist/create/message-builder.js +110 -0
  70. package/dist/create/part-builder.d.ts +60 -0
  71. package/dist/create/part-builder.js +84 -0
  72. package/dist/create/status-builder.d.ts +26 -0
  73. package/dist/create/status-builder.js +46 -0
  74. package/dist/create/task-builder.d.ts +251 -0
  75. package/dist/create/task-builder.js +384 -0
  76. package/dist/create/transform.d.ts +16 -0
  77. package/dist/create/transform.js +106 -0
  78. package/dist/extensions/otel.d.ts +98 -0
  79. package/dist/extensions/otel.js +190 -0
  80. package/dist/extensions/pino.d.ts +44 -0
  81. package/dist/extensions/pino.js +107 -0
  82. package/dist/extensions/winston.d.ts +47 -0
  83. package/dist/extensions/winston.js +114 -0
  84. package/dist/index.d.ts +4 -0
  85. package/dist/index.js +4 -0
  86. package/dist/server/express/errors.js +7 -11
  87. package/dist/server/express/middeware.d.ts +2 -2
  88. package/dist/server/express/middeware.js +26 -40
  89. package/dist/server/express/server.d.ts +14 -56
  90. package/dist/server/express/server.js +46 -35
  91. package/dist/services/a2a/execute.d.ts +11 -0
  92. package/dist/services/a2a/execute.js +32 -0
  93. package/dist/services/a2a/factory/context.d.ts +15 -128
  94. package/dist/services/a2a/factory/context.js +30 -136
  95. package/dist/services/a2a/factory/handler.d.ts +6 -0
  96. package/dist/services/a2a/factory/handler.js +14 -0
  97. package/dist/services/a2a/factory/index.d.ts +1 -3
  98. package/dist/services/a2a/factory/index.js +1 -3
  99. package/dist/services/a2a/factory/service.d.ts +20 -7
  100. package/dist/services/a2a/factory/service.js +5 -5
  101. package/dist/services/a2a/factory/state-machine.d.ts +11 -0
  102. package/dist/services/a2a/factory/state-machine.js +88 -0
  103. package/dist/services/a2a/handlers/artifact.d.ts +7 -0
  104. package/dist/services/a2a/handlers/artifact.js +28 -0
  105. package/dist/services/a2a/handlers/cancel-task.d.ts +11 -0
  106. package/dist/services/a2a/handlers/cancel-task.js +35 -0
  107. package/dist/services/a2a/handlers/get-task.d.ts +11 -0
  108. package/dist/services/a2a/handlers/get-task.js +13 -0
  109. package/dist/services/a2a/handlers/resubscribe-task.d.ts +19 -0
  110. package/dist/services/a2a/handlers/resubscribe-task.js +59 -0
  111. package/dist/services/a2a/handlers/send-message.d.ts +11 -0
  112. package/dist/services/a2a/handlers/send-message.js +31 -0
  113. package/dist/services/a2a/handlers/stream-message.d.ts +19 -0
  114. package/dist/services/a2a/handlers/stream-message.js +23 -0
  115. package/dist/services/a2a/handlers/update.d.ts +17 -0
  116. package/dist/services/a2a/handlers/update.js +119 -0
  117. package/dist/services/a2a/helpers/content.d.ts +6 -2
  118. package/dist/services/a2a/helpers/content.js +9 -1
  119. package/dist/services/a2a/helpers/history.d.ts +6 -2
  120. package/dist/services/a2a/helpers/history.js +4 -0
  121. package/dist/services/a2a/helpers/index.d.ts +3 -3
  122. package/dist/services/a2a/helpers/index.js +3 -3
  123. package/dist/services/a2a/helpers/part.d.ts +9 -9
  124. package/dist/services/a2a/helpers/references.d.ts +6 -0
  125. package/dist/services/a2a/helpers/references.js +22 -0
  126. package/dist/services/a2a/index.d.ts +9 -5
  127. package/dist/services/a2a/index.js +8 -5
  128. package/dist/services/a2a/managers.d.ts +23 -0
  129. package/dist/services/a2a/managers.js +101 -0
  130. package/dist/services/a2a/messenger.d.ts +35 -0
  131. package/dist/services/{core/managers/command.js → a2a/messenger.js} +27 -31
  132. package/dist/services/a2a/service.d.ts +45 -372
  133. package/dist/services/a2a/service.js +232 -84
  134. package/dist/services/a2a/state-machine.d.ts +18 -0
  135. package/dist/services/a2a/state-machine.js +78 -0
  136. package/dist/services/a2a/streams.d.ts +22 -0
  137. package/dist/services/a2a/streams.js +98 -0
  138. package/dist/services/core/index.d.ts +1 -2
  139. package/dist/services/core/index.js +1 -2
  140. package/dist/services/core/manager.d.ts +15 -0
  141. package/dist/services/core/manager.js +42 -0
  142. package/dist/services/mcp/service.d.ts +11 -15
  143. package/dist/services/mcp/service.js +16 -15
  144. package/dist/transport/index.d.ts +0 -1
  145. package/dist/transport/index.js +1 -1
  146. package/dist/transport/rpc/parser.d.ts +2 -2
  147. package/dist/transport/rpc/parser.js +7 -6
  148. package/dist/transport/rpc/rpc-client.d.ts +5 -5
  149. package/dist/transport/rpc/rpc-client.js +6 -6
  150. package/dist/transport/streaming/event-stream.d.ts +3 -3
  151. package/dist/transport/streaming/event-stream.js +11 -10
  152. package/dist/transport/trpc/a2a/factory/router.d.ts +479 -871
  153. package/dist/transport/trpc/a2a/factory/router.js +2 -2
  154. package/dist/transport/trpc/a2a/routes/info.d.ts +108 -8
  155. package/dist/transport/trpc/a2a/routes/info.js +6 -2
  156. package/dist/transport/trpc/a2a/routes/message/route.d.ts +113 -162
  157. package/dist/transport/trpc/a2a/routes/message/route.js +7 -13
  158. package/dist/transport/trpc/a2a/routes/tasks/route.d.ts +114 -212
  159. package/dist/transport/trpc/a2a/routes/tasks/route.js +16 -19
  160. package/dist/transport/trpc/a2a/trpc.d.ts +9 -253
  161. package/dist/types/a2a/a2a.d.ts +382 -0
  162. package/dist/types/a2a/a2a.js +14 -0
  163. package/dist/types/a2a/index.d.ts +5 -0
  164. package/dist/types/a2a/index.js +1 -0
  165. package/dist/types/{interfaces/client.d.ts → client.d.ts} +25 -27
  166. package/dist/types/core/core.d.ts +31 -0
  167. package/dist/types/core/core.js +1 -0
  168. package/dist/types/core/index.d.ts +1 -0
  169. package/dist/types/core/index.js +1 -0
  170. package/dist/types/index.d.ts +6 -3
  171. package/dist/types/index.js +6 -3
  172. package/dist/types/mcp/index.d.ts +1 -0
  173. package/dist/types/mcp/index.js +1 -0
  174. package/dist/{browser/types/interfaces/services/mcp/service.d.ts → types/mcp/mcp.d.ts} +4 -3
  175. package/dist/{browser/types/interfaces/services/a2a/context.js → types/mcp/mcp.js} +1 -1
  176. package/dist/types/storage.d.ts +21 -0
  177. package/dist/utils/common/constants.d.ts +2 -7
  178. package/dist/utils/common/constants.js +5 -32
  179. package/dist/utils/common/errors.d.ts +74 -18
  180. package/dist/utils/common/errors.js +81 -28
  181. package/dist/utils/common/parse.d.ts +7 -0
  182. package/dist/utils/common/parse.js +14 -0
  183. package/dist/utils/common/schema-validation.d.ts +2 -2
  184. package/dist/utils/common/schema-validation.js +7 -7
  185. package/dist/utils/common/utils.d.ts +23 -0
  186. package/dist/utils/common/utils.js +32 -0
  187. package/dist/utils/common/zAsyncIterable-v3.d.ts +1 -1
  188. package/dist/utils/common/zAsyncIterable-v3.js +2 -1
  189. package/dist/utils/index.d.ts +2 -3
  190. package/dist/utils/index.js +2 -3
  191. package/dist/utils/storage/file.d.ts +8 -17
  192. package/dist/utils/storage/file.js +44 -73
  193. package/package.json +76 -13
  194. package/dist/browser/services/a2a/helpers/message-builder.d.ts +0 -12
  195. package/dist/browser/services/a2a/helpers/message-builder.js +0 -61
  196. package/dist/browser/types/ext.d.ts +0 -13
  197. package/dist/browser/types/ext.js +0 -10
  198. package/dist/browser/types/interfaces/index.d.ts +0 -3
  199. package/dist/browser/types/interfaces/index.js +0 -3
  200. package/dist/browser/types/interfaces/services/a2a/builder.d.ts +0 -37
  201. package/dist/browser/types/interfaces/services/a2a/context.d.ts +0 -162
  202. package/dist/browser/types/interfaces/services/a2a/engine.d.ts +0 -7
  203. package/dist/browser/types/interfaces/services/a2a/engine.js +0 -5
  204. package/dist/browser/types/interfaces/services/a2a/index.d.ts +0 -5
  205. package/dist/browser/types/interfaces/services/a2a/index.js +0 -5
  206. package/dist/browser/types/interfaces/services/a2a/legacy.d.ts +0 -93
  207. package/dist/browser/types/interfaces/services/a2a/legacy.js +0 -5
  208. package/dist/browser/types/interfaces/services/a2a/service.d.ts +0 -413
  209. package/dist/browser/types/interfaces/services/a2a/service.js +0 -5
  210. package/dist/browser/types/interfaces/services/core/context/command.d.ts +0 -25
  211. package/dist/browser/types/interfaces/services/core/context/command.js +0 -5
  212. package/dist/browser/types/interfaces/services/core/context/context.d.ts +0 -207
  213. package/dist/browser/types/interfaces/services/core/context/context.js +0 -5
  214. package/dist/browser/types/interfaces/services/core/context/index.d.ts +0 -3
  215. package/dist/browser/types/interfaces/services/core/context/index.js +0 -3
  216. package/dist/browser/types/interfaces/services/core/context/types.d.ts +0 -11
  217. package/dist/browser/types/interfaces/services/core/context/types.js +0 -5
  218. package/dist/browser/types/interfaces/services/core/execution/engine.d.ts +0 -106
  219. package/dist/browser/types/interfaces/services/core/execution/engine.js +0 -5
  220. package/dist/browser/types/interfaces/services/core/execution/environment.d.ts +0 -11
  221. package/dist/browser/types/interfaces/services/core/execution/environment.js +0 -5
  222. package/dist/browser/types/interfaces/services/core/execution/execute.d.ts +0 -7
  223. package/dist/browser/types/interfaces/services/core/execution/execute.js +0 -5
  224. package/dist/browser/types/interfaces/services/core/execution/index.d.ts +0 -3
  225. package/dist/browser/types/interfaces/services/core/execution/index.js +0 -3
  226. package/dist/browser/types/interfaces/services/core/index.d.ts +0 -4
  227. package/dist/browser/types/interfaces/services/core/index.js +0 -4
  228. package/dist/browser/types/interfaces/services/core/managers/cancellation.d.ts +0 -9
  229. package/dist/browser/types/interfaces/services/core/managers/cancellation.js +0 -5
  230. package/dist/browser/types/interfaces/services/core/managers/connection.d.ts +0 -9
  231. package/dist/browser/types/interfaces/services/core/managers/connection.js +0 -5
  232. package/dist/browser/types/interfaces/services/core/managers/context.d.ts +0 -17
  233. package/dist/browser/types/interfaces/services/core/managers/context.js +0 -5
  234. package/dist/browser/types/interfaces/services/core/managers/event.d.ts +0 -328
  235. package/dist/browser/types/interfaces/services/core/managers/event.js +0 -5
  236. package/dist/browser/types/interfaces/services/core/managers/index.d.ts +0 -6
  237. package/dist/browser/types/interfaces/services/core/managers/index.js +0 -6
  238. package/dist/browser/types/interfaces/services/core/managers/stream.d.ts +0 -217
  239. package/dist/browser/types/interfaces/services/core/managers/stream.js +0 -5
  240. package/dist/browser/types/interfaces/services/core/managers/task.d.ts +0 -9
  241. package/dist/browser/types/interfaces/services/core/service.d.ts +0 -115
  242. package/dist/browser/types/interfaces/services/core/service.js +0 -5
  243. package/dist/browser/types/interfaces/services/index.d.ts +0 -4
  244. package/dist/browser/types/interfaces/services/index.js +0 -4
  245. package/dist/browser/types/interfaces/services/mcp/index.d.ts +0 -1
  246. package/dist/browser/types/interfaces/services/mcp/index.js +0 -1
  247. package/dist/browser/types/interfaces/services/mcp/service.js +0 -5
  248. package/dist/browser/types/interfaces/storage.d.ts +0 -8
  249. package/dist/browser/types/schemas/a2a/agent.d.ts +0 -2583
  250. package/dist/browser/types/schemas/a2a/agent.js +0 -323
  251. package/dist/browser/types/schemas/a2a/auth.d.ts +0 -908
  252. package/dist/browser/types/schemas/a2a/auth.js +0 -283
  253. package/dist/browser/types/schemas/a2a/error.d.ts +0 -396
  254. package/dist/browser/types/schemas/a2a/error.js +0 -163
  255. package/dist/browser/types/schemas/a2a/index.d.ts +0 -11
  256. package/dist/browser/types/schemas/a2a/index.js +0 -11
  257. package/dist/browser/types/schemas/a2a/kind.d.ts +0 -11
  258. package/dist/browser/types/schemas/a2a/kind.js +0 -20
  259. package/dist/browser/types/schemas/a2a/message.d.ts +0 -10343
  260. package/dist/browser/types/schemas/a2a/message.js +0 -130
  261. package/dist/browser/types/schemas/a2a/notification.d.ts +0 -1517
  262. package/dist/browser/types/schemas/a2a/notification.js +0 -203
  263. package/dist/browser/types/schemas/a2a/parameters.d.ts +0 -956
  264. package/dist/browser/types/schemas/a2a/parameters.js +0 -241
  265. package/dist/browser/types/schemas/a2a/protocol.d.ts +0 -14363
  266. package/dist/browser/types/schemas/a2a/protocol.js +0 -59
  267. package/dist/browser/types/schemas/a2a/rpc.d.ts +0 -182
  268. package/dist/browser/types/schemas/a2a/rpc.js +0 -126
  269. package/dist/browser/types/schemas/a2a/task.d.ts +0 -5886
  270. package/dist/browser/types/schemas/a2a/task.js +0 -134
  271. package/dist/browser/types/schemas/a2a/transport.d.ts +0 -31
  272. package/dist/browser/types/schemas/a2a/transport.js +0 -28
  273. package/dist/browser/types/schemas/index.d.ts +0 -1
  274. package/dist/browser/types/schemas/index.js +0 -1
  275. package/dist/browser/utils/logging/index.d.ts +0 -2
  276. package/dist/browser/utils/logging/index.js +0 -2
  277. package/dist/browser/utils/logging/log.d.ts +0 -33
  278. package/dist/browser/utils/logging/log.js +0 -75
  279. package/dist/browser/utils/logging/logger.d.ts +0 -18
  280. package/dist/browser/utils/logging/logger.js +0 -18
  281. package/dist/services/a2a/factory/builder.d.ts +0 -351
  282. package/dist/services/a2a/factory/builder.js +0 -365
  283. package/dist/services/a2a/factory/event.d.ts +0 -58
  284. package/dist/services/a2a/factory/event.js +0 -177
  285. package/dist/services/a2a/factory/method.d.ts +0 -6
  286. package/dist/services/a2a/factory/method.js +0 -14
  287. package/dist/services/a2a/helpers/agentcard-builder.d.ts +0 -7
  288. package/dist/services/a2a/helpers/agentcard-builder.js +0 -23
  289. package/dist/services/a2a/helpers/message-builder.d.ts +0 -12
  290. package/dist/services/a2a/helpers/message-builder.js +0 -61
  291. package/dist/services/a2a/managers/cancellation.d.ts +0 -11
  292. package/dist/services/a2a/managers/cancellation.js +0 -16
  293. package/dist/services/a2a/managers/connection.d.ts +0 -11
  294. package/dist/services/a2a/managers/connection.js +0 -16
  295. package/dist/services/a2a/managers/context.d.ts +0 -11
  296. package/dist/services/a2a/managers/context.js +0 -16
  297. package/dist/services/a2a/managers/index.d.ts +0 -5
  298. package/dist/services/a2a/managers/index.js +0 -5
  299. package/dist/services/a2a/managers/task.d.ts +0 -11
  300. package/dist/services/a2a/managers/task.js +0 -16
  301. package/dist/services/a2a/methods/cancel-task.d.ts +0 -7
  302. package/dist/services/a2a/methods/cancel-task.js +0 -43
  303. package/dist/services/a2a/methods/get-task.d.ts +0 -112
  304. package/dist/services/a2a/methods/get-task.js +0 -16
  305. package/dist/services/a2a/methods/resubscribe-task.d.ts +0 -7
  306. package/dist/services/a2a/methods/resubscribe-task.js +0 -80
  307. package/dist/services/a2a/methods/send-message.d.ts +0 -7
  308. package/dist/services/a2a/methods/send-message.js +0 -36
  309. package/dist/services/a2a/methods/stream-message.d.ts +0 -8
  310. package/dist/services/a2a/methods/stream-message.js +0 -21
  311. package/dist/services/a2a/state/index.d.ts +0 -3
  312. package/dist/services/a2a/state/index.js +0 -3
  313. package/dist/services/a2a/state/load.d.ts +0 -14
  314. package/dist/services/a2a/state/load.js +0 -71
  315. package/dist/services/a2a/state/process.d.ts +0 -7
  316. package/dist/services/a2a/state/process.js +0 -13
  317. package/dist/services/a2a/state/update/artifact.d.ts +0 -10
  318. package/dist/services/a2a/state/update/artifact.js +0 -39
  319. package/dist/services/a2a/state/update/index.d.ts +0 -2
  320. package/dist/services/a2a/state/update/index.js +0 -2
  321. package/dist/services/a2a/state/update/update.d.ts +0 -23
  322. package/dist/services/a2a/state/update/update.js +0 -123
  323. package/dist/services/core/execution/execute.d.ts +0 -6
  324. package/dist/services/core/execution/execute.js +0 -25
  325. package/dist/services/core/execution/index.d.ts +0 -1
  326. package/dist/services/core/execution/index.js +0 -1
  327. package/dist/services/core/managers/command.d.ts +0 -39
  328. package/dist/services/core/managers/event.d.ts +0 -18
  329. package/dist/services/core/managers/event.js +0 -56
  330. package/dist/services/core/managers/index.d.ts +0 -3
  331. package/dist/services/core/managers/index.js +0 -3
  332. package/dist/services/core/managers/stream.d.ts +0 -20
  333. package/dist/services/core/managers/stream.js +0 -77
  334. package/dist/types/ext.d.ts +0 -13
  335. package/dist/types/ext.js +0 -10
  336. package/dist/types/interfaces/index.d.ts +0 -3
  337. package/dist/types/interfaces/index.js +0 -3
  338. package/dist/types/interfaces/services/a2a/builder.d.ts +0 -37
  339. package/dist/types/interfaces/services/a2a/builder.js +0 -5
  340. package/dist/types/interfaces/services/a2a/context.d.ts +0 -162
  341. package/dist/types/interfaces/services/a2a/context.js +0 -5
  342. package/dist/types/interfaces/services/a2a/engine.d.ts +0 -7
  343. package/dist/types/interfaces/services/a2a/engine.js +0 -5
  344. package/dist/types/interfaces/services/a2a/index.d.ts +0 -5
  345. package/dist/types/interfaces/services/a2a/index.js +0 -5
  346. package/dist/types/interfaces/services/a2a/legacy.d.ts +0 -93
  347. package/dist/types/interfaces/services/a2a/legacy.js +0 -5
  348. package/dist/types/interfaces/services/a2a/service.d.ts +0 -413
  349. package/dist/types/interfaces/services/a2a/service.js +0 -5
  350. package/dist/types/interfaces/services/core/context/command.d.ts +0 -25
  351. package/dist/types/interfaces/services/core/context/command.js +0 -5
  352. package/dist/types/interfaces/services/core/context/context.d.ts +0 -207
  353. package/dist/types/interfaces/services/core/context/context.js +0 -5
  354. package/dist/types/interfaces/services/core/context/index.d.ts +0 -3
  355. package/dist/types/interfaces/services/core/context/index.js +0 -3
  356. package/dist/types/interfaces/services/core/context/types.d.ts +0 -11
  357. package/dist/types/interfaces/services/core/context/types.js +0 -5
  358. package/dist/types/interfaces/services/core/execution/engine.d.ts +0 -106
  359. package/dist/types/interfaces/services/core/execution/engine.js +0 -5
  360. package/dist/types/interfaces/services/core/execution/environment.d.ts +0 -11
  361. package/dist/types/interfaces/services/core/execution/environment.js +0 -5
  362. package/dist/types/interfaces/services/core/execution/execute.d.ts +0 -7
  363. package/dist/types/interfaces/services/core/execution/execute.js +0 -5
  364. package/dist/types/interfaces/services/core/execution/index.d.ts +0 -3
  365. package/dist/types/interfaces/services/core/execution/index.js +0 -3
  366. package/dist/types/interfaces/services/core/index.d.ts +0 -4
  367. package/dist/types/interfaces/services/core/index.js +0 -4
  368. package/dist/types/interfaces/services/core/managers/cancellation.d.ts +0 -9
  369. package/dist/types/interfaces/services/core/managers/cancellation.js +0 -5
  370. package/dist/types/interfaces/services/core/managers/connection.d.ts +0 -9
  371. package/dist/types/interfaces/services/core/managers/connection.js +0 -5
  372. package/dist/types/interfaces/services/core/managers/context.d.ts +0 -17
  373. package/dist/types/interfaces/services/core/managers/context.js +0 -5
  374. package/dist/types/interfaces/services/core/managers/event.d.ts +0 -328
  375. package/dist/types/interfaces/services/core/managers/event.js +0 -5
  376. package/dist/types/interfaces/services/core/managers/index.d.ts +0 -6
  377. package/dist/types/interfaces/services/core/managers/index.js +0 -6
  378. package/dist/types/interfaces/services/core/managers/stream.d.ts +0 -217
  379. package/dist/types/interfaces/services/core/managers/stream.js +0 -5
  380. package/dist/types/interfaces/services/core/managers/task.d.ts +0 -9
  381. package/dist/types/interfaces/services/core/service.d.ts +0 -115
  382. package/dist/types/interfaces/services/core/service.js +0 -5
  383. package/dist/types/interfaces/services/index.d.ts +0 -4
  384. package/dist/types/interfaces/services/index.js +0 -4
  385. package/dist/types/interfaces/services/mcp/index.d.ts +0 -1
  386. package/dist/types/interfaces/services/mcp/index.js +0 -1
  387. package/dist/types/interfaces/services/mcp/service.js +0 -5
  388. package/dist/types/interfaces/storage.d.ts +0 -8
  389. package/dist/types/schemas/a2a/agent.d.ts +0 -2583
  390. package/dist/types/schemas/a2a/agent.js +0 -323
  391. package/dist/types/schemas/a2a/auth.d.ts +0 -908
  392. package/dist/types/schemas/a2a/auth.js +0 -283
  393. package/dist/types/schemas/a2a/error.d.ts +0 -396
  394. package/dist/types/schemas/a2a/error.js +0 -163
  395. package/dist/types/schemas/a2a/index.d.ts +0 -11
  396. package/dist/types/schemas/a2a/index.js +0 -11
  397. package/dist/types/schemas/a2a/kind.d.ts +0 -11
  398. package/dist/types/schemas/a2a/kind.js +0 -20
  399. package/dist/types/schemas/a2a/message.d.ts +0 -10343
  400. package/dist/types/schemas/a2a/message.js +0 -130
  401. package/dist/types/schemas/a2a/notification.d.ts +0 -1517
  402. package/dist/types/schemas/a2a/notification.js +0 -203
  403. package/dist/types/schemas/a2a/parameters.d.ts +0 -956
  404. package/dist/types/schemas/a2a/parameters.js +0 -241
  405. package/dist/types/schemas/a2a/protocol.d.ts +0 -14363
  406. package/dist/types/schemas/a2a/protocol.js +0 -59
  407. package/dist/types/schemas/a2a/rpc.d.ts +0 -182
  408. package/dist/types/schemas/a2a/rpc.js +0 -126
  409. package/dist/types/schemas/a2a/task.d.ts +0 -5886
  410. package/dist/types/schemas/a2a/task.js +0 -134
  411. package/dist/types/schemas/a2a/transport.d.ts +0 -31
  412. package/dist/types/schemas/a2a/transport.js +0 -28
  413. package/dist/types/schemas/index.d.ts +0 -1
  414. package/dist/types/schemas/index.js +0 -1
  415. package/dist/utils/logging/index.d.ts +0 -2
  416. package/dist/utils/logging/index.js +0 -2
  417. package/dist/utils/logging/log.d.ts +0 -33
  418. package/dist/utils/logging/log.js +0 -75
  419. package/dist/utils/logging/logger.d.ts +0 -18
  420. package/dist/utils/logging/logger.js +0 -18
  421. package/dist/utils/storage/memory.d.ts +0 -25
  422. package/dist/utils/storage/memory.js +0 -47
  423. /package/dist/browser/{types/interfaces/services/core/managers/task.js → create/base.js} +0 -0
  424. /package/dist/browser/types/{interfaces/client.js → client.js} +0 -0
  425. /package/dist/{types/interfaces/services/core/managers/task.js → browser/types/core/core.js} +0 -0
  426. /package/dist/browser/types/{interfaces/services/protocol.d.ts → protocol.d.ts} +0 -0
  427. /package/dist/browser/types/{interfaces/services/protocol.js → protocol.js} +0 -0
  428. /package/dist/browser/types/{interfaces/storage.js → storage.js} +0 -0
  429. /package/dist/services/a2a/{methods → handlers}/index.d.ts +0 -0
  430. /package/dist/services/a2a/{methods → handlers}/index.js +0 -0
  431. /package/dist/types/{interfaces/client.js → client.js} +0 -0
  432. /package/dist/types/{interfaces/services/protocol.d.ts → protocol.d.ts} +0 -0
  433. /package/dist/types/{interfaces/services/protocol.js → protocol.js} +0 -0
  434. /package/dist/types/{interfaces/storage.js → storage.js} +0 -0
package/README.md CHANGED
@@ -8,15 +8,16 @@
8
8
 
9
9
  # artinet-sdk
10
10
 
11
- Create Agents that communicate across framework.
11
+ Create agents that communicate across frameworks.
12
12
 
13
- The artinet-sdk is a TypeScript library that adds a standardized, interoperable communication layer to your agents.
13
+ The artinet-sdk is a TypeScript library that adds a standardized, interoperable communication layer to your agents using the [Agent2Agent (A2A) Protocol](https://github.com/google-a2a/A2A).
14
14
 
15
15
  ## Features
16
16
 
17
17
  - **Hassle Free:** Use the AgentBuilder to quickly setup an AgentServer.
18
18
  - **No Vendor Lock-In:** Let your agents communicate with other agents across frameworks and ecosystems.
19
19
  - **Flexible Design:** Everything you need to build collaborative agents while remaining modular enough for advanced configuration.
20
+ - **Pluggable Observability:** Bring your own logger (Pino, Winston) and tracer (OpenTelemetry) with zero-config defaults.
20
21
 
21
22
  ## Quick Start
22
23
 
@@ -25,7 +26,8 @@ The artinet-sdk is a TypeScript library that adds a standardized, interoperable
25
26
  ```bash
26
27
  npx @artinet/create-agent@latest
27
28
  ```
28
- It has [serveral template projects](https://github.com/the-artinet-project/create-agent/tree/main/templates) that you can use to jump right into agent building.
29
+
30
+ It has [several template projects](https://github.com/the-artinet-project/create-agent/tree/main/templates) to jump right into agent building.
29
31
 
30
32
  **Or use [`easy-a2a`](https://github.com/the-artinet-project/easy-a2a):**
31
33
 
@@ -40,666 +42,83 @@ const agent = a2a({
40
42
  });
41
43
  ```
42
44
 
43
- To build agents backed by OpenAI API compatible endpoints.
44
-
45
45
  ```bash
46
46
  npm install easy-a2a
47
47
  ```
48
48
 
49
- ## Table of Contents
50
-
51
- - [artinet-sdk](#artinet-sdk)
52
- - [Features](#features)
53
- - [Quick Start](#quick-start)
54
- - [Table of Contents](#table-of-contents)
55
- - [Installation](#installation)
56
- - [Requirements](#requirements)
57
- - [Example](#example)
58
- - [Running Tests](#running-tests)
59
- - [Usage](#usage)
60
- - [Client](#client)
61
- - [Basic Client Usage](#basic-client-usage)
62
- - [Browser Usage](#browser-usage)
63
- - [Streaming Updates](#streaming-updates)
64
- - [Authentication](#authentication)
65
- - [Server](#server)
66
- - [Implementing an A2A Agent](#implementing-an-a2a-agent)
67
- - [AgentBuilder](#agentbuilder)
68
- - [AgentEngine](#agentengine)
69
- - [Event Handling/Monitoring \& Message Streaming](#event-handlingmonitoring--message-streaming)
70
- - [Persistent Storage](#persistent-storage)
71
- - [Advanced Server Customization](#advanced-server-customization)
72
- - [Cross Protocol Support](#cross-protocol-support)
73
- - [**Migration Changes**](#migration-changes)
74
- - [Contributing](#contributing)
75
- - [License](#license)
76
- - [Acknowledgements](#acknowledgements)
77
-
78
49
  ## Installation
79
50
 
80
51
  ```bash
81
52
  npm install @artinet/sdk
82
53
  ```
83
54
 
84
- ## Requirements
85
-
86
- - [Node.js](https://nodejs.org/en/download) ≥ 18.9.1
87
- - Recommended: 20 || ≥ 22
88
-
89
- <!--
90
-
91
- ## Documentation
92
-
93
- For more detailed documentation visit our documentation site [here](https://the-artinet-project.github.io/artinet-documentation/). -->
94
-
95
- ## Example
96
-
97
- A basic A2A server and client interaction (For simple agents see the [AgentBuilder](#agentbuilder) section). For more detailed examples, see the `examples/` directory.
98
-
99
- **1. Server (`quick-server.ts`)**
100
-
101
- ```typescript
102
- import {
103
- createAgentServer,
104
- AgentBuilder,
105
- Task
106
- } from "@artinet/sdk";
107
-
108
- // Create an agent server
109
- const { app, agent } = createAgentServer({
110
- agent: AgentBuilder()
111
- .text(async ({ content: userInput, context }) => {
112
- const task: Task = context.State().task;
113
- ...
114
- return `You said: ${userInput}`;
115
- })
116
- .createAgent({
117
- agentCard: "QuickStart Agent",
118
- }),
119
- basePath: "/a2a"
120
- });
121
-
122
- app.listen(3000, () => {
123
- console.log("A2A Server running at http://localhost:3000/a2a");
124
- });
125
- ```
126
-
127
- **2. Client (`quick-client.ts`)**
128
-
129
- ```typescript
130
- import { A2AClient, TaskStatusUpdateEvent } from "@artinet/sdk";
131
-
132
- async function runClient() {
133
- const client = new A2AClient("http://localhost:3000/a2a");
134
-
135
- const stream = client.sendStreamingMessage("Hello World!");
136
-
137
- for await (const update of stream) {
138
- // process the updates
139
- ...
140
- }
141
- console.log("Stream finished.");
142
- }
143
-
144
- await runClient().catch(console.error);
145
- ```
146
-
147
- ## Running Tests
55
+ **Peer dependencies (required):**
148
56
 
149
57
  ```bash
150
- npm test
151
- ```
152
-
153
- ## Usage
154
-
155
- ### Client
156
-
157
- Interact with A2A-compliant agents using the `A2AClient`. See `examples/` for more.
158
-
159
- #### Basic Client Usage
160
-
161
- Send a message using `message/send`.
162
-
163
- ```typescript
164
- import { A2AClient, Task } from "@artinet/sdk";
165
-
166
- const client = new A2AClient("https://your-a2a-server.com/a2a");
167
-
168
- const task: Task = await client.sendMessage("What is the capital of France?");
169
- ```
170
-
171
- #### Browser Usage
172
-
173
- _Experimental_
174
-
175
- The Client can be used directly in browsers. You'll need to load the required external dependencies: `zod`, `uuid`, and `eventsource-parser`.
176
-
177
- ```html
178
- <!DOCTYPE html>
179
- <html>
180
- <head>
181
- <!-- Required external dependencies -->
182
- <script type="importmap">
183
- {
184
- "imports": {
185
- "zod": "https://esm.sh/zod@3.23.8",
186
- "uuid": "https://esm.sh/uuid@11.1.0",
187
- "eventsource-parser": "https://esm.sh/eventsource-parser@3.0.1"
188
- }
189
- }
190
- </script>
191
- </head>
192
- <body>
193
- <script type="module">
194
- const { A2AClient } = await import("@artinet/sdk");
195
- const client = new A2AClient("http://localhost:4000/a2a");
196
-
197
- const stream = await client.sendStreamingMessage("Hello!");
198
- for await (const update of stream) {
199
- console.log(update);
200
- }
201
- </script>
202
- </body>
203
- </html>
204
- ```
205
-
206
- > **Note:** Uses [esm.sh](https://esm.sh) as a CDN. See [`examples/browser-example.html`](examples/browser-example.html) for a complete example.
207
-
208
- #### Streaming Updates
209
-
210
- Receive real-time updates via SSE using `message/stream`.
211
-
212
- ```typescript
213
- import {
214
- A2AClient,
215
- Message,
216
- TaskStatusUpdateEvent,
217
- TaskArtifactUpdateEvent,
218
- } from "@artinet/sdk";
219
-
220
- async function runStreamingTask() {
221
- const client = new A2AClient("https://your-a2a-server.com/a2a");
222
-
223
- const stream = client.sendStreamingMessage("Tell me a short story.");
224
-
225
- for await (const update of stream) {
226
- if ((update as TaskStatusUpdateEvent).status) {
227
- console.log("Status:", (update as TaskStatusUpdateEvent).status.state);
228
- } else if ((update as TaskArtifactUpdateEvent).artifact) {
229
- console.log(
230
- "Artifact:",
231
- (update as TaskArtifactUpdateEvent).artifact.name
232
- );
233
- }
234
- }
235
- console.log("Stream finished.");
236
- }
237
- ```
238
-
239
- #### Authentication
240
-
241
- Add headers using `addHeader` or `setHeaders`.
242
-
243
- ```typescript
244
- import { A2AClient } from "@artinet/sdk";
245
-
246
- const client = new A2AClient("https://your-secure-a2a-server.com/a2a");
247
-
248
- // Add a single header
249
- client.addHeader("Authorization", "Bearer your-api-token");
250
-
251
- // Set multiple headers (overwrites existing)
252
- client.setHeaders({ Authorization: "Bearer ...", "X-Custom": "value" });
58
+ npm install @a2a-js/sdk @modelcontextprotocol/sdk @trpc/server
253
59
  ```
254
60
 
255
- ### Server
256
-
257
- Use `createAgentServer()` to embed your Agents in an Express App.
258
-
259
- #### Implementing an A2A Agent
260
-
261
- The SDK provides a variety of options for creating complex ([AgentEngines](#agentengine)) or simple agents ([AgentBuilder](#agentbuilder)).
61
+ ## Requirements
262
62
 
263
- ##### AgentBuilder
63
+ - [Node.js](https://nodejs.org/en/download) ≥ 18.9.1 (Recommended: 20 or ≥ 22)
264
64
 
265
- **Option 1: Using the AgentBuilder (Recommended)**
65
+ ## Example
266
66
 
267
- For simple agents with one or more processing steps, use the `AgentBuilder` pattern:
67
+ **Server:**
268
68
 
269
69
  ```typescript
270
70
  import { createAgentServer, AgentBuilder } from "@artinet/sdk";
271
71
 
272
- //create a simple agent
273
- const simpleAgent = AgentBuilder().text(() => "hello world!");
274
-
275
- //or design a powerful multi-step agent
276
- const { app, agent } = createAgentServer({
72
+ const { app } = createAgentServer({
277
73
  agent: AgentBuilder()
278
- .text(({ content, context }) => {
279
- const userMessage = content ?? "no message detected";
280
- return {
281
- parts: [`Processing: ${userMessage}`], //parts are immediately sent back to the caller as TaskStatusUpdateEvents
282
- args: [userMessage], //args are passed to the next step
283
- };
74
+ .text(async ({ content }) => {
75
+ return `You said: ${content}`;
284
76
  })
285
- .file(({ args }) => {
286
- const processedText = args[0];
287
- return {
288
- parts: [
289
- {
290
- name: "result.txt",
291
- mimeType: "text/plain",
292
- bytes: `Processed result: ${processedText}`,
293
- },
294
- ],
295
- args: ["file-generated"],
296
- };
297
- })
298
- .text(({ args }) => {
299
- const status = args[0];
300
- return `Task completed. Status: ${status}`;
301
- }) //A final Task is returned to the caller which contains all of the emitted parts.
302
77
  .createAgent({
303
- agentCard: "Multi-Step Agent",
78
+ agentCard: "QuickStart Agent",
304
79
  }),
305
80
  basePath: "/a2a",
306
81
  });
307
82
 
308
83
  app.listen(3000, () => {
309
- console.log("Multi-Step A2A Server running on http://localhost:3000/a2a");
310
- });
311
- ```
312
-
313
- The `AgentBuilder` approach is particularly useful when you need:
314
-
315
- - **Step-by-step processing**: Break down complex tasks into discrete, manageable steps
316
- - **Data flow between steps**: Pass results from one step to the next using the `args` parameter
317
- - **Different content types**: Mix text, file, and data processing in a single flow
318
- - **Reusable components**: Build modular agents that can be easily edited or extended
319
-
320
- ##### AgentEngine
321
-
322
- **Option 2: Direct AgentEngine Implementation**
323
-
324
- When you need full control over the execution flow, implement an `AgentEngine` directly:
325
-
326
- ```typescript
327
- import {
328
- createAgentServer,
329
- Context,
330
- AgentEngine,
331
- } from "@artinet/sdk";
332
-
333
- const myAgent: AgentEngine = async function* (context: Context) {
334
- const task: TaskAndHistory = context.State();
335
- yield {
336
- state: "working",
337
- message: {
338
- ...
339
- role: "agent",
340
- parts: [{ kind: "text", text: "Processing..." }],
341
- },
342
- ...
343
- };
344
- yield {
345
- ...
346
- name: "result.txt",
347
- mimeType: "text/plain",
348
- parts: [{ kind: "text", text: "Report data" }],
349
- };
350
-
351
- yield {
352
- ...
353
- state: "completed",
354
- message: {
355
- kind: "message"
356
- role: "agent",
357
- parts: [{ kind: "text", text: "Finished processing." }],
358
- ...
359
- },
360
- };
361
- };
362
-
363
- const { app, agent } = createAgentServer({
364
- agent: {
365
- engine: myAgent,
366
- agentCard: {
367
- name: "Example Agent",
368
- url: "http://localhost:3000/a2a",
369
- version: "1.0.0",
370
- capabilities: { streaming: true },
371
- skills: [{ id: "processor", name: "Text Processor" }],
372
- ...
373
- },
374
- },
375
- basePath: "/a2a",
376
- agentCardPath: "/.well-known/agent-card.json",
377
- });
378
- ```
379
-
380
- #### Event Handling/Monitoring & Message Streaming
381
-
382
- The SDK provides comprehensive event handling & message streaming capabilities that allow you to modify agent execution, subscribe to events, stream commands, and respond to state changes in real-time.
383
-
384
- **Override Event Behaviour**
385
-
386
- When using the service layer, you can provide your own Event Handlers:
387
-
388
- ```typescript
389
- import { createAgent, TaskManager, ContextManager, Command, SendCommandInterface } from "@artinet/sdk";
390
-
391
- const customContextManager = new ContextManger();
392
- const agent = createAgent({
393
- engine: (context: Context){
394
- context.events.on("update", (currentState, nextState) => {
395
- //allow other processes to subscribe to your agent
396
- })
397
- ...
398
- //handle command streams directly within an agent
399
- for await (const command of context.command) {
400
- console.log("new command recieved: ", command);
401
- //will continue polling until the command stream is closed by calling command.close();
402
- }
403
- //or process them via events
404
- context.command.on("send", (command) => {
405
- ...
406
- });
407
- },
408
- agentCard: "Event-Monitored Agent",
409
- contexts: customContextManager,
410
- tasks: new TaskManager(),
411
- eventOverrides: { //for even greater control create your own Event Handlers
412
- onStart: async (context) => {
413
- ...
414
- return currentState;
415
- },
416
- onUpdate: async (currentState, nextState) => {
417
- ...
418
- return currentState;
419
- },
420
- ...
421
- },
422
- });
423
-
424
- const resultPromise = agent.sendMessage({
425
- contextId: "123"
426
- ...
427
- });
428
-
429
- const currentContext = customContextManager.getContext("123");
430
-
431
- //subscribe to the events from a specific context
432
- currentContext.events.on("complete", () {
433
- ...
434
- //errors thrown here will be triggered in the original context
435
- });
436
-
437
- // Advanced: stream new commands into a running context
438
- (currentContext.command as SendCommandInterface<Command>).send({
439
- ...
440
- });
441
-
442
- currentContext.command.close();
443
- ```
444
-
445
- **Available Event Types**
446
-
447
- The EventManager supports the following event types:
448
-
449
- - **`OnStart`/`start`**: Fired when agent execution begins
450
- - **`OnUpdate`/`update`**: Fired on each state update during execution
451
- - **`OnError`/`error`**: Fired when an error occurs during execution
452
- - **`OnComplete`/`complete`**: Fired when agent execution completes successfully
453
- - **`OnCancel`/`cancel`**: Fired when agent execution is cancelled
454
-
455
- #### Persistent Storage
456
-
457
- For Task storage, use one our simple storage providers like `FileStore`. Or implement the `Store` interface to create your own.
458
-
459
- ```typescript
460
- import path from "path";
461
- import fs from "fs";
462
- import { FileStore } from "@artinet/sdk";
463
-
464
- //make sure the directory exists
465
- const dataDir = path.join(process.cwd(), "a2a-data");
466
- if (!fs.existsSync(dataDir)) {
467
- fs.mkdirSync(dataDir, { recursive: true });
468
- }
469
-
470
- const myStore = new FileStore(dataDir);
471
-
472
- const { app, agent } = createAgentServer({
473
- agent: {
474
- engine: myAgent,
475
- agentCard: {
476
- ...
477
- },
478
- tasks: myStore,
479
- },
480
- ...
481
- });
482
- ```
483
-
484
- #### Advanced Server Customization
485
-
486
- Our architecture provides multiple ways to customize your agent server:
487
-
488
- **1. Using `createAgentServer`:**
489
- Easily spin up an A2A Express app `createAgentServer()`:
490
-
491
- ```typescript
492
- const initialApp = express();
493
-
494
- // custom middleware
495
- initialApp.use((req, res, next) => {
496
- ...
497
- next();
498
- });
499
-
500
- const { app, agent } = createAgentServer({
501
- app: initialApp
502
- agent: {
503
- ...
504
- },
505
- });
506
-
507
- // more custom middleware
508
- app.use("/custom", (req, res, next) => {
509
- ...
510
- });
511
-
512
- ```
513
-
514
- **2. Using our JSON-RPC Middleware:**
515
- Directly import our preconfigured JSON-RPC middleware:
516
-
517
- ```typescript
518
- import express from "express";
519
- import { createAgent, jsonRPCMiddleware, errorHandler } from "@artinet/sdk";
520
-
521
- const customApp = express();
522
-
523
- const agent = createAgent({
524
- engine: myAgentLogic,
525
- agentCard: {
526
- ...
527
- },
528
- });
529
-
530
- customApp.use("/auth", yourAuthMiddleware);
531
- customApp.use("/metrics", yourMetricsMiddleware);
532
- customApp.use(express.json());
533
-
534
- // Add A2A middleware
535
- customApp.post("/", async (req, res, next) => {
536
- return await jsonRPCMiddleware(agent, req, res, next);
537
- });
538
- // Dont forget to add error handling*
539
- customApp.use(errorHandler);
540
-
541
- // Serve the agent card
542
- customApp.get("/.well-known/agent-card.json", (req, res) => {
543
- res.json(agent.agentCard);
544
- });
545
-
546
- // Start your custom server
547
- const server = customApp.listen(3000, () => {
548
- console.log("Custom A2A server running on port 3000");
84
+ console.log("A2A Server running at http://localhost:3000/a2a");
549
85
  });
550
86
  ```
551
87
 
552
- **3. Using Custom Transport Layers:**
553
-
554
- Use our preconfigured TRPC router, or create your own integration with WebSockets & other protocols:
555
-
556
- ```typescript
557
- import { createAgentRouter } from "@artinet/sdk";
558
-
559
- const agentRouter = createAgentRouter();
560
- ```
561
-
562
- **Use the Agent:**
563
-
564
- Directly invoke the agent to use it locally:
88
+ **Client:**
565
89
 
566
90
  ```typescript
567
- import { createAgent } from "@artinet/sdk";
91
+ import { A2AClient } from "@artinet/sdk";
568
92
 
569
- const agent = createAgent({
570
- engine: myAgentLogic,
571
- agentCard: {
572
- ...
573
- },
574
- });
93
+ const client = new A2AClient("http://localhost:3000/a2a");
575
94
 
576
- // Wrap these calls in your desired transport logic
577
- const result = await agent.sendMessage({
578
- ...
579
- });
580
-
581
- // Directly process streams
582
- const stream = agent.streamMessage({
583
- ...
584
- });
95
+ const stream = client.sendStreamingMessage("Hello World!");
585
96
 
586
97
  for await (const update of stream) {
587
- ...
98
+ console.log(update);
588
99
  }
589
100
  ```
590
101
 
591
- **Important:** When using custom implementations, ensure you handle:
592
-
593
- - Server-Sent Events (SSE) for `message/stream` and `tasks/resubscribe`
594
- - Agent card endpoints at `/.well-known/agent-card.json`
595
- - Proper error handling and JSON-RPC compliance
596
- - CORS headers if needed for web clients
597
-
598
- #### Cross Protocol Support
599
-
600
- **MCP (Model Context Protocol) Integration**
601
-
602
- The SDK provides a Model Context Protocol (MCP) <-> A2A compatability layer.
603
-
604
- Use `createMCPAgent` to expose your agent via MCP:
605
-
606
- ```typescript
607
- import { createMCPAgent, createAgent } from "@artinet/sdk";
608
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
609
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
610
-
611
- // Wrap your agent in an MCP Server
612
- const mcpAgent = createMCPAgent({
613
- serverInfo: {
614
- name: "My MCP Agent",
615
- version: "1.0.0",
616
- },
617
- options: {
618
- ...
619
- },
620
- agent: createAgent({
621
- engine: myAgentEngine,
622
- agentCard: "MCP Agent",
623
- }),
624
- agentCardUri: "agent://card", //customize the URI for your AgentCard
625
- });
626
-
627
- // The MCPAgent is a fully compliant MCP Server so you can use it as you normally would.
628
- mcpAgent.registerTool({
629
- ...
630
- });
102
+ ## Documentation
631
103
 
632
- await mcpAgent.connect(new StdioServerTransport());
633
- ```
104
+ | Topic | Description |
105
+ | ------------------------------------------- | ----------------------------------------------------- |
106
+ | [**API Reference**](docs/api-reference.md) | Complete reference of SDK objects, types, and methods |
107
+ | [**Configuration**](docs/configuration.md) | Logging (Pino, Winston) and OpenTelemetry setup |
108
+ | [**Client Usage**](docs/client.md) | A2AClient methods, streaming, browser support |
109
+ | [**Server Implementation**](docs/server.md) | AgentBuilder, AgentEngine, and AgentCard |
110
+ | [**Event Handling**](docs/events.md) | Event subscriptions and custom handlers |
111
+ | [**Storage**](docs/storage.md) | FileStore and custom storage backends |
112
+ | [**Customization**](docs/customization.md) | Middleware, tRPC, custom transports |
113
+ | [**MCP Integration**](docs/mcp.md) | Model Context Protocol compatibility |
114
+ | [**Migration Guide**](docs/migration.md) | Upgrading from v0.5.x to v0.6.0 |
634
115
 
635
- Use an MCP Client to interact with an mcpAgent:
116
+ ## Running Tests
636
117
 
637
- ```typescript
638
- ...
639
- // Access the AgentCard as a Resource
640
- const agentCard = await client.readResource({ uri: "agent://card" });
641
-
642
- // or send messages via Tool Calling
643
- const result = await client.callTool({
644
- name: "send-message",
645
- arguments: {
646
- ...
647
- message: {
648
- ...
649
- parts: [{ kind: "text", text: "Hello from MCP!" }],
650
- },
651
- },
652
- });
118
+ ```bash
119
+ npm test
653
120
  ```
654
121
 
655
- **MCP Tools & Resources:**
656
-
657
- - `send-message`: Send messages to the A2A agent
658
- - `get-task`: Retrieve tasks by ID
659
- - `cancel-task`: Cancel a running task
660
- - `agent://card`: Retrieve the AgentCard
661
- - `send-streaming-message`, `task-resubscribe` & `push-notifications` etc are currently not supported by default.
662
- - Leverage the A2A Zod Schemas to manually implement your own tools.
663
-
664
- ## **Migration Changes**
665
-
666
- \*_since v0.5.8_
667
-
668
- - Pino has been removed and replaced with console for better portability and is set to silent by default.
669
- - The default handler for streamMessage no longer automatically emits an initial `submitted` and `working` event.
670
- - Agent Registration, Bundling and Deployment utils have been removed (email us: humans@artinet.io for support).
671
- - `@artinet/metadata-validator` has been removed due to build issues.
672
- - getTask now correctly takes TaskQueryParams as an argument vs TaskIdParams in accordance with the A2A spec.
673
- - AgentBuilder now returns a unique messageId for each status update instead of the original user provided messageId.
674
- - AgentBuilder now prefers the contextId & taskId from the calling context.
675
- - In a future release the following packages will be set as peer dependancies to reduce the size of the build: `@modelcontextprotocol/sdk`, `@trpc/server`, `cors`, `express`
676
- - The `history` object from `TaskAndHistory` is deprecated and no longer being updated. Use `Task.history` instead.
677
- - The `A2AClient` now checks `/.well-known/agent-card.json` as a opposed to `/.well-known/agent.json` in-line with the A2A spec.
678
- - The `A2AClient` now uses uses the `AgentCard`.url if an `AgentCard` has been successfully retrieved, else it will default to the `baseUrl`.
679
- - The examples folder will be removed in favor of [`create-agent`](https://github.com/the-artinet-project/create-agent).
680
- - In `Task` the `contextId` field is now required (inline with the A2A spec).
681
- - In `AgentSkill` the `tag` field is now required (inline with the A2A spec).
682
- - ~~Optional fields in Agent2Agent Zod schemas are now nullable for better interoperability.~~ **Nullable Schemas have been reverted.**
683
- - The `EngineBuilder` constructor is now protected and open for extension.
684
- - `AgentBuilder` will now throw an error if it recieves an invalid `FilePart`.
685
- - `createAgent`/`createService` can now take a single string (i.e. agentName) as valid value for the AgentCard and will populate the rest of the required fields with placeholder values (see `src/services/a2a/helpers/agentcard-builder.ts` for reference).
686
- - `createAgentServer` no longer adds `express.json()` to the root of the express server and now uses the utility function `rpcParser` only on the agents `basePath` and has stricter JSON-RPC validation measures.
687
- - `A2AClient` now exposes `mergePath` making it easier to access `AgentCards` that are not exposed at the root.
688
- - `AgentBuilder` now checks for cancellations after each step.
689
- - `createAgent` exposes the `enforceParamValidation` flag which triggers stricter enforcement of `A2ASchemas` (This will be enabled by default in a future release).
690
- - `AgentCardBuilder` now sets the `preferredTransport` field to the default (`JSONRPC`) if none is provided (inline with the A2A spec).
691
- - The default `sendMessage` implementation now supports the `MessageSendConfiguration`.`blocking` toggle.
692
- - The default `sendMessage` and `getTask` implementations now support the `MessageSendConfiguration`.`historyLength` parameter.
693
- - The Express Server now provides support for `AuthenticatedExtendedCard`.
694
-
695
- > **Note:** The Official A2A Javascript SDK is now more stable. So over the course of future releases @artinet/sdk will be merging in utilities directly from `@a2a-js/sdk` as a peer-dependancy.
696
-
697
- > This will **NOT** change the core architecture or design of @artinet/sdk, but it will make integration with the emerging Agent2Agent ecosystem easier while allowing us to focus on the adoption of additional communication protocols. We aim to complete this migration by v0.6 which will be our first LTS release.
698
-
699
- > This will **NOT** require the modification of existing `AgentEngine`'s, the current architecture was designed with this shift in mind and is the reason behind our use of loosely typed Interfaces, MPSC & SPMC queues vs EventBus and the design of the `CoreExecute` contract (onStart, onUpdate, onError, onCancel & onComplete).
700
-
701
- > This will mean that the more concrete implementations in `src/services/a2a` will become more generic implementations in `src/services/core`.
702
-
703
122
  ## Contributing
704
123
 
705
124
  Contributions are welcome! Please open an issue or submit a Pull Request on [GitHub](https://github.com/the-artinet-project/artinet-sdk).