@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
@@ -3,69 +3,27 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import express from "express";
6
- import { Agent, AgentCard, FactoryParams as CreateAgentParams } from "../../types/index.js";
6
+ import { A2A } from "../../types/index.js";
7
+ import { Agent } from "../../services/a2a/index.js";
8
+ import { ServiceParams as CreateAgentParams } from "../../services/index.js";
7
9
  import { CorsOptions } from "cors";
8
10
  export interface ServerParams {
9
11
  app?: express.Express;
10
12
  corsOptions?: CorsOptions;
11
13
  basePath?: string;
12
- extendedAgentCard?: AgentCard;
13
- }
14
- export declare function createAgentServer(params: ServerParams & {
14
+ port?: number;
15
+ /**
16
+ * Your agentCard must have supportsAuthenticatedExtendedCard set to true
17
+ */
18
+ extendedAgentCard?: A2A.AgentCard;
15
19
  agent: Agent | CreateAgentParams;
16
20
  agentCardPath?: string;
17
21
  register?: boolean;
18
- }): {
19
- app: import("express-serve-static-core").Express;
20
- agent: Agent<{
21
- message: {
22
- role: "user" | "agent";
23
- kind: "message";
24
- parts: ({
25
- file: {
26
- bytes: string;
27
- name?: string | undefined;
28
- mimeType?: string | undefined;
29
- uri?: undefined;
30
- } | {
31
- uri: string;
32
- name?: string | undefined;
33
- bytes?: undefined;
34
- mimeType?: string | undefined;
35
- };
36
- kind: "file";
37
- metadata?: Record<string, unknown> | undefined;
38
- } | {
39
- text: string;
40
- kind: "text";
41
- metadata?: Record<string, unknown> | undefined;
42
- } | {
43
- data: Record<string, unknown>;
44
- kind: "data";
45
- metadata?: Record<string, unknown> | undefined;
46
- })[];
47
- messageId: string;
48
- metadata?: Record<string, unknown> | undefined;
49
- extensions?: string[] | undefined;
50
- referenceTaskIds?: string[] | undefined;
51
- taskId?: string | undefined;
52
- contextId?: string | undefined;
53
- };
54
- metadata?: Record<string, unknown> | undefined;
55
- configuration?: {
56
- historyLength?: number | undefined;
57
- pushNotificationConfig?: {
58
- url: string;
59
- id?: string | undefined;
60
- token?: string | undefined;
61
- authentication?: {
62
- schemes: string[];
63
- credentials?: string | undefined;
64
- } | undefined;
65
- } | undefined;
66
- acceptedOutputModes?: string[] | undefined;
67
- blocking?: boolean | undefined;
68
- } | undefined;
69
- }, import("../../types/index.js").TaskAndHistory, import("../../types/index.js").UpdateEvent>;
22
+ }
23
+ export declare function rpcParser(req: express.Request, res: express.Response, next: express.NextFunction): void;
24
+ export declare function createAgentServer({ app, basePath, agentCardPath, agent, corsOptions, extendedAgentCard, register, port, }: ServerParams): {
25
+ app: express.Express;
26
+ agent: Agent;
27
+ start: (_port?: number) => import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse>;
70
28
  };
71
29
  export type ExpressAgentServer = ReturnType<typeof createAgentServer>;
@@ -3,62 +3,57 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import express from "express";
6
- import { INVALID_REQUEST, PARSE_ERROR } from "../../utils/index.js";
7
- import { createAgent } from "../../services/index.js";
6
+ import { createAgent, Service, } from "../../services/index.js";
8
7
  import cors from "cors";
9
8
  import { jsonRPCMiddleware } from "./middeware.js";
10
9
  import { errorHandler } from "./errors.js";
11
- function rpcParser(req, res, next) {
10
+ import { logger } from "../../config/index.js";
11
+ import { A2AError } from "@a2a-js/sdk/server";
12
+ import { formatJson } from "../../utils/common/utils.js";
13
+ export function rpcParser(req, res, next) {
12
14
  express.json()(req, res, (err) => {
15
+ if (!req.body || typeof req.body !== "object") {
16
+ return next(A2AError.parseError(`Invalid request body: ${formatJson(req.body)}`));
17
+ }
13
18
  if (err) {
14
19
  if (err instanceof SyntaxError &&
15
20
  "status" in err &&
16
21
  err.status === 400 &&
17
22
  "body" in err) {
18
- return next(PARSE_ERROR({
19
- data: err.message,
20
- }));
23
+ return next(A2AError.parseError(`Invalid request body: ${formatJson(req.body)}`));
21
24
  }
22
25
  return next(err);
23
26
  }
24
27
  next();
25
28
  });
26
29
  }
27
- function ensureAgent(agentOrParams) {
28
- if (agentOrParams &&
29
- typeof agentOrParams === "object" &&
30
- "agentCard" in agentOrParams &&
31
- typeof agentOrParams.agentCard === "object" &&
32
- "sendMessage" in agentOrParams &&
33
- typeof agentOrParams.sendMessage === "function" &&
34
- "streamMessage" in agentOrParams &&
35
- typeof agentOrParams.streamMessage === "function" &&
36
- "addConnection" in agentOrParams &&
37
- typeof agentOrParams.addConnection === "function" &&
38
- "removeConnection" in agentOrParams &&
39
- typeof agentOrParams.removeConnection === "function" &&
40
- "getState" in agentOrParams &&
41
- typeof agentOrParams.getState === "function" &&
42
- "setState" in agentOrParams &&
43
- typeof agentOrParams.setState === "function") {
44
- return agentOrParams;
45
- }
46
- else if (agentOrParams &&
30
+ const isParams = (agentOrParams) => {
31
+ return (agentOrParams &&
47
32
  typeof agentOrParams === "object" &&
48
33
  "engine" in agentOrParams &&
49
34
  typeof agentOrParams.engine === "function" &&
50
35
  "agentCard" in agentOrParams &&
51
- typeof agentOrParams.agentCard === "object") {
36
+ typeof agentOrParams.agentCard === "object");
37
+ };
38
+ const ensureAgent = (agentOrParams) => {
39
+ if (agentOrParams instanceof Service) {
40
+ return agentOrParams;
41
+ }
42
+ else if (isParams(agentOrParams)) {
52
43
  return createAgent(agentOrParams);
53
44
  }
54
45
  throw new Error("invalid agent or params");
55
- }
56
- export function createAgentServer(params) {
57
- const { app = express(), basePath = "/", agentCardPath = "/.well-known/agent-card.json", agent, } = params;
46
+ };
47
+ const registerAgent = async (agentCard) => {
48
+ logger.debug("registerAgent: not implemented", { agentCard });
49
+ return Promise.resolve(agentCard);
50
+ };
51
+ export function createAgentServer({ app = express(), basePath = "/", agentCardPath = "/.well-known/agent-card.json", agent, corsOptions, extendedAgentCard, register = false, port, }) {
58
52
  const agentInstance = ensureAgent(agent);
59
- app.use(cors(params.corsOptions));
53
+ app.use(cors(corsOptions));
60
54
  if (agentCardPath !== "/.well-known/agent-card.json") {
61
55
  // mount at the root for compliance with RFC8615 standard
56
+ // todo: align with emerging multi-agent standards
62
57
  app.use("/.well-known/agent-card.json", (_, res) => {
63
58
  res.json(agentInstance.agentCard);
64
59
  });
@@ -79,10 +74,10 @@ export function createAgentServer(params) {
79
74
  //a standard express middleware to handle json-rpc requests
80
75
  app.post(basePath, rpcParser, async (req, res, next) => {
81
76
  const { jsonrpc } = req.body;
82
- if (jsonrpc === "2.0") {
83
- return await jsonRPCMiddleware(agentInstance, req, res, next, params.extendedAgentCard);
77
+ if (jsonrpc !== "2.0") {
78
+ return next(A2AError.invalidRequest("Invalid JSON-RPC request"));
84
79
  }
85
- next(INVALID_REQUEST({ data: { message: "Invalid JSON-RPC request" } }));
80
+ return await jsonRPCMiddleware(agentInstance, req, res, next, extendedAgentCard);
86
81
  });
87
82
  app.use(errorHandler);
88
83
  /** this is an example of using trpc as express middleware
@@ -101,5 +96,21 @@ export function createAgentServer(params) {
101
96
  );
102
97
  * we could also use trpc directly or any other transport layer
103
98
  */
104
- return { app, agent: agentInstance };
99
+ const start = (_port) => {
100
+ try {
101
+ const listenPort = _port ?? port;
102
+ const server = app.listen(listenPort, () => {
103
+ logger.info(`Agent server started on port ${listenPort}`);
104
+ });
105
+ if (register) {
106
+ registerAgent(agentInstance.agentCard);
107
+ }
108
+ return server;
109
+ }
110
+ catch (error) {
111
+ logger.error(`Failed to start agent server`, error);
112
+ throw error;
113
+ }
114
+ };
115
+ return { app, agent: agentInstance, start };
105
116
  }
@@ -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
+ /**
7
+ * Our universal executor for {@link A2A.Engine}.
8
+ * @param engine - {@link A2A.Engine} to execute.
9
+ * @param context - {@link A2A.Context} provided to the engine.
10
+ */
11
+ export declare const execute: (engine: A2A.Engine, context: A2A.Context) => Promise<void>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ /**
6
+ * Our universal executor for {@link A2A.Engine}.
7
+ * @param engine - {@link A2A.Engine} to execute.
8
+ * @param context - {@link A2A.Context} provided to the engine.
9
+ */
10
+ export const execute = async (engine, context) => {
11
+ try {
12
+ if (context.publisher.onStart) {
13
+ await context.publisher.onStart(context);
14
+ }
15
+ for await (const update of engine(context)) {
16
+ if ((await context.isCancelled()) || context.abortSignal.aborted) {
17
+ await context.publisher.onCancel(update);
18
+ break;
19
+ }
20
+ await context.publisher.onUpdate(update);
21
+ }
22
+ }
23
+ catch (error) {
24
+ /* onError triggers completion internally */
25
+ await context.publisher.onError(error);
26
+ /* rethrow the error to be handled by the caller */
27
+ throw error;
28
+ }
29
+ finally {
30
+ await context.publisher.onComplete();
31
+ }
32
+ };
@@ -2,131 +2,18 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- /**
6
- * @fileoverview A2A Context Factory Functions
7
- *
8
- * This module provides factory functions for creating A2A execution contexts
9
- * and command channels. It handles the composition of various context components
10
- * including command proxies, event managers, and cancellation mechanisms.
11
- *
12
- * @module A2AContextFactory
13
- * @version 0.5.7
14
- * @since 0.5.6
15
- * @author The Artinet Project
16
- */
17
- import { Command, ReceiveCommandProxyInterface, State, Update, Context, A2AServiceInterface, ContextManagerInterface, EventManagerOptions } from "../../../types/index.js";
18
- /**
19
- * Creates a command channel proxy for the given command.
20
- *
21
- * This function wraps a command in a proxy interface that provides
22
- * controlled access to command data and may add additional functionality
23
- * such as validation, logging, or transformation.
24
- *
25
- * @template TCommand - The command type, must extend Command
26
- * @param request - The command to wrap in a proxy
27
- * @returns Command proxy interface for the request
28
- *
29
- * @example
30
- * ```typescript
31
- * const command: MessageSendParams = {
32
- * message: {
33
- * content: 'Hello, world!',
34
- * recipient: 'agent-123'
35
- * }
36
- * };
37
- *
38
- * const commandProxy = createCommandChannel(command);
39
- * // Use commandProxy to access command data safely
40
- * ```
41
- *
42
- * @public
43
- * @since 0.5.6
44
- */
45
- export declare function createCommandChannel<TCommand extends Command = Command>(request: TCommand): ReceiveCommandProxyInterface<TCommand>;
46
- /**
47
- * Creates a complete A2A execution context for command processing.
48
- *
49
- * This is the main factory function for creating execution contexts in the A2A
50
- * framework. It assembles all the necessary components including command proxy,
51
- * event management, cancellation handling, and state management into a cohesive
52
- * execution environment.
53
- *
54
- * The context serves as the primary execution environment passed to execution
55
- * engines and provides access to all the resources and capabilities needed
56
- * for command processing.
57
- *
58
- * @template TCommand - The command type, must extend Command
59
- * @template TState - The state type, must extend State
60
- * @template TUpdate - The update type, must extend Update
61
- *
62
- * @param request - The command to execute
63
- * @param service - The A2A service instance
64
- * @param contextManager - Manager for context lifecycle
65
- * @param abortSignal - Optional abort signal for cancellation
66
- * @param contextId - Optional context ID (generates UUID if not provided)
67
- * @param eventOverrides - Optional event manager configuration overrides
68
- * @returns Fully configured execution context
69
- *
70
- * @example
71
- * ```typescript
72
- * // Basic context creation
73
- * const context = createContext(
74
- * messageCommand,
75
- * a2aService,
76
- * contextManager
77
- * );
78
- *
79
- * // Execute with the context
80
- * for await (const update of engine(context)) {
81
- * console.log('Update:', update);
82
- * }
83
- * ```
84
- *
85
- * @example
86
- * ```typescript
87
- * // Context creation with custom options
88
- * const abortController = new AbortController();
89
- * const customEventOptions = {
90
- * onStart: async (ctx) => {
91
- * console.log('Custom start handler');
92
- * return initialState;
93
- * }
94
- * };
95
- *
96
- * const context = createContext(
97
- * command,
98
- * service,
99
- * contextManager,
100
- * abortController.signal,
101
- * 'custom-context-id',
102
- * customEventOptions
103
- * );
104
- *
105
- * // Cancel after 30 seconds
106
- * setTimeout(() => abortController.abort(), 30000);
107
- * ```
108
- *
109
- * @remarks
110
- * **Context Lifecycle:**
111
- * 1. Command proxy is created to wrap the incoming request
112
- * 2. Event manager is instantiated with service and override options
113
- * 3. Cancellation mechanisms are configured (abort signal + service cancellation)
114
- * 4. State accessor is bound to the event manager
115
- * 5. Complete context is registered with the context manager
116
- *
117
- * **Cancellation Handling:**
118
- * The context provides multiple cancellation mechanisms:
119
- * - AbortSignal for standard cancellation patterns
120
- * - Service-level cancellation tracking
121
- * - Combined cancellation status through isCancelled()
122
- *
123
- * **Event Management:**
124
- * The context includes an event manager that handles:
125
- * - Execution lifecycle events (start, update, complete, error)
126
- * - State transitions and persistence
127
- * - Custom event handling through overrides
128
- *
129
- * @public
130
- * @since 0.5.6
131
- */
132
- export declare function createContext<TCommand extends Command = Command, TState extends State = State, TUpdate extends Update = Update>(request: TCommand, service: A2AServiceInterface<TCommand, TState, TUpdate>, contextManager: ContextManagerInterface<TCommand, TState, TUpdate>, abortSignal?: AbortSignal, contextId?: string, eventOverrides?: EventManagerOptions<TCommand, TState, TUpdate>): Context<TCommand, TState, TUpdate>;
5
+ import { A2A } from "../../../types/index.js";
6
+ export declare function createBaseContext({ contextId, service, task, overrides, abortSignal, }: {
7
+ contextId: string;
8
+ service: A2A.Service;
9
+ task: A2A.Task;
10
+ overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
11
+ abortSignal?: AbortSignal;
12
+ }): A2A.BaseContext;
13
+ export declare function createContext({ baseContext, taskId, messenger, extensions, references, }: {
14
+ baseContext: A2A.BaseContext;
15
+ taskId: string;
16
+ messenger: A2A.MessageConsumerProxy;
17
+ extensions?: A2A.AgentExtension[];
18
+ references?: A2A.Task[];
19
+ }): A2A.Context;
@@ -2,149 +2,43 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { createEventManager } from "./event.js";
6
- import { v4 as uuidv4 } from "uuid";
7
- import { CommandChannel } from "../../core/managers/command.js";
8
5
  /**
9
- * Creates a command channel proxy for the given command.
10
- *
11
- * This function wraps a command in a proxy interface that provides
12
- * controlled access to command data and may add additional functionality
13
- * such as validation, logging, or transformation.
14
- *
15
- * @template TCommand - The command type, must extend Command
16
- * @param request - The command to wrap in a proxy
17
- * @returns Command proxy interface for the request
18
- *
19
- * @example
20
- * ```typescript
21
- * const command: MessageSendParams = {
22
- * message: {
23
- * content: 'Hello, world!',
24
- * recipient: 'agent-123'
25
- * }
26
- * };
27
- *
28
- * const commandProxy = createCommandChannel(command);
29
- * // Use commandProxy to access command data safely
30
- * ```
31
- *
32
- * @public
33
- * @since 0.5.6
34
- */
35
- export function createCommandChannel(request) {
36
- return CommandChannel.create(request);
37
- }
38
- /**
39
- * Creates a complete A2A execution context for command processing.
40
- *
41
- * This is the main factory function for creating execution contexts in the A2A
42
- * framework. It assembles all the necessary components including command proxy,
43
- * event management, cancellation handling, and state management into a cohesive
44
- * execution environment.
45
- *
46
- * The context serves as the primary execution environment passed to execution
47
- * engines and provides access to all the resources and capabilities needed
48
- * for command processing.
49
- *
50
- * @template TCommand - The command type, must extend Command
51
- * @template TState - The state type, must extend State
52
- * @template TUpdate - The update type, must extend Update
6
+ * @fileoverview A2A Context Factory Functions
53
7
  *
54
- * @param request - The command to execute
55
- * @param service - The A2A service instance
56
- * @param contextManager - Manager for context lifecycle
57
- * @param abortSignal - Optional abort signal for cancellation
58
- * @param contextId - Optional context ID (generates UUID if not provided)
59
- * @param eventOverrides - Optional event manager configuration overrides
60
- * @returns Fully configured execution context
8
+ * This module provides factory functions for creating A2A execution contexts
9
+ * and command channels. It handles the composition of various context components
10
+ * including command proxies, event managers, and cancellation mechanisms.
61
11
  *
62
- * @example
63
- * ```typescript
64
- * // Basic context creation
65
- * const context = createContext(
66
- * messageCommand,
67
- * a2aService,
68
- * contextManager
69
- * );
70
- *
71
- * // Execute with the context
72
- * for await (const update of engine(context)) {
73
- * console.log('Update:', update);
74
- * }
75
- * ```
76
- *
77
- * @example
78
- * ```typescript
79
- * // Context creation with custom options
80
- * const abortController = new AbortController();
81
- * const customEventOptions = {
82
- * onStart: async (ctx) => {
83
- * console.log('Custom start handler');
84
- * return initialState;
85
- * }
86
- * };
87
- *
88
- * const context = createContext(
89
- * command,
90
- * service,
91
- * contextManager,
92
- * abortController.signal,
93
- * 'custom-context-id',
94
- * customEventOptions
95
- * );
96
- *
97
- * // Cancel after 30 seconds
98
- * setTimeout(() => abortController.abort(), 30000);
99
- * ```
100
- *
101
- * @remarks
102
- * **Context Lifecycle:**
103
- * 1. Command proxy is created to wrap the incoming request
104
- * 2. Event manager is instantiated with service and override options
105
- * 3. Cancellation mechanisms are configured (abort signal + service cancellation)
106
- * 4. State accessor is bound to the event manager
107
- * 5. Complete context is registered with the context manager
108
- *
109
- * **Cancellation Handling:**
110
- * The context provides multiple cancellation mechanisms:
111
- * - AbortSignal for standard cancellation patterns
112
- * - Service-level cancellation tracking
113
- * - Combined cancellation status through isCancelled()
114
- *
115
- * **Event Management:**
116
- * The context includes an event manager that handles:
117
- * - Execution lifecycle events (start, update, complete, error)
118
- * - State transitions and persistence
119
- * - Custom event handling through overrides
120
- *
121
- * @public
12
+ * @module A2AContextFactory
13
+ * @version 0.6.0-preview
122
14
  * @since 0.5.6
15
+ * @author The Artinet Project
123
16
  */
124
- export function createContext(request, service, contextManager, abortSignal = new AbortController().signal, contextId = uuidv4(), eventOverrides) {
125
- // Note: Context reuse logic is currently disabled for testing
126
- // Future versions may re-enable context reuse for performance optimization
127
- // if (contextId && contextId.length > 0) {
128
- // //disable for testing
129
- // const context = contextManager.getContext(contextId);
130
- // if (!context) {
131
- // console.error("createExecutionContext", contextId, "Context not found");
132
- // throw new TRPCError({
133
- // code: "NOT_FOUND",
134
- // message: "Context not found",
135
- // });
136
- // }
137
- // return context;
138
- // }
139
- let newEventManager;
17
+ import { createStateMachine } from "./state-machine.js";
18
+ import { v4 as uuidv4 } from "uuid";
19
+ export function createBaseContext({ contextId = uuidv4(), service, task, overrides, abortSignal = new AbortController().signal, }) {
20
+ const isCancelled = async () => (await service.cancellations.has(task.id)) || abortSignal.aborted;
21
+ const getState = async (args) => args ? await service.tasks.get(args) : task;
140
22
  const context = {
141
23
  contextId: contextId,
142
- command: createCommandChannel(request),
143
- events: (newEventManager = createEventManager(service, contextId, eventOverrides)),
144
- signal: abortSignal,
145
- isCancelled: () => abortSignal?.aborted || service.isCancelled(contextId),
146
- State: () => newEventManager.getState(),
24
+ service: service,
25
+ publisher: createStateMachine({ contextId, service, task, overrides }),
26
+ isCancelled,
27
+ abortSignal: abortSignal,
28
+ getState,
29
+ };
30
+ return context;
31
+ }
32
+ export function createContext({ baseContext, taskId, messenger, extensions, references, }) {
33
+ const getTask = async () => baseContext.publisher.currentTask;
34
+ const context = {
35
+ ...baseContext,
36
+ taskId,
37
+ userMessage: messenger.message,
38
+ messages: messenger,
39
+ getTask,
40
+ extensions: extensions,
41
+ references: references,
147
42
  };
148
- contextManager.setContext(contextId, context);
149
43
  return context;
150
44
  }
@@ -0,0 +1,6 @@
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 createHandler(methods?: Omit<Partial<A2A.RequestHandler>, "getAgentCard">): Omit<A2A.RequestHandler, "getAgentCard">;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { getTask, cancelTask, sendMessage, sendMessageStream, subscribeToTask, } from "../handlers/index.js";
6
+ export function createHandler(methods) {
7
+ return {
8
+ getTask: methods?.getTask ?? getTask,
9
+ cancelTask: methods?.cancelTask ?? cancelTask,
10
+ sendMessage: methods?.sendMessage ?? sendMessage,
11
+ streamMessage: methods?.streamMessage ?? sendMessageStream,
12
+ resubscribe: methods?.resubscribe ?? subscribeToTask,
13
+ };
14
+ }
@@ -1,5 +1,3 @@
1
1
  export * from "./context.js";
2
- export * from "./builder.js";
3
- export * from "./event.js";
4
- export * from "./method.js";
2
+ export * from "./state-machine.js";
5
3
  export * from "./service.js";
@@ -1,5 +1,3 @@
1
1
  export * from "./context.js";
2
- export * from "./builder.js";
3
- export * from "./event.js";
4
- export * from "./method.js";
2
+ export * from "./state-machine.js";
5
3
  export * from "./service.js";
@@ -1,9 +1,22 @@
1
+ import * as describe from "../../../create/agentcard-builder.js";
2
+ import { A2A } from "../../../types/index.js";
3
+ import { Service } from "../service.js";
4
+ export interface ServiceParams {
5
+ agentCard: describe.AgentCardParams;
6
+ engine: A2A.Engine;
7
+ contexts?: A2A.Contexts;
8
+ streams?: A2A.Streams;
9
+ connections?: A2A.Connections;
10
+ cancellations?: A2A.Cancellations;
11
+ tasks?: A2A.Tasks;
12
+ methods?: Omit<A2A.RequestHandler, "getAgentCard">;
13
+ overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
14
+ }
15
+ export type CreateAgentParams = ServiceParams;
16
+ export declare function createService(params: ServiceParams): Service;
17
+ export declare const createAgent: typeof createService;
18
+ export type AgentHandler = ReturnType<typeof createService>;
1
19
  /**
2
- * Copyright 2025 The Artinet Project
3
- * SPDX-License-Identifier: Apache-2.0
20
+ * @deprecated Use AgentHandler instead
4
21
  */
5
- import { FactoryParams } from "../../../types/index.js";
6
- import { A2AService } from "../service.js";
7
- export declare function createService(params: FactoryParams): A2AService;
8
- export declare const createAgent: typeof createService;
9
- export type AgentImpl = ReturnType<typeof createAgent>;
22
+ export type AgentImpl = AgentHandler;