@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
@@ -2,11 +2,11 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { A2AService } from "../service.js";
6
- import { ContextManager, ConnectionManager, CancellationManager, TaskManager, } from "../managers/index.js";
7
- import { createMethods } from "./method.js";
8
- import { createAgentCard } from "../helpers/agentcard-builder.js";
5
+ import { createHandler } from "./handler.js";
6
+ import * as describe from "../../../create/agentcard-builder.js";
7
+ import { Service } from "../service.js";
8
+ import { Contexts, Streams, Connections, Cancellations, Tasks, } from "../managers.js";
9
9
  export function createService(params) {
10
- return new A2AService(createAgentCard(params.agentCard), params.engine, params.contexts ?? new ContextManager(), params.connections ?? new ConnectionManager(), params.cancellations ?? new CancellationManager(), params.tasks ?? new TaskManager(), createMethods(params.methods), params.events, params.enforceParamValidation ?? false);
10
+ return new Service(describe.card(params.agentCard), params.engine, params.connections ?? new Connections(), params.cancellations ?? new Cancellations(), params.tasks ?? new Tasks(), params.contexts ?? new Contexts(), params.streams ?? new Streams(), createHandler(params.methods), params.overrides);
11
11
  }
12
12
  export const createAgent = createService;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare function createStateMachine({ contextId, service, task: currentTask, overrides, }: {
7
+ contextId: string;
8
+ service: A2A.Service;
9
+ task: A2A.Task;
10
+ overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
11
+ }): A2A.EventPublisher;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { StateMachine } from "../state-machine.js";
6
+ import { logger } from "../../../config/index.js";
7
+ import * as describe from "../../../create/describe.js";
8
+ import { TASK_NOT_FOUND } from "../../../utils/index.js";
9
+ import assert from "assert";
10
+ export function createStateMachine({ contextId, service, task: currentTask, overrides, }) {
11
+ const handler = {
12
+ contextId: contextId,
13
+ onStart: async (context) => {
14
+ assert(context.contextId === contextId, "context mismatch");
15
+ logger.info(`onStart[ctx:${contextId}]:`, { taskId: context.taskId });
16
+ await service.connections.set(context.contextId);
17
+ const task = await service.tasks.get(context.taskId);
18
+ // we now expect the task to be created by the service
19
+ // so if it's not found we throw an error
20
+ if (!task) {
21
+ throw TASK_NOT_FOUND({ taskId: context.taskId, contextId: contextId });
22
+ }
23
+ return task;
24
+ },
25
+ onCancel: async (update, task) => {
26
+ logger.info(`onCancel[ctx:${contextId}]:`, "cancellation triggered");
27
+ logger.debug(`onCancel[ctx:${contextId}]:`, "arguments", update, task);
28
+ await service.cancellations.set(task.id);
29
+ const cancellation = describe.update.canceled({
30
+ taskId: task.id,
31
+ contextId: task.contextId,
32
+ message: update.status?.message,
33
+ });
34
+ await service.tasks.update((await service.contexts.get(contextId)), cancellation);
35
+ },
36
+ onUpdate: async (update, task) => {
37
+ logger.info(`onUpdate[ctx:${contextId}]:`);
38
+ logger.debug(`onUpdate[ctx:${contextId}]:`, { taskId: task.id });
39
+ if (await service.cancellations.has(task.id)) {
40
+ logger.warn(`onUpdate[ctx:${contextId}]:`, { taskId: task.id }, "task is cancelled, no longer processing updates");
41
+ return task;
42
+ }
43
+ return await service.tasks.update((await service.contexts.get(contextId)), update);
44
+ },
45
+ onError: async (error, task) => {
46
+ logger.error(`onError[ctx:${contextId}]:`, error);
47
+ if (!task) {
48
+ logger.error(`onError[ctx:${contextId}]:`, new Error("task not found"));
49
+ return;
50
+ }
51
+ const errorUpdate = describe.update.failed({
52
+ taskId: task.id,
53
+ contextId,
54
+ message: describe.message({
55
+ messageId: "failed-update",
56
+ parts: [
57
+ {
58
+ kind: "text",
59
+ text: error instanceof Error ? error.message : String(error),
60
+ },
61
+ ],
62
+ }),
63
+ });
64
+ const context = await service.contexts.get(contextId);
65
+ if (!context) {
66
+ logger.error(`onError[ctx:${contextId}]:`, new Error("context not found"));
67
+ return;
68
+ }
69
+ await service.tasks.update(context, errorUpdate).catch((error) => {
70
+ //we capture errors thrown during error handling to ensure we trigger completion gracefully
71
+ logger.error(`onError: task update error[ctx:${contextId}]:`, error);
72
+ });
73
+ // we trigger completion here to ensure the context is cleaned up
74
+ await context.publisher.onComplete();
75
+ },
76
+ onComplete: async (task) => {
77
+ assert(task.contextId === contextId, "context mismatch");
78
+ logger.info(`onComplete[ctx:${contextId}]: `, { taskId: task.id });
79
+ await service.cancellations.delete(task.id);
80
+ await service.connections.delete(task.contextId);
81
+ await service.contexts.delete(task.contextId);
82
+ },
83
+ };
84
+ return new StateMachine(contextId, {
85
+ ...handler,
86
+ ...overrides,
87
+ }, currentTask);
88
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare function updateArtifact(_artifact: A2A.Artifact, update: A2A.TaskArtifactUpdateEvent): A2A.Artifact;
7
+ export declare function upsertArtifact(artifacts: A2A.Artifact[], update: A2A.TaskArtifactUpdateEvent): A2A.Artifact[];
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export function updateArtifact(_artifact, update) {
6
+ if (!update.append)
7
+ return update.artifact;
8
+ const artifactUpdate = update.artifact;
9
+ const artifact = _artifact;
10
+ artifact.metadata = {
11
+ ...(artifact.metadata || {}),
12
+ ...artifactUpdate.metadata,
13
+ };
14
+ artifact.description = artifactUpdate.description;
15
+ artifact.name = artifactUpdate.name;
16
+ artifact.parts.push(...artifactUpdate.parts);
17
+ return artifact;
18
+ }
19
+ export function upsertArtifact(artifacts, update) {
20
+ const updateId = update.artifact.artifactId;
21
+ const index = artifacts.findIndex((a) => a.artifactId === updateId);
22
+ if (index === -1) {
23
+ artifacts.push({ ...update.artifact });
24
+ return artifacts;
25
+ }
26
+ artifacts[index] = updateArtifact(artifacts[index], update);
27
+ return artifacts;
28
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare const cancelTask: A2A.RequestHandler["cancelTask"];
7
+ export type CancelTaskHandler = typeof cancelTask;
8
+ /**
9
+ * @deprecated Use CancelTaskHandler instead
10
+ */
11
+ export type CancelTaskMethod = CancelTaskHandler;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ import { FINAL_STATES, TASK_NOT_FOUND, TASK_NOT_CANCELABLE, INTERNAL_ERROR, } from "../../../utils/index.js";
7
+ export const cancelTask = async ({ id: taskId }, context) => {
8
+ if (!context) {
9
+ throw INTERNAL_ERROR({ error: { message: "Context is required" } });
10
+ }
11
+ const service = context.service;
12
+ const task = await service.tasks.get(taskId);
13
+ if (!task) {
14
+ throw TASK_NOT_FOUND({ taskId });
15
+ }
16
+ if (FINAL_STATES.includes(task.status.state)) {
17
+ throw TASK_NOT_CANCELABLE("Task is in a final state: " + task.status.state);
18
+ }
19
+ /**
20
+ * By triggering onCancel, we're guaranteed that:
21
+ * - No further updates will be processed other than errors
22
+ * - The task will be cancelled
23
+ * - The task will be completed
24
+ * - The cancellations will be cleaned up
25
+ */
26
+ const cancelledTask = {
27
+ ...task,
28
+ status: {
29
+ ...task.status,
30
+ state: A2A.TaskState.canceled,
31
+ },
32
+ };
33
+ await context.publisher.onCancel(cancelledTask);
34
+ return cancelledTask;
35
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare const getTask: A2A.RequestHandler["getTask"];
7
+ export type GetTaskHandler = typeof getTask;
8
+ /**
9
+ * @deprecated Use GetTaskHandler instead
10
+ */
11
+ export type GetTaskMethod = GetTaskHandler;
@@ -0,0 +1,13 @@
1
+ import { TASK_NOT_FOUND, INTERNAL_ERROR } from "../../../utils/index.js";
2
+ import { getLatestHistory } from "../helpers/index.js";
3
+ export const getTask = async ({ id: taskId, historyLength }, context) => {
4
+ if (!context) {
5
+ throw INTERNAL_ERROR({ error: { message: "Context is required" } });
6
+ }
7
+ const task = await context.service.tasks.get(taskId);
8
+ if (!task) {
9
+ throw TASK_NOT_FOUND({ taskId });
10
+ }
11
+ task.history = getLatestHistory(task, historyLength);
12
+ return task;
13
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare const subscribeToTask: A2A.RequestHandler["resubscribe"];
7
+ export type SubscribeToTaskHandler = typeof subscribeToTask;
8
+ /**
9
+ * @deprecated Use SubscribeToTaskHandler instead
10
+ */
11
+ export declare const resubscribe: (input: A2A.TaskIdParams, context?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
12
+ /**
13
+ * @deprecated Use SubscribeToTaskHandler instead
14
+ */
15
+ export type TaskResubscribeHandler = typeof resubscribe;
16
+ /**
17
+ * @deprecated Use SubscribeToTaskHandler instead
18
+ */
19
+ export type ResubscribeTaskMethod = TaskResubscribeHandler;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ import { FINAL_STATES, INTERNAL_ERROR, TASK_NOT_FOUND } from "../../../utils/index.js";
7
+ const flush = (task, stream) => {
8
+ if (!task.artifacts || task.artifacts.length === 0)
9
+ return;
10
+ for (const artifact of task.artifacts) {
11
+ const artifactUpdate = {
12
+ kind: A2A.Kind["artifact-update"],
13
+ taskId: task.id,
14
+ contextId: task.contextId,
15
+ artifact,
16
+ lastChunk: task.artifacts.length === 1,
17
+ metadata: task.metadata,
18
+ };
19
+ stream.updates.push(artifactUpdate);
20
+ task.artifacts.shift();
21
+ }
22
+ };
23
+ export const subscribeToTask = async function* ({ id: taskId }, context) {
24
+ if (!context) {
25
+ throw INTERNAL_ERROR({ error: { message: "Context is required" } });
26
+ }
27
+ const service = context.service;
28
+ if (!(await service.tasks.has(taskId))) {
29
+ throw TASK_NOT_FOUND({ taskId });
30
+ }
31
+ const stream = (await service.streams.get(context.contextId)) ??
32
+ (await service.streams.create({
33
+ contextId: context.contextId,
34
+ context,
35
+ }));
36
+ // onStart no longer inserts a new task, so we can safely push the update and continue
37
+ context.publisher.on("start", async (_, task) => {
38
+ stream.updates.push({
39
+ kind: "status-update",
40
+ taskId: task.id,
41
+ contextId: task.contextId,
42
+ status: task.status,
43
+ final: false,
44
+ metadata: task.metadata,
45
+ });
46
+ if (FINAL_STATES.includes(task.status.state)) {
47
+ /* We create a new task object to avoid mutating the original task */
48
+ flush({ ...task }, stream);
49
+ await stream.kill();
50
+ }
51
+ });
52
+ yield* stream.run({
53
+ service: service,
54
+ });
55
+ };
56
+ /**
57
+ * @deprecated Use SubscribeToTaskHandler instead
58
+ */
59
+ export const resubscribe = subscribeToTask;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare const sendMessage: A2A.RequestHandler["sendMessage"];
7
+ export type SendMessageHandler = typeof sendMessage;
8
+ /**
9
+ * @deprecated Use SendMessageHandler instead
10
+ */
11
+ export type SendMessageMethod = SendMessageHandler;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { getLatestHistory } from "../helpers/index.js";
6
+ import { INTERNAL_ERROR } from "../../../utils/index.js";
7
+ export const sendMessage = async ({ configuration }, context) => {
8
+ if (!context) {
9
+ throw INTERNAL_ERROR({ error: { message: "Context is required" } });
10
+ }
11
+ const service = context.service;
12
+ let task;
13
+ if (configuration?.blocking === false) {
14
+ task = await Promise.race([
15
+ service.execute({ engine: service.engine, context }).then(async () => {
16
+ return await context.getTask();
17
+ }),
18
+ new Promise((resolve) => {
19
+ context.publisher.on("start", (_, task) => {
20
+ resolve(task);
21
+ });
22
+ }),
23
+ ]);
24
+ }
25
+ else {
26
+ await service.execute({ engine: service.engine, context });
27
+ task = await context.getTask();
28
+ }
29
+ task.history = getLatestHistory(task, configuration?.historyLength);
30
+ return task;
31
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare const sendMessageStream: A2A.RequestHandler["streamMessage"];
7
+ export type SendMessageStreamHandler = typeof sendMessageStream;
8
+ /**
9
+ * @deprecated Use sendMessageStream instead
10
+ */
11
+ export declare const streamMessage: (message: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
12
+ /**
13
+ * @deprecated Use SendMessageStreamHandler instead
14
+ */
15
+ export type StreamMessageHandler = SendMessageStreamHandler;
16
+ /**
17
+ * @deprecated Use StreamMessageHandler instead
18
+ */
19
+ export type StreamMessageMethod = StreamMessageHandler;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { INTERNAL_ERROR } from "../../../utils/index.js";
6
+ export const sendMessageStream = async function* (_, context) {
7
+ if (!context) {
8
+ throw INTERNAL_ERROR({ error: { message: "Context is required" } });
9
+ }
10
+ const service = context.service;
11
+ if (await service.streams.has(context.contextId)) {
12
+ throw INTERNAL_ERROR({ error: { message: "Stream already exists" } });
13
+ }
14
+ const stream = await service.streams.create({
15
+ contextId: context.contextId,
16
+ context,
17
+ });
18
+ yield* stream.run({ service });
19
+ };
20
+ /**
21
+ * @deprecated Use sendMessageStream instead
22
+ */
23
+ export const streamMessage = sendMessageStream;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export interface UpdateParams<Update extends A2A.Update = A2A.Update> {
7
+ context: A2A.Context;
8
+ task: A2A.Task;
9
+ update: Update;
10
+ }
11
+ type Updater<Update extends A2A.Update> = (props: UpdateParams<Update>) => Promise<A2A.Task>;
12
+ export declare const handleMessageUpdate: Updater<A2A.Message>;
13
+ export declare const handleTaskUpdate: Updater<A2A.Task>;
14
+ export declare const handleStatusUpdate: Updater<A2A.TaskStatusUpdateEvent>;
15
+ export declare const handleArtifactUpdate: Updater<A2A.TaskArtifactUpdateEvent>;
16
+ export declare const handleUpdate: Updater<A2A.Update>;
17
+ export {};
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { getCurrentTimestamp, formatJson } from "../../../utils/common/utils.js";
6
+ import { validateSchema } from "../../../utils/common/schema-validation.js";
7
+ import { upsertArtifact } from "./artifact.js";
8
+ import { A2A } from "../../../types/index.js";
9
+ import { logger } from "../../../config/index.js";
10
+ const isMessageInHistory = (task, message) => {
11
+ return task.history?.find((msg) => msg.messageId === message.messageId);
12
+ };
13
+ const updateHistory = (task, updateMessage) => {
14
+ if (!isMessageInHistory(task, updateMessage)) {
15
+ task.history = [...(task.history ?? []), updateMessage];
16
+ }
17
+ };
18
+ export const handleMessageUpdate = async ({ task, update, }) => {
19
+ const validated = await validateSchema(A2A.MessageSchema, update);
20
+ if (validated.taskId && task.id !== validated.taskId) {
21
+ throw new Error(`updateMessage: Invalid task id: ${validated.taskId} ${formatJson({
22
+ cause: {
23
+ validated,
24
+ actual: task.id,
25
+ task,
26
+ },
27
+ })}`);
28
+ }
29
+ updateHistory(task, validated);
30
+ return task;
31
+ };
32
+ export const handleTaskUpdate = async ({ context, task, update, }) => {
33
+ const validated = await validateSchema(A2A.TaskSchema, update);
34
+ if (task.id !== validated.id) {
35
+ throw new Error(`updateTask: Invalid task id: ${validated.id}`, {
36
+ cause: validated,
37
+ });
38
+ }
39
+ task = { ...task, ...validated };
40
+ if (context.userMessage) {
41
+ updateHistory(task, context.userMessage);
42
+ }
43
+ return task;
44
+ };
45
+ export const handleStatusUpdate = async ({ task, update, }) => {
46
+ const validated = await validateSchema(A2A.TaskStatusUpdateEventSchema, update);
47
+ if (validated.taskId && task.id !== validated.taskId) {
48
+ throw new Error(`updateTaskStatusUpdate: Invalid task id: ${validated.taskId}`, { cause: validated });
49
+ }
50
+ task.status = validated.status;
51
+ task.status.timestamp = getCurrentTimestamp();
52
+ if (validated.status.message) {
53
+ updateHistory(task, validated.status.message);
54
+ }
55
+ return task;
56
+ };
57
+ export const handleArtifactUpdate = async ({ task, update }) => {
58
+ const validated = await validateSchema(A2A.TaskArtifactUpdateEventSchema, update);
59
+ if (validated.taskId && task.id !== validated.taskId) {
60
+ throw new Error(`updateTaskArtifactUpdate: Invalid task id: ${validated.taskId}`, {
61
+ cause: validated,
62
+ });
63
+ }
64
+ else {
65
+ validated.taskId = task.id;
66
+ }
67
+ task.artifacts = upsertArtifact(task.artifacts ?? [], validated);
68
+ return task;
69
+ };
70
+ // The onus is now on the caller to handle errors when processing updates
71
+ // and to decide whether the updated task should be saved or not
72
+ export const handleUpdate = async ({ context, task, update, }) => {
73
+ if (!update || !update.kind) {
74
+ throw new Error("updateState: Invalid update", { cause: update });
75
+ }
76
+ logger.debug(`handleUpdate:`, {
77
+ contextId: context?.contextId,
78
+ taskId: task?.id,
79
+ });
80
+ task = await validateSchema(A2A.TaskSchema, task);
81
+ if (!context || !context.contextId) {
82
+ throw new Error("updateState: Invalid context", { cause: context });
83
+ }
84
+ switch (update.kind) {
85
+ case A2A.Kind.message: {
86
+ return handleMessageUpdate({
87
+ context,
88
+ task,
89
+ update,
90
+ });
91
+ }
92
+ case A2A.Kind.task: {
93
+ return handleTaskUpdate({
94
+ context,
95
+ task,
96
+ update,
97
+ });
98
+ }
99
+ case A2A.Kind["status-update"]: {
100
+ return handleStatusUpdate({
101
+ context,
102
+ task,
103
+ update,
104
+ });
105
+ }
106
+ case A2A.Kind["artifact-update"]: {
107
+ return handleArtifactUpdate({
108
+ context,
109
+ task,
110
+ update,
111
+ });
112
+ }
113
+ default: {
114
+ throw new Error(`updateState: Invalid update kind: {"kind": "unknown"}`, {
115
+ cause: update,
116
+ });
117
+ }
118
+ }
119
+ };
@@ -2,10 +2,14 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { UpdateEvent } from "../../../types/index.js";
5
+ import { A2A } from "../../../types/index.js";
6
6
  /**
7
7
  * Extracts the content of an agent response.
8
8
  * @param input - The input event.
9
9
  * @returns The content of the input event.
10
10
  */
11
- export declare function getContent(input: UpdateEvent): string | undefined;
11
+ export declare function extractTextContent(input: A2A.Update): string | undefined;
12
+ /**
13
+ * @deprecated Use extractTextContent instead.
14
+ */
15
+ export declare const getContent: typeof extractTextContent;
@@ -1,10 +1,14 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
1
5
  import { getParts } from "./part.js";
2
6
  /**
3
7
  * Extracts the content of an agent response.
4
8
  * @param input - The input event.
5
9
  * @returns The content of the input event.
6
10
  */
7
- export function getContent(input) {
11
+ export function extractTextContent(input) {
8
12
  const parts = getParts(input?.parts ??
9
13
  input?.status?.message?.parts ??
10
14
  input?.status?.message?.parts ??
@@ -16,3 +20,7 @@ export function getContent(input) {
16
20
  parts.data.map((data) => JSON.stringify(data)).join("\n") ??
17
21
  undefined);
18
22
  }
23
+ /**
24
+ * @deprecated Use extractTextContent instead.
25
+ */
26
+ export const getContent = extractTextContent;
@@ -1,2 +1,6 @@
1
- import { Message, Task } from "../../../types/index.js";
2
- export declare function getLatestHistory(task: Task, length?: number): Message[];
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare function getLatestHistory(task: A2A.Task, length?: number): A2A.Message[];
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
1
5
  export function getLatestHistory(task, length) {
2
6
  return length ? task.history?.slice(-length) ?? [] : task.history ?? [];
3
7
  }
@@ -1,6 +1,6 @@
1
1
  export * from "./part.js";
2
2
  export * from "./content.js";
3
- export * from "./message-builder.js";
4
- export * from "./agentcard-builder.js";
3
+ export { AgentCardBuilder } from "../../../create/agentcard-builder.js";
4
+ export { MessageBuilder, MessageSendConfigurationBuilder, } from "../../../create/message-builder.js";
5
5
  export * from "./history.js";
6
- export * from "../../../utils/common/schema-validation.js";
6
+ export * from "./references.js";
@@ -1,6 +1,6 @@
1
1
  export * from "./part.js";
2
2
  export * from "./content.js";
3
- export * from "./message-builder.js";
4
- export * from "./agentcard-builder.js";
3
+ export { AgentCardBuilder } from "../../../create/agentcard-builder.js";
4
+ export { MessageBuilder, MessageSendConfigurationBuilder, } from "../../../create/message-builder.js";
5
5
  export * from "./history.js";
6
- export * from "../../../utils/common/schema-validation.js";
6
+ export * from "./references.js";
@@ -2,7 +2,7 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { Part, TextPart, FilePart, DataPart, Message } from "../../../types/schemas/a2a/index.js";
5
+ import { A2A } from "../../../types/index.js";
6
6
  /**
7
7
  * Extracts and aggregates the text, file, and data contents from an array of Part objects.
8
8
  *
@@ -16,10 +16,10 @@ import { Part, TextPart, FilePart, DataPart, Message } from "../../../types/sche
16
16
  * This utility is used to normalize and access the payloads of message parts
17
17
  * in a structured way for downstream processing.
18
18
  */
19
- export declare const getParts: (parts: Part[]) => {
20
- text: TextPart["text"];
21
- file: FilePart["file"][];
22
- data: DataPart["data"][];
19
+ export declare const getParts: (parts: A2A.Part[]) => {
20
+ text: A2A.TextPart["text"];
21
+ file: A2A.FilePart["file"][];
22
+ data: A2A.DataPart["data"][];
23
23
  };
24
24
  /**
25
25
  * Extracts and aggregates the text, file, and data payloads from a Message's parts array.
@@ -41,8 +41,8 @@ export declare const getParts: (parts: Part[]) => {
41
41
  * console.log(payload.file); // [<file1>, <file2>]
42
42
  * console.log(payload.data); // [<data1>, <data2>]
43
43
  */
44
- export declare const getPayload: (message: Message) => {
45
- text: TextPart["text"];
46
- file: FilePart["file"][];
47
- data: DataPart["data"][];
44
+ export declare const getPayload: (message: A2A.Message) => {
45
+ text: A2A.TextPart["text"];
46
+ file: A2A.FilePart["file"][];
47
+ data: A2A.DataPart["data"][];
48
48
  };