@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,106 +2,254 @@
2
2
  * Copyright 2025 The Artinet Project
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { MessageSendParamsSchema, TaskQueryParamsSchema, TaskIdParamsSchema, } from "../../types/index.js";
6
- import { coreExecute } from "../core/execution/execute.js";
7
- import { createMessageSendParams } from "./helpers/message-builder.js";
5
+ import { A2A } from "../../types/index.js";
8
6
  import { validateSchema } from "../../utils/common/schema-validation.js";
9
- export class A2AService {
10
- agentCard;
11
- engine;
12
- connections;
13
- cancellations;
14
- tasks;
15
- contexts;
16
- methods;
17
- eventOverrides;
18
- enforceParamValidation = false;
19
- constructor(agentCard, engine, contexts, connections, cancellations, tasks, methods, eventOverrides, enforceParamValidation = false) {
20
- this.engine = engine;
21
- this.agentCard = agentCard;
22
- this.contexts = contexts;
23
- this.connections = connections;
24
- this.cancellations = cancellations;
25
- this.tasks = tasks;
26
- this.methods = methods;
27
- this.eventOverrides = eventOverrides;
28
- this.enforceParamValidation = enforceParamValidation;
29
- }
30
- async execute(engine, context) {
31
- await coreExecute(engine ?? this.engine, context);
7
+ import * as describe from "../../create/describe.js";
8
+ import { INVALID_REQUEST, TASK_NOT_FOUND } from "../../utils/common/errors.js";
9
+ import { Messenger } from "./messenger.js";
10
+ import { execute } from "./execute.js";
11
+ import { createService } from "./factory/service.js";
12
+ import { getReferences } from "./helpers/references.js";
13
+ import { logger } from "../../config/index.js";
14
+ const createMessageParams = (task) => {
15
+ const latestUserMessage = task.history
16
+ ?.filter((msg) => msg.role === "user")
17
+ ?.pop();
18
+ if (!latestUserMessage) {
19
+ throw INVALID_REQUEST("No user message found");
32
20
  }
33
- async stop() {
34
- const currentTasks = await this.tasks.getStates();
35
- for (const id of currentTasks) {
36
- this.addCancellation(id);
37
- }
38
- return;
21
+ const messageParams = {
22
+ message: {
23
+ ...latestUserMessage,
24
+ taskId: task.id,
25
+ contextId: latestUserMessage.contextId ?? task.contextId,
26
+ },
27
+ metadata: task.metadata,
28
+ };
29
+ return messageParams;
30
+ };
31
+ /**
32
+ * @note Comprehensive Extension system coming in a future release
33
+ */
34
+ const getExtensions = async (extensions) => {
35
+ logger.warn("getExtensions: not implemented", { extensions });
36
+ return [];
37
+ };
38
+ /**
39
+ * @note We endeavor to remove all optional parameters from below this class.
40
+ * This will allow the service to act as the boundary to our Hexagonal Architecture.
41
+ */
42
+ export class Service {
43
+ _agentCard;
44
+ _engine;
45
+ _connections;
46
+ _cancellations;
47
+ _tasks;
48
+ _contexts;
49
+ _streams;
50
+ _methods;
51
+ _overrides;
52
+ constructor(_agentCard, _engine, _connections, _cancellations, _tasks, _contexts, _streams, _methods, _overrides) {
53
+ this._agentCard = _agentCard;
54
+ this._engine = _engine;
55
+ this._connections = _connections;
56
+ this._cancellations = _cancellations;
57
+ this._tasks = _tasks;
58
+ this._contexts = _contexts;
59
+ this._streams = _streams;
60
+ this._methods = _methods;
61
+ this._overrides = _overrides;
39
62
  }
40
- addConnection(id) {
41
- this.connections.addConnection(id);
63
+ get methods() {
64
+ return this._methods;
42
65
  }
43
- removeConnection(id) {
44
- this.connections.removeConnection(id);
66
+ set methods(methods) {
67
+ this._methods = {
68
+ ...this._methods,
69
+ ...methods,
70
+ };
45
71
  }
46
- isCancelled(id) {
47
- return this.cancellations.isCancelled(id);
72
+ get agentCard() {
73
+ return this._agentCard;
48
74
  }
49
- addCancellation(id) {
50
- this.cancellations.addCancellation(id);
75
+ get engine() {
76
+ return this._engine;
51
77
  }
52
- removeCancellation(id) {
53
- this.cancellations.removeCancellation(id);
78
+ set engine(engine) {
79
+ this._engine = engine;
54
80
  }
55
- async getState(id) {
56
- return await this.tasks.getState(id);
81
+ get connections() {
82
+ return this._connections;
57
83
  }
58
- async setState(id, data) {
59
- await this.tasks.setState(id, data);
84
+ get cancellations() {
85
+ return this._cancellations;
60
86
  }
61
- async getTask(input) {
62
- return await this.methods.getTask(this.enforceParamValidation
63
- ? await validateSchema(TaskQueryParamsSchema, input)
64
- : input, { service: this });
87
+ get tasks() {
88
+ return this._tasks;
65
89
  }
66
- async cancelTask(input) {
67
- return await this.methods.cancelTask(this.enforceParamValidation
68
- ? await validateSchema(TaskIdParamsSchema, input)
69
- : input, {
70
- service: this,
71
- contextManager: this.contexts,
72
- });
90
+ get contexts() {
91
+ return this._contexts;
73
92
  }
74
- async sendMessage(message, params) {
75
- return await this.methods.sendMessage(this.enforceParamValidation
76
- ? await validateSchema(MessageSendParamsSchema, message)
77
- : createMessageSendParams(message), {
78
- ...params, //we may include additional params in the future that may not need to be handled by the service
79
- service: this,
80
- engine: params?.engine ?? this.engine,
81
- contextManager: this.contexts,
82
- signal: params?.signal ?? new AbortController().signal,
93
+ set contexts(contexts) {
94
+ this._contexts = {
95
+ ...this._contexts,
96
+ ...contexts,
97
+ };
98
+ }
99
+ get streams() {
100
+ return this._streams;
101
+ }
102
+ get overrides() {
103
+ return this._overrides;
104
+ }
105
+ set overrides(overrides) {
106
+ this._overrides = {
107
+ ...this._overrides,
108
+ ...overrides,
109
+ };
110
+ }
111
+ async execute({ engine, context, }) {
112
+ await execute(engine, context);
113
+ }
114
+ async getAgentCard() {
115
+ return this.agentCard;
116
+ }
117
+ async stop() {
118
+ logger.info(`Service[stop]`);
119
+ for (const context of await this.contexts.list()) {
120
+ await context.publisher.onCancel(describe.update.canceled({
121
+ contextId: context.contextId,
122
+ taskId: context.taskId,
123
+ message: describe.message("service stopped"),
124
+ }));
125
+ }
126
+ return;
127
+ }
128
+ async getTask(params, context, options) {
129
+ const taskParams = await validateSchema(A2A.TaskQueryParamsSchema, params);
130
+ logger.info(`Service[getTask]:`, { taskId: taskParams.id });
131
+ const task = await this.tasks.get(taskParams.id);
132
+ if (!task) {
133
+ throw TASK_NOT_FOUND({ taskId: taskParams.id });
134
+ }
135
+ return await this.methods.getTask(taskParams, context ??
136
+ (await this.contexts.create({
137
+ contextId: task.contextId,
138
+ service: this,
139
+ abortSignal: options?.abortSignal,
140
+ task: task,
141
+ overrides: this.overrides,
142
+ messenger: Messenger.create(createMessageParams(task)),
143
+ })));
144
+ }
145
+ async cancelTask(params, context, options) {
146
+ const taskParams = await validateSchema(A2A.TaskIdParamsSchema, params);
147
+ logger.info(`Service[cancelTask]:`, { taskId: taskParams.id });
148
+ const task = await this.tasks.get(taskParams.id);
149
+ if (!task) {
150
+ throw TASK_NOT_FOUND({ taskId: taskParams.id });
151
+ }
152
+ return await this.methods.cancelTask(taskParams, context ??
153
+ (await this.contexts.create({
154
+ contextId: task.contextId,
155
+ service: this,
156
+ abortSignal: options?.abortSignal,
157
+ task: task,
158
+ overrides: this.overrides,
159
+ messenger: Messenger.create(createMessageParams(task)),
160
+ })));
161
+ }
162
+ async sendMessage(paramsOrMessage, context, options) {
163
+ const params = describe.messageSendParams(paramsOrMessage);
164
+ return await this._sendMessage(params, context, options);
165
+ }
166
+ async _sendMessage(params, context, options) {
167
+ const messageParams = await validateSchema(A2A.MessageSendParamsSchema, params);
168
+ logger.info(`Service[sendMessage]:`, {
169
+ messageId: messageParams.message.messageId,
170
+ });
171
+ logger.debug(`Service[sendMessage]:`, {
172
+ taskId: messageParams.message.taskId,
83
173
  });
174
+ logger.debug(`Service[sendMessage]:`, {
175
+ contextId: messageParams.message.contextId,
176
+ });
177
+ const task = await this.tasks.create({
178
+ id: messageParams.message.taskId,
179
+ contextId: messageParams.message.contextId,
180
+ history: [messageParams.message],
181
+ metadata: {
182
+ ...messageParams.metadata,
183
+ },
184
+ });
185
+ return await this.methods.sendMessage(messageParams, context ??
186
+ (await this.contexts.create({
187
+ contextId: task.contextId,
188
+ service: this,
189
+ abortSignal: options?.abortSignal,
190
+ task: task,
191
+ overrides: this.overrides,
192
+ messenger: Messenger.create(messageParams),
193
+ references: await getReferences(this.tasks, messageParams.message.referenceTaskIds),
194
+ extensions: await getExtensions(messageParams.message.extensions),
195
+ })));
84
196
  }
85
- async *streamMessage(message, params) {
86
- yield* this.methods.streamMessage(this.enforceParamValidation
87
- ? await validateSchema(MessageSendParamsSchema, message)
88
- : createMessageSendParams(message), {
89
- ...params,
90
- service: this,
91
- engine: params?.engine ?? this.engine,
92
- contextManager: this.contexts,
93
- signal: params?.signal ?? new AbortController().signal,
197
+ async *streamMessage(paramsOrMessage, context, options) {
198
+ const params = describe.messageSendParams(paramsOrMessage);
199
+ yield* this.sendMessageStream(params, context, options);
200
+ }
201
+ async *sendMessageStream(params, context, options) {
202
+ const messageParams = await validateSchema(A2A.MessageSendParamsSchema, params);
203
+ logger.info("Service[streamMessage]:", {
204
+ taskId: messageParams.message.taskId,
205
+ contextId: messageParams.message.contextId,
206
+ });
207
+ const task = await this.tasks.create({
208
+ id: messageParams.message.taskId,
209
+ contextId: messageParams.message.contextId,
210
+ history: [messageParams.message],
211
+ metadata: {
212
+ ...messageParams.metadata,
213
+ },
94
214
  });
215
+ logger.debug("Service[streamMessage]: task created", {
216
+ taskId: task.id,
217
+ contextId: task.contextId,
218
+ });
219
+ yield* this.methods.streamMessage(messageParams, context ??
220
+ (await this.contexts.create({
221
+ contextId: task.contextId,
222
+ service: this,
223
+ abortSignal: options?.abortSignal,
224
+ task: task,
225
+ overrides: this.overrides,
226
+ messenger: Messenger.create(messageParams),
227
+ references: await getReferences(this.tasks, messageParams.message.referenceTaskIds),
228
+ extensions: await getExtensions(messageParams.message.extensions),
229
+ })));
95
230
  }
96
- async *resubscribe(input, params) {
97
- yield* this.methods.resubscribe(this.enforceParamValidation
98
- ? await validateSchema(TaskIdParamsSchema, input)
99
- : input, {
100
- ...params,
101
- service: this,
102
- engine: params?.engine ?? this.engine,
103
- contextManager: this.contexts,
104
- signal: params?.signal ?? new AbortController().signal,
231
+ async *resubscribe(params, context, options) {
232
+ const taskParams = await validateSchema(A2A.TaskIdParamsSchema, params);
233
+ logger.info(`Service[resubscribe]:`, { taskId: taskParams.id });
234
+ const task = await this.tasks.get(taskParams.id);
235
+ if (!task) {
236
+ throw TASK_NOT_FOUND({ taskId: taskParams.id });
237
+ }
238
+ logger.debug("Service[resubscribe]:", {
239
+ taskId: task.id,
240
+ contextId: task.contextId,
105
241
  });
242
+ yield* this.methods.resubscribe(taskParams, context ??
243
+ (await this.contexts.create({
244
+ contextId: task.contextId,
245
+ service: this,
246
+ abortSignal: options?.abortSignal,
247
+ task: task,
248
+ overrides: this.overrides,
249
+ messenger: Messenger.create(createMessageParams(task)),
250
+ })));
251
+ }
252
+ static create(params) {
253
+ return createService(params);
106
254
  }
107
255
  }
@@ -0,0 +1,18 @@
1
+ import { EventEmitter } from "events";
2
+ import { A2A } from "../../types/index.js";
3
+ export declare class StateMachine extends EventEmitter<A2A.Emissions> implements A2A.EventPublisher {
4
+ readonly _contextId: string;
5
+ private readonly _consumer;
6
+ private _currentTask;
7
+ onStart: (context: A2A.Context) => Promise<A2A.Task>;
8
+ onCancel: (update: A2A.Update) => Promise<void>;
9
+ onUpdate: (update: A2A.Update) => Promise<A2A.Task>;
10
+ onError: (error: any) => Promise<void>;
11
+ onComplete: () => Promise<void>;
12
+ constructor(_contextId: string, _consumer: A2A.EventConsumer, _currentTask: A2A.Task);
13
+ get currentTask(): A2A.Task;
14
+ private set currentTask(value);
15
+ get consumer(): A2A.EventConsumer;
16
+ get contextId(): string;
17
+ static create(contextId: string, service: A2A.Service, task: A2A.Task, overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>): StateMachine;
18
+ }
@@ -0,0 +1,78 @@
1
+ import { EventEmitter } from "events";
2
+ import { INTERNAL_ERROR } from "../../utils/index.js";
3
+ import { logger } from "../../config/index.js";
4
+ import { createStateMachine } from "./factory/state-machine.js";
5
+ export class StateMachine extends EventEmitter {
6
+ _contextId;
7
+ _consumer;
8
+ _currentTask;
9
+ onStart = async (context) => {
10
+ if (this.consumer.onStart) {
11
+ this.currentTask = await this.consumer.onStart(context);
12
+ }
13
+ this.emit("start", context.messages, this.currentTask);
14
+ return this.currentTask;
15
+ };
16
+ onCancel = async (update) => {
17
+ if (this.consumer.onCancel) {
18
+ await this.consumer.onCancel(update, this.currentTask);
19
+ }
20
+ this.emit("cancel", update);
21
+ };
22
+ onUpdate = async (update) => {
23
+ if (this.consumer.onUpdate) {
24
+ this.currentTask = await this.consumer.onUpdate(update, this.currentTask);
25
+ }
26
+ else {
27
+ logger.warn(`onUpdate[${this.contextId}]:`, "onUpdate callback not found");
28
+ this.currentTask = update;
29
+ }
30
+ this.emit("update", this.currentTask, update);
31
+ return this.currentTask;
32
+ };
33
+ onError = async (error) => {
34
+ if (this.consumer.onError) {
35
+ await this.consumer.onError(error, this.currentTask);
36
+ }
37
+ if (!this.listenerCount("error"))
38
+ return;
39
+ this.emit("error", error, this.currentTask);
40
+ };
41
+ onComplete = async () => {
42
+ if (this.consumer.onComplete) {
43
+ await this.consumer.onComplete(this.currentTask);
44
+ }
45
+ this.emit("complete", this.currentTask);
46
+ };
47
+ constructor(_contextId, _consumer, _currentTask) {
48
+ super();
49
+ this._contextId = _contextId;
50
+ this._consumer = _consumer;
51
+ this._currentTask = _currentTask;
52
+ }
53
+ get currentTask() {
54
+ if (!this._currentTask) {
55
+ throw INTERNAL_ERROR({
56
+ error: { message: "state machine is not initialized" },
57
+ });
58
+ }
59
+ return this._currentTask;
60
+ }
61
+ set currentTask(task) {
62
+ this._currentTask = task;
63
+ }
64
+ get consumer() {
65
+ return this._consumer;
66
+ }
67
+ get contextId() {
68
+ return this._contextId;
69
+ }
70
+ static create(contextId, service, task, overrides) {
71
+ return createStateMachine({
72
+ contextId,
73
+ service,
74
+ task,
75
+ overrides,
76
+ });
77
+ }
78
+ }
@@ -0,0 +1,22 @@
1
+ import { A2A } from "../../types/index.js";
2
+ export declare class Stream implements A2A.Stream {
3
+ private _contextId;
4
+ private _context;
5
+ private _updates;
6
+ private _completed;
7
+ protected running: AsyncGenerator<A2A.Update> | null;
8
+ constructor(_contextId: string, _context: A2A.Context, _updates?: A2A.Update[], _completed?: boolean);
9
+ get contextId(): string;
10
+ get isAlive(): boolean;
11
+ kill(): Promise<void>;
12
+ get context(): A2A.Context;
13
+ set context(context: A2A.Context);
14
+ get updates(): A2A.Update[];
15
+ run({ service, }: {
16
+ service: A2A.Service;
17
+ }): AsyncGenerator<A2A.Update>;
18
+ subscribe(): AsyncGenerator<A2A.Update>;
19
+ _run({ service, }: {
20
+ service: A2A.Service;
21
+ }): AsyncGenerator<A2A.Update>;
22
+ }
@@ -0,0 +1,98 @@
1
+ import { sleep } from "../../utils/common/utils.js";
2
+ import { logger } from "../../config/index.js";
3
+ const STREAM_INTERVAL = 5;
4
+ export class Stream {
5
+ _contextId;
6
+ _context;
7
+ _updates;
8
+ _completed;
9
+ running = null;
10
+ constructor(_contextId, _context, _updates = [], _completed = false) {
11
+ this._contextId = _contextId;
12
+ this._context = _context;
13
+ this._updates = _updates;
14
+ this._completed = _completed;
15
+ }
16
+ get contextId() {
17
+ return this._contextId;
18
+ }
19
+ get isAlive() {
20
+ return !this._completed;
21
+ }
22
+ async kill() {
23
+ this._completed = true;
24
+ }
25
+ get context() {
26
+ return this._context;
27
+ }
28
+ set context(context) {
29
+ this._context = context;
30
+ this._contextId = context.contextId;
31
+ }
32
+ get updates() {
33
+ return this._updates;
34
+ }
35
+ async *run({ service, }) {
36
+ this.context.publisher.on("complete", async () => {
37
+ logger.debug(`Stream[run:${this.contextId}]: complete`);
38
+ await this.kill();
39
+ this.running = null;
40
+ });
41
+ this.context.publisher.on("error", async (err) => {
42
+ logger.error(`Stream[run:${this.contextId}]: error`, err);
43
+ await this.context.publisher.onComplete();
44
+ });
45
+ if (!this.running) {
46
+ this.running = this._run({ service });
47
+ yield* this.running;
48
+ }
49
+ yield* this.subscribe();
50
+ }
51
+ async *subscribe() {
52
+ const subscription = this.updates;
53
+ this.context.publisher.on("update", async (_, update) => {
54
+ subscription.push(update);
55
+ });
56
+ let updatesRead = 0;
57
+ while (!this._completed || updatesRead < subscription.length) {
58
+ if (updatesRead < subscription.length) {
59
+ yield subscription[updatesRead++];
60
+ }
61
+ await sleep(STREAM_INTERVAL);
62
+ }
63
+ }
64
+ async *_run({ service, }) {
65
+ let executionError = null;
66
+ const context = this.context;
67
+ // NOTE: isCancelled() returns a Promise, so must be awaited.
68
+ // Without async/await here, updates would never be pushed due to
69
+ // Promise being truthy (making !Promise always false).
70
+ context.publisher.on("update", async (_, update) => {
71
+ if (!(await context.isCancelled())) {
72
+ this.updates.push(update);
73
+ }
74
+ });
75
+ const executePromise = service
76
+ .execute({ engine: service.engine, context })
77
+ .catch((error) => {
78
+ executionError = error;
79
+ })
80
+ .finally(() => {
81
+ this._completed = true;
82
+ });
83
+ while (!this._completed || this.updates.length > 0) {
84
+ if (executionError) {
85
+ throw executionError;
86
+ }
87
+ if (this.updates.length > 0) {
88
+ yield this.updates.shift();
89
+ }
90
+ await sleep(STREAM_INTERVAL);
91
+ }
92
+ await executePromise;
93
+ this._completed = true;
94
+ if (executionError) {
95
+ throw executionError;
96
+ }
97
+ }
98
+ }
@@ -1,2 +1 @@
1
- export * from "./execution/index.js";
2
- export * from "./managers/index.js";
1
+ export * from "./manager.js";
@@ -1,2 +1 @@
1
- export * from "./execution/index.js";
2
- export * from "./managers/index.js";
1
+ export * from "./manager.js";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export declare abstract class Manager<T> {
6
+ private _data;
7
+ private throwOnSet;
8
+ constructor(_data?: Map<string, T>, throwOnSet?: boolean);
9
+ get data(): Map<string, T>;
10
+ set(id: string, data?: T): Promise<void>;
11
+ get(id: string): Promise<T | undefined>;
12
+ delete(id: string): Promise<void>;
13
+ has(id: string): Promise<boolean>;
14
+ list(): Promise<T[]>;
15
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright 2025 The Artinet Project
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { logger } from "../../config/index.js";
6
+ export class Manager {
7
+ _data;
8
+ throwOnSet;
9
+ constructor(_data = new Map(), throwOnSet = true) {
10
+ this._data = _data;
11
+ this.throwOnSet = throwOnSet;
12
+ }
13
+ get data() {
14
+ return this._data;
15
+ }
16
+ async set(id, data) {
17
+ logger.debug(`${this.constructor.name}[set]:`, { id });
18
+ if (!data && this.throwOnSet) {
19
+ throw new Error("Data is required");
20
+ }
21
+ else if (!data) {
22
+ return;
23
+ }
24
+ this.data.set(id, data);
25
+ }
26
+ async get(id) {
27
+ // logger.debug(`${this.constructor.name}[get]:`, { id });
28
+ return this.data.get(id);
29
+ }
30
+ async delete(id) {
31
+ logger.debug(`${this.constructor.name}[delete]:`, { id });
32
+ this.data.delete(id);
33
+ }
34
+ async has(id) {
35
+ // logger.debug(`${this.constructor.name}[has]:`, { id });
36
+ return this.data.has(id);
37
+ }
38
+ async list() {
39
+ // logger.debug(`${this.constructor.name}[list]:`);
40
+ return Array.from(this.data.values());
41
+ }
42
+ }
@@ -3,26 +3,22 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- import { MCPServiceInterface } from "../../types/index.js";
6
+ import { MCP } from "../../types/index.js";
7
7
  import { Implementation } from "@modelcontextprotocol/sdk/types.js";
8
8
  import { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js";
9
- import { Agent } from "../../types/index.js";
10
- export declare class BaseMCPService extends McpServer implements MCPServiceInterface {
9
+ import { Agent } from "../a2a/index.js";
10
+ export interface MCPServiceParams {
11
+ serverInfo: Implementation;
12
+ agent: Agent;
13
+ options?: ServerOptions;
14
+ agentCardUri?: string;
15
+ }
16
+ export declare class BaseMCPService extends McpServer implements MCP.Service {
11
17
  readonly agent: Agent;
12
18
  private _registerBaseTools;
13
- constructor({ serverInfo, agent, options, agentCardUri, }: {
14
- serverInfo: Implementation;
15
- agent: Agent;
16
- options?: ServerOptions;
17
- agentCardUri?: string;
18
- });
19
+ constructor({ serverInfo, agent, options, agentCardUri, }: MCPServiceParams);
19
20
  stop(): Promise<void>;
20
- static create({ serverInfo, agent, options, agentCardUri, }: {
21
- serverInfo: Implementation;
22
- agent: Agent;
23
- options?: ServerOptions;
24
- agentCardUri?: string;
25
- }): BaseMCPService & Agent;
21
+ static create({ serverInfo, agent, options, agentCardUri, }: MCPServiceParams): BaseMCPService & Agent;
26
22
  }
27
23
  export type MCPService = ReturnType<typeof BaseMCPService.create>;
28
24
  export type MCPAgent = MCPService;