beeai-framework 0.1.17 → 0.1.18

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 (91) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs +296 -0
  2. package/dist/adapters/a2a/agents/agent.cjs.map +1 -0
  3. package/dist/adapters/a2a/agents/agent.d.cts +55 -0
  4. package/dist/adapters/a2a/agents/agent.d.ts +55 -0
  5. package/dist/adapters/a2a/agents/agent.js +294 -0
  6. package/dist/adapters/a2a/agents/agent.js.map +1 -0
  7. package/dist/adapters/a2a/agents/events.cjs +4 -0
  8. package/dist/adapters/a2a/agents/events.cjs.map +1 -0
  9. package/dist/adapters/a2a/agents/events.d.cts +23 -0
  10. package/dist/adapters/a2a/agents/events.d.ts +23 -0
  11. package/dist/adapters/a2a/agents/events.js +3 -0
  12. package/dist/adapters/a2a/agents/events.js.map +1 -0
  13. package/dist/adapters/a2a/agents/types.cjs +4 -0
  14. package/dist/adapters/a2a/agents/types.cjs.map +1 -0
  15. package/dist/adapters/a2a/agents/types.d.cts +45 -0
  16. package/dist/adapters/a2a/agents/types.d.ts +45 -0
  17. package/dist/adapters/a2a/agents/types.js +3 -0
  18. package/dist/adapters/a2a/agents/types.js.map +1 -0
  19. package/dist/adapters/a2a/agents/utils.cjs +41 -0
  20. package/dist/adapters/a2a/agents/utils.cjs.map +1 -0
  21. package/dist/adapters/a2a/agents/utils.d.cts +15 -0
  22. package/dist/adapters/a2a/agents/utils.d.ts +15 -0
  23. package/dist/adapters/a2a/agents/utils.js +39 -0
  24. package/dist/adapters/a2a/agents/utils.js.map +1 -0
  25. package/dist/adapters/a2a/serve/agent_executor.cjs +233 -0
  26. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -0
  27. package/dist/adapters/a2a/serve/agent_executor.d.cts +55 -0
  28. package/dist/adapters/a2a/serve/agent_executor.d.ts +55 -0
  29. package/dist/adapters/a2a/serve/agent_executor.js +229 -0
  30. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -0
  31. package/dist/adapters/a2a/serve/server.cjs +112 -0
  32. package/dist/adapters/a2a/serve/server.cjs.map +1 -0
  33. package/dist/adapters/a2a/serve/server.d.cts +56 -0
  34. package/dist/adapters/a2a/serve/server.d.ts +56 -0
  35. package/dist/adapters/a2a/serve/server.js +105 -0
  36. package/dist/adapters/a2a/serve/server.js.map +1 -0
  37. package/dist/adapters/acp/agents/agent.d.cts +1 -1
  38. package/dist/adapters/acp/agents/agent.d.ts +1 -1
  39. package/dist/adapters/beeai_platform/agents/agent.d.cts +1 -1
  40. package/dist/adapters/beeai_platform/agents/agent.d.ts +1 -1
  41. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  42. package/dist/adapters/mcp/serve/server.d.cts +2 -2
  43. package/dist/adapters/mcp/serve/server.d.ts +2 -2
  44. package/dist/adapters/mcp/serve/server.js.map +1 -1
  45. package/dist/{agent-Cqh2zuKJ.d.cts → agent-Bhm6xSfI.d.cts} +1 -1
  46. package/dist/{agent-CUzHyTQd.d.ts → agent-CmCmnEDX.d.ts} +1 -1
  47. package/dist/agents/base.d.cts +1 -1
  48. package/dist/agents/base.d.ts +1 -1
  49. package/dist/agents/experimental/replan/agent.d.cts +1 -1
  50. package/dist/agents/experimental/replan/agent.d.ts +1 -1
  51. package/dist/agents/experimental/streamlit/agent.d.cts +1 -1
  52. package/dist/agents/experimental/streamlit/agent.d.ts +1 -1
  53. package/dist/agents/react/agent.d.cts +2 -2
  54. package/dist/agents/react/agent.d.ts +2 -2
  55. package/dist/agents/react/prompts.d.cts +1 -1
  56. package/dist/agents/react/prompts.d.ts +1 -1
  57. package/dist/agents/react/runners/base.d.cts +2 -2
  58. package/dist/agents/react/runners/base.d.ts +2 -2
  59. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
  60. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
  61. package/dist/agents/react/runners/deep-think/runner.d.cts +3 -3
  62. package/dist/agents/react/runners/deep-think/runner.d.ts +3 -3
  63. package/dist/agents/react/runners/default/runner.d.cts +3 -3
  64. package/dist/agents/react/runners/default/runner.d.ts +3 -3
  65. package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
  66. package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
  67. package/dist/agents/react/runners/granite/runner.d.cts +3 -3
  68. package/dist/agents/react/runners/granite/runner.d.ts +3 -3
  69. package/dist/agents/toolCalling/agent.d.cts +1 -1
  70. package/dist/agents/toolCalling/agent.d.ts +1 -1
  71. package/dist/agents/types.d.cts +1 -1
  72. package/dist/agents/types.d.ts +1 -1
  73. package/dist/backend/message.cjs.map +1 -1
  74. package/dist/backend/message.d.cts +1 -1
  75. package/dist/backend/message.d.ts +1 -1
  76. package/dist/backend/message.js.map +1 -1
  77. package/dist/{base-Bc-Xv1jG.d.cts → base-BP7v-NSL.d.cts} +1 -1
  78. package/dist/{base-BrMAtrc_.d.ts → base-BsY2baWy.d.ts} +1 -1
  79. package/dist/index.d.cts +1 -1
  80. package/dist/index.d.ts +1 -1
  81. package/dist/serve/server.cjs +12 -5
  82. package/dist/serve/server.cjs.map +1 -1
  83. package/dist/serve/server.d.cts +4 -3
  84. package/dist/serve/server.d.ts +4 -3
  85. package/dist/serve/server.js +12 -5
  86. package/dist/serve/server.js.map +1 -1
  87. package/dist/version.cjs +1 -1
  88. package/dist/version.js +1 -1
  89. package/dist/workflows/agent.d.cts +38 -38
  90. package/dist/workflows/agent.d.ts +38 -38
  91. package/package.json +6 -1
@@ -0,0 +1,296 @@
1
+ 'use strict';
2
+
3
+ var uuid = require('uuid');
4
+ var emitter_cjs = require('../../../emitter/emitter.cjs');
5
+ var base_cjs = require('../../../agents/base.cjs');
6
+ var message_cjs = require('../../../backend/message.cjs');
7
+ var utils_cjs = require('../../../serializer/utils.cjs');
8
+ var remeda = require('remeda');
9
+ var sdk = require('@a2a-js/sdk');
10
+ var client = require('@a2a-js/sdk/client');
11
+ var utils_cjs$1 = require('./utils.cjs');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class A2AAgent extends base_cjs.BaseAgent {
16
+ static {
17
+ __name(this, "A2AAgent");
18
+ }
19
+ input;
20
+ _memory;
21
+ emitter;
22
+ url;
23
+ agentCard;
24
+ agentCardPath;
25
+ contextId;
26
+ taskId;
27
+ referenceTaskIds = [];
28
+ constructor(input) {
29
+ super(), this.input = input;
30
+ this.emitter = emitter_cjs.Emitter.root.child({
31
+ namespace: [
32
+ "a2a",
33
+ "agent",
34
+ remeda.toCamelCase(this.name)
35
+ ],
36
+ creator: this
37
+ });
38
+ if (input.url) {
39
+ this.url = input.url;
40
+ } else if (input.agentCard) {
41
+ this.agentCard = input.agentCard;
42
+ } else {
43
+ throw new base_cjs.AgentError("Either url or agentCard must be provided in A2AAgentInput", [], {
44
+ isFatal: true
45
+ });
46
+ }
47
+ this.memory = input.memory;
48
+ this.agentCardPath = input.agentCardPath || sdk.AGENT_CARD_PATH;
49
+ }
50
+ get name() {
51
+ return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(":")[-1]}`;
52
+ }
53
+ async _run(input, _options, context) {
54
+ this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);
55
+ if (!this.agentCard) {
56
+ await this.loadAgentCard();
57
+ }
58
+ const client$1 = new client.A2AClient(this.agentCard);
59
+ let lastEvent = null;
60
+ const messages = [];
61
+ let task = null;
62
+ try {
63
+ const stream = client$1.sendMessageStream({
64
+ message: this.convertToA2AMessage(input.input)
65
+ });
66
+ for await (const event of stream) {
67
+ lastEvent = event;
68
+ const taskId = event.kind === "task" ? event.id : event.taskId;
69
+ const contextId = event.contextId;
70
+ if (taskId && taskId !== this.taskId) {
71
+ this.taskId = taskId;
72
+ }
73
+ if (contextId && contextId !== this.contextId) {
74
+ this.contextId = contextId;
75
+ }
76
+ if (taskId && !this.referenceTaskIds.includes(taskId)) {
77
+ this.referenceTaskIds.push(taskId);
78
+ }
79
+ if (event.kind === "status-update" || event.kind === "artifact-update") {
80
+ const content = event.kind === "status-update" ? event.status.message : event.artifact;
81
+ if (content) {
82
+ messages.push(content);
83
+ }
84
+ if (event.kind === "status-update" && event.final && event.status.state !== "input-required") {
85
+ this.taskId = void 0;
86
+ }
87
+ } else if (event.kind === "message") {
88
+ messages.push(event);
89
+ } else if (event.kind === "task") {
90
+ task = event;
91
+ }
92
+ await context.emitter.emit("update", {
93
+ value: event
94
+ });
95
+ }
96
+ if (!lastEvent) {
97
+ throw new base_cjs.AgentError("No result received from agent.");
98
+ }
99
+ const inputMessages = Array.isArray(input.input) ? input.input : [
100
+ input.input
101
+ ];
102
+ await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));
103
+ let results;
104
+ if (task) {
105
+ if (task.artifacts) {
106
+ results = task.artifacts;
107
+ } else if (task.history) {
108
+ results = task.history;
109
+ } else if (task.status.message) {
110
+ results = [
111
+ task.status.message
112
+ ];
113
+ } else {
114
+ results = [];
115
+ }
116
+ } else {
117
+ results = messages;
118
+ }
119
+ if (results.length > 0) {
120
+ const assistantMessages = results.map(this.convertToFrameworkMessage);
121
+ await this.memory.addMany(assistantMessages);
122
+ return {
123
+ result: assistantMessages[assistantMessages.length - 1],
124
+ event: lastEvent
125
+ };
126
+ } else {
127
+ return {
128
+ result: new message_cjs.AssistantMessage("No response from agent."),
129
+ event: lastEvent
130
+ };
131
+ }
132
+ } catch (err) {
133
+ let message;
134
+ if (err.message) {
135
+ message = err.message;
136
+ } else if (err.error) {
137
+ message = err.error.toString();
138
+ } else {
139
+ message = "Unknown error";
140
+ }
141
+ await context.emitter.emit("error", {
142
+ message
143
+ });
144
+ throw new base_cjs.AgentError(message, [
145
+ err
146
+ ], {
147
+ context: lastEvent ?? void 0
148
+ });
149
+ }
150
+ }
151
+ setRunParams(contextId, taskId, clearContext = false) {
152
+ if (contextId) {
153
+ this.contextId = contextId;
154
+ }
155
+ this.taskId = taskId;
156
+ if (clearContext) {
157
+ this.contextId = void 0;
158
+ this.taskId = void 0;
159
+ this.referenceTaskIds = [];
160
+ }
161
+ }
162
+ async loadAgentCard() {
163
+ if (this.agentCard) {
164
+ return;
165
+ }
166
+ if (!this.url) {
167
+ throw new base_cjs.AgentError("URL must be provided to load the agent card.", [], {
168
+ isFatal: true
169
+ });
170
+ }
171
+ try {
172
+ const client$1 = await client.A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {
173
+ agentCardPath: this.agentCardPath
174
+ });
175
+ this.agentCard = await client$1.getAgentCard();
176
+ } catch (error) {
177
+ throw new base_cjs.AgentError(`Can not load agent card: ${error.message}`, [
178
+ error
179
+ ], {
180
+ isFatal: true
181
+ });
182
+ }
183
+ }
184
+ async checkAgentExists() {
185
+ await this.loadAgentCard();
186
+ if (!this.agentCard) {
187
+ throw new base_cjs.AgentError(`Agent ${this.name} does not exist.`, [], {
188
+ isFatal: true
189
+ });
190
+ }
191
+ }
192
+ get memory() {
193
+ return this._memory;
194
+ }
195
+ set memory(memory) {
196
+ if (!memory.isEmpty()) {
197
+ throw new base_cjs.AgentError("Memory must be empty before setting.");
198
+ }
199
+ this._memory = memory;
200
+ }
201
+ createSnapshot() {
202
+ return {
203
+ ...super.createSnapshot(),
204
+ input: utils_cjs.shallowCopy(this.input),
205
+ emitter: this.emitter
206
+ };
207
+ }
208
+ convertToA2AMessage(input) {
209
+ if (typeof input === "string") {
210
+ return {
211
+ kind: "message",
212
+ role: "user",
213
+ parts: [
214
+ {
215
+ kind: "text",
216
+ text: input
217
+ }
218
+ ],
219
+ messageId: uuid.v4(),
220
+ contextId: this.contextId,
221
+ taskId: this.taskId,
222
+ referenceTaskIds: this.referenceTaskIds
223
+ };
224
+ } else if (input instanceof message_cjs.Message) {
225
+ const parts = input.content.map(convertFrameworkContentoA2APart);
226
+ return {
227
+ kind: "message",
228
+ role: input.role == "assistant" ? "agent" : "user",
229
+ parts,
230
+ messageId: uuid.v4(),
231
+ contextId: this.contextId,
232
+ taskId: this.taskId,
233
+ referenceTaskIds: this.referenceTaskIds
234
+ };
235
+ } else if ("kind" in input && input.kind === "message") {
236
+ return input;
237
+ } else if (Array.isArray(input) && input.length > 0) {
238
+ return this.convertToA2AMessage(input[input.length - 1]);
239
+ } else {
240
+ throw new base_cjs.AgentError("Unsupported input type");
241
+ }
242
+ }
243
+ convertToFrameworkMessage(input) {
244
+ if (typeof input === "string") {
245
+ return new message_cjs.UserMessage(input);
246
+ } else if (input instanceof message_cjs.Message) {
247
+ return input;
248
+ } else if ("kind" in input && input.kind === "message" || "artifactId" in input) {
249
+ return utils_cjs$1.convertA2AMessageToFrameworkMessage(input);
250
+ } else {
251
+ throw new base_cjs.AgentError("Unsupported input type");
252
+ }
253
+ }
254
+ }
255
+ function convertFrameworkContentoA2APart(content) {
256
+ const { type, ...rest } = content;
257
+ switch (type) {
258
+ case "text":
259
+ return {
260
+ kind: "text",
261
+ text: content.text
262
+ };
263
+ case "file":
264
+ case "image": {
265
+ const data = type === "file" ? content.data : content.image;
266
+ const decoder = new TextDecoder("utf-8");
267
+ const file = data instanceof URL ? {
268
+ uri: data.href
269
+ } : {
270
+ bytes: typeof data === "string" ? data : decoder.decode(data)
271
+ };
272
+ return {
273
+ kind: "file",
274
+ file: {
275
+ ...file,
276
+ mimeType: content.mimeType,
277
+ name: "filename" in content ? content.filename : void 0
278
+ },
279
+ metadata: {
280
+ providerOptions: content.providerOptions
281
+ }
282
+ };
283
+ }
284
+ case "tool-call":
285
+ case "tool-result":
286
+ return {
287
+ kind: "data",
288
+ data: rest
289
+ };
290
+ }
291
+ }
292
+ __name(convertFrameworkContentoA2APart, "convertFrameworkContentoA2APart");
293
+
294
+ exports.A2AAgent = A2AAgent;
295
+ //# sourceMappingURL=agent.cjs.map
296
+ //# sourceMappingURL=agent.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/adapters/a2a/agents/agent.ts"],"names":["A2AAgent","BaseAgent","_memory","emitter","url","agentCard","agentCardPath","contextId","taskId","referenceTaskIds","input","Emitter","root","child","namespace","toCamelCase","name","creator","AgentError","isFatal","memory","AGENT_CARD_PATH","split","_run","_options","context","setRunParams","clearContext","loadAgentCard","client","A2AClient","lastEvent","messages","task","stream","sendMessageStream","message","convertToA2AMessage","event","kind","id","includes","push","content","status","artifact","final","state","undefined","emit","value","inputMessages","Array","isArray","addMany","map","convertToFrameworkMessage","results","artifacts","history","length","assistantMessages","result","AssistantMessage","err","error","toString","fromCardUrl","URL","href","getAgentCard","checkAgentExists","isEmpty","createSnapshot","shallowCopy","role","parts","text","messageId","uuid4","Message","convertFrameworkContentoA2APart","UserMessage","convertA2AMessageToFrameworkMessage","type","rest","data","image","decoder","TextDecoder","file","uri","bytes","decode","mimeType","filename","metadata","providerOptions"],"mappings":";;;;;;;;;;;;;;AA6BO,MAAMA,iBAAiBC,kBAAAA,CAAAA;EA7B9B;;;;AA8BUC,EAAAA,OAAAA;AACQC,EAAAA,OAAAA;AACNC,EAAAA,GAAAA;AACHC,EAAAA,SAAAA;AACGC,EAAAA,aAAAA;AACAC,EAAAA,SAAAA;AACAC,EAAAA,MAAAA;AACAC,EAAAA,gBAAAA,GAA6B,EAAA;AAEvC,EAAA,WAAA,CAA+BC,KAAAA,EAAsB;AACnD,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE7B,IAAA,IAAA,CAAKP,OAAAA,GAAUQ,mBAAAA,CAAQC,IAAAA,CAAKC,KAAAA,CAAsB;MAChDC,SAAAA,EAAW;AAAC,QAAA,KAAA;AAAO,QAAA,OAAA;AAASC,QAAAA,kBAAAA,CAAY,KAAKC,IAAI;;MACjDC,OAAAA,EAAS;KACX,CAAA;AACA,IAAA,IAAIP,MAAMN,GAAAA,EAAK;AACb,MAAA,IAAA,CAAKA,MAAMM,KAAAA,CAAMN,GAAAA;AACnB,KAAA,MAAA,IAAWM,MAAML,SAAAA,EAAW;AAC1B,MAAA,IAAA,CAAKA,YAAYK,KAAAA,CAAML,SAAAA;KACzB,MAAO;AACL,MAAA,MAAM,IAAIa,mBAAAA,CAAW,2DAAA,EAA6D,EAAA,EAAI;QACpFC,OAAAA,EAAS;OACX,CAAA;AACF;AAEA,IAAA,IAAA,CAAKC,SAASV,KAAAA,CAAMU,MAAAA;AACpB,IAAA,IAAA,CAAKd,aAAAA,GAAgBI,MAAMJ,aAAAA,IAAiBe,mBAAAA;AAC9C;AAEA,EAAA,IAAIL,IAAAA,GAAO;AACT,IAAA,OAAO,IAAA,CAAKX,SAAAA,GAAY,IAAA,CAAKA,SAAAA,CAAUW,IAAAA,GAAO,CAAA,MAAA,EAAS,IAAA,CAAKZ,GAAAA,EAAKkB,KAAAA,CAAM,GAAA,CAAA,CAAK,EAAC,CAAE,CAAA,CAAA;AACjF;EAEA,MAAgBC,IAAAA,CACdb,KAAAA,EACAc,QAAAA,EACAC,OAAAA,EAC4B;AAC5B,IAAA,IAAA,CAAKC,aAAaF,QAAAA,EAAUjB,SAAAA,EAAWiB,QAAAA,EAAUhB,MAAAA,EAAQgB,UAAUG,YAAAA,CAAAA;AAEnE,IAAA,IAAI,CAAC,KAAKtB,SAAAA,EAAW;AACnB,MAAA,MAAM,KAAKuB,aAAAA,EAAa;AAC1B;AAEA,IAAA,MAAMC,QAAAA,GAAS,IAAIC,gBAAAA,CAAU,IAAA,CAAKzB,SAAS,CAAA;AAE3C,IAAA,IAAI0B,SAAAA,GAAY,IAAA;AAChB,IAAA,MAAMC,WAAsC,EAAA;AAC5C,IAAA,IAAIC,IAAAA,GAAoB,IAAA;AAExB,IAAA,IAAI;AACF,MAAA,MAAMC,MAAAA,GAASL,SAAOM,iBAAAA,CAAkB;QAAEC,OAAAA,EAAS,IAAA,CAAKC,mBAAAA,CAAoB3B,KAAAA,CAAMA,KAAK;OAAE,CAAA;AAEzF,MAAA,WAAA,MAAiB4B,SAASJ,MAAAA,EAAQ;AAChCH,QAAAA,SAAAA,GAAYO,KAAAA;AAEZ,QAAA,MAAM9B,SAAS8B,KAAAA,CAAMC,IAAAA,KAAS,MAAA,GAASD,KAAAA,CAAME,KAAKF,KAAAA,CAAM9B,MAAAA;AACxD,QAAA,MAAMD,YAAY+B,KAAAA,CAAM/B,SAAAA;AACxB,QAAA,IAAIC,MAAAA,IAAUA,MAAAA,KAAW,IAAA,CAAKA,MAAAA,EAAQ;AACpC,UAAA,IAAA,CAAKA,MAAAA,GAASA,MAAAA;AAChB;AACA,QAAA,IAAID,SAAAA,IAAaA,SAAAA,KAAc,IAAA,CAAKA,SAAAA,EAAW;AAC7C,UAAA,IAAA,CAAKA,SAAAA,GAAYA,SAAAA;AACnB;AACA,QAAA,IAAIC,UAAU,CAAC,IAAA,CAAKC,gBAAAA,CAAiBgC,QAAAA,CAASjC,MAAAA,CAAAA,EAAS;AACrD,UAAA,IAAA,CAAKC,gBAAAA,CAAiBiC,KAAKlC,MAAAA,CAAAA;AAC7B;AAEA,QAAA,IAAI8B,KAAAA,CAAMC,IAAAA,KAAS,eAAA,IAAmBD,KAAAA,CAAMC,SAAS,iBAAA,EAAmB;AACtE,UAAA,MAAMI,UAAUL,KAAAA,CAAMC,IAAAA,KAAS,kBAAkBD,KAAAA,CAAMM,MAAAA,CAAOR,UAAUE,KAAAA,CAAMO,QAAAA;AAC9E,UAAA,IAAIF,OAAAA,EAAS;AACXX,YAAAA,QAAAA,CAASU,KAAKC,OAAAA,CAAAA;AAChB;AACA,UAAA,IACEL,KAAAA,CAAMC,SAAS,eAAA,IACfD,KAAAA,CAAMQ,SACNR,KAAAA,CAAMM,MAAAA,CAAOG,UAAU,gBAAA,EACvB;AACA,YAAA,IAAA,CAAKvC,MAAAA,GAASwC,KAAAA,CAAAA;AAChB;SACF,MAAA,IAAWV,KAAAA,CAAMC,SAAS,SAAA,EAAW;AACnCP,UAAAA,QAAAA,CAASU,KAAKJ,KAAAA,CAAAA;SAChB,MAAA,IAAWA,KAAAA,CAAMC,SAAS,MAAA,EAAQ;AAChCN,UAAAA,IAAAA,GAAOK,KAAAA;AACT;AAEA,QAAA,MAAMb,OAAAA,CAAQtB,OAAAA,CAAQ8C,IAAAA,CAAK,QAAA,EAAU;UAAEC,KAAAA,EAAOZ;SAAM,CAAA;AACtD;AAEA,MAAA,IAAI,CAACP,SAAAA,EAAW;AACd,QAAA,MAAM,IAAIb,oBAAW,gCAAA,CAAA;AACvB;AAGA,MAAA,MAAMiC,gBAAgBC,KAAAA,CAAMC,OAAAA,CAAQ3C,MAAMA,KAAK,CAAA,GAAIA,MAAMA,KAAAA,GAAQ;QAACA,KAAAA,CAAMA;;AACxE,MAAA,MAAM,KAAKU,MAAAA,CAAOkC,OAAAA,CAAQH,cAAcI,GAAAA,CAAI,IAAA,CAAKC,yBAAyB,CAAA,CAAA;AAE1E,MAAA,IAAIC,OAAAA;AACJ,MAAA,IAAIxB,IAAAA,EAAM;AACR,QAAA,IAAIA,KAAKyB,SAAAA,EAAW;AAClBD,UAAAA,OAAAA,GAAUxB,IAAAA,CAAKyB,SAAAA;AACjB,SAAA,MAAA,IAAWzB,KAAK0B,OAAAA,EAAS;AACvBF,UAAAA,OAAAA,GAAUxB,IAAAA,CAAK0B,OAAAA;SACjB,MAAA,IAAW1B,IAAAA,CAAKW,OAAOR,OAAAA,EAAS;AAC9BqB,UAAAA,OAAAA,GAAU;AAACxB,YAAAA,IAAAA,CAAKW,MAAAA,CAAOR;;SACzB,MAAO;AACLqB,UAAAA,OAAAA,GAAU,EAAA;AACZ;OACF,MAAO;AACLA,QAAAA,OAAAA,GAAUzB,QAAAA;AACZ;AAGA,MAAA,IAAIyB,OAAAA,CAAQG,SAAS,CAAA,EAAG;AACtB,QAAA,MAAMC,iBAAAA,GAAoBJ,OAAAA,CAAQF,GAAAA,CAAI,IAAA,CAAKC,yBAAyB,CAAA;AACpE,QAAA,MAAM,IAAA,CAAKpC,MAAAA,CAAOkC,OAAAA,CAAQO,iBAAAA,CAAAA;AAC1B,QAAA,OAAO;UACLC,MAAAA,EAAQD,iBAAAA,CAAkBA,iBAAAA,CAAkBD,MAAAA,GAAS,CAAA,CAAA;UACrDtB,KAAAA,EAAOP;AACT,SAAA;OACF,MAAO;AACL,QAAA,OAAO;UACL+B,MAAAA,EAAQ,IAAIC,6BAAiB,yBAAA,CAAA;UAC7BzB,KAAAA,EAAOP;AACT,SAAA;AACF;AACF,KAAA,CAAA,OAASiC,GAAAA,EAAK;AACZ,MAAA,IAAI5B,OAAAA;AAEJ,MAAA,IAAI4B,IAAI5B,OAAAA,EAAS;AACfA,QAAAA,OAAAA,GAAU4B,GAAAA,CAAI5B,OAAAA;AAChB,OAAA,MAAA,IAAW4B,IAAIC,KAAAA,EAAO;AACpB7B,QAAAA,OAAAA,GAAU4B,GAAAA,CAAIC,MAAMC,QAAAA,EAAQ;OAC9B,MAAO;AACL9B,QAAAA,OAAAA,GAAU,eAAA;AACZ;AAEA,MAAA,MAAMX,OAAAA,CAAQtB,OAAAA,CAAQ8C,IAAAA,CAAK,OAAA,EAAS;AAAEb,QAAAA;OAAQ,CAAA;AAE9C,MAAA,MAAM,IAAIlB,oBAAWkB,OAAAA,EAAS;AAAC4B,QAAAA;AAAM,OAAA,EAAA;AACnCvC,QAAAA,OAAAA,EAASM,SAAAA,IAAaiB;OACxB,CAAA;AACF;AACF;EAEUtB,YAAAA,CAAanB,SAAAA,EAAoBC,MAAAA,EAAiBmB,YAAAA,GAAe,KAAA,EAAO;AAChF,IAAA,IAAIpB,SAAAA,EAAW;AACb,MAAA,IAAA,CAAKA,SAAAA,GAAYA,SAAAA;AACnB;AACA,IAAA,IAAA,CAAKC,MAAAA,GAASA,MAAAA;AACd,IAAA,IAAImB,YAAAA,EAAc;AAChB,MAAA,IAAA,CAAKpB,SAAAA,GAAYyC,MAAAA;AACjB,MAAA,IAAA,CAAKxC,MAAAA,GAASwC,MAAAA;AACd,MAAA,IAAA,CAAKvC,mBAAmB,EAAA;AAC1B;AACF;AAEA,EAAA,MAAMmB,aAAAA,GAAgB;AACpB,IAAA,IAAI,KAAKvB,SAAAA,EAAW;AAClB,MAAA;AACF;AAEA,IAAA,IAAI,CAAC,KAAKD,GAAAA,EAAK;AACb,MAAA,MAAM,IAAIc,mBAAAA,CAAW,8CAAA,EAAgD,EAAA,EAAI;QAAEC,OAAAA,EAAS;OAAK,CAAA;AAC3F;AAEA,IAAA,IAAI;AACF,MAAA,MAAMU,QAAAA,GAAS,MAAMC,gBAAAA,CAAUqC,WAAAA,CAAY,IAAIC,GAAAA,CAAI,IAAA,CAAK9D,aAAAA,EAAe,IAAA,CAAKF,GAAG,CAAA,CAAEiE,IAAAA,EAAM;AACrF/D,QAAAA,aAAAA,EAAe,IAAA,CAAKA;OACtB,CAAA;AACA,MAAA,IAAA,CAAKD,SAAAA,GAAY,MAAMwB,QAAAA,CAAOyC,YAAAA,EAAY;AAC5C,KAAA,CAAA,OAASL,KAAAA,EAAO;AACd,MAAA,MAAM,IAAI/C,mBAAAA,CAAW,CAAA,yBAAA,EAA4B+C,KAAAA,CAAM7B,OAAO,CAAA,CAAA,EAAI;AAAC6B,QAAAA;AAAQ,OAAA,EAAA;QACzE9C,OAAAA,EAAS;OACX,CAAA;AACF;AACF;AAEA,EAAA,MAAMoD,gBAAAA,GAAmB;AACvB,IAAA,MAAM,KAAK3C,aAAAA,EAAa;AACxB,IAAA,IAAI,CAAC,KAAKvB,SAAAA,EAAW;AACnB,MAAA,MAAM,IAAIa,mBAAAA,CAAW,CAAA,MAAA,EAAS,KAAKF,IAAI,CAAA,gBAAA,CAAA,EAAoB,EAAA,EAAI;QAAEG,OAAAA,EAAS;OAAK,CAAA;AACjF;AACF;AAEA,EAAA,IAAIC,MAAAA,GAAS;AACX,IAAA,OAAO,IAAA,CAAKlB,OAAAA;AACd;AAEA,EAAA,IAAIkB,OAAOA,MAAAA,EAAoB;AAC7B,IAAA,IAAI,CAACA,MAAAA,CAAOoD,OAAAA,EAAO,EAAI;AACrB,MAAA,MAAM,IAAItD,oBAAW,sCAAA,CAAA;AACvB;AACA,IAAA,IAAA,CAAKhB,OAAAA,GAAUkB,MAAAA;AACjB;EAEAqD,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;MACT/D,KAAAA,EAAOgE,qBAAAA,CAAY,KAAKhE,KAAK,CAAA;AAC7BP,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEUkC,EAAAA,mBAAAA,CAAoB3B,KAAAA,EAA8D;AAC1F,IAAA,IAAI,OAAOA,UAAU,QAAA,EAAU;AAC7B,MAAA,OAAO;QACL6B,IAAAA,EAAM,SAAA;QACNoC,IAAAA,EAAM,MAAA;QACNC,KAAAA,EAAO;AACL,UAAA;YACErC,IAAAA,EAAM,MAAA;YACNsC,IAAAA,EAAMnE;AACR;;AAEFoE,QAAAA,SAAAA,EAAWC,OAAAA,EAAAA;AACXxE,QAAAA,SAAAA,EAAW,IAAA,CAAKA,SAAAA;AAChBC,QAAAA,MAAAA,EAAQ,IAAA,CAAKA,MAAAA;AACbC,QAAAA,gBAAAA,EAAkB,IAAA,CAAKA;AACzB,OAAA;AACF,KAAA,MAAA,IAAWC,iBAAiBsE,mBAAAA,EAAS;AACnC,MAAA,MAAMJ,KAAAA,GAAQlE,KAAAA,CAAMiC,OAAAA,CAAQY,GAAAA,CAAI0B,+BAAAA,CAAAA;AAChC,MAAA,OAAO;QACL1C,IAAAA,EAAM,SAAA;QACNoC,IAAAA,EAAMjE,KAAAA,CAAMiE,IAAAA,IAAQ,WAAA,GAAc,OAAA,GAAU,MAAA;AAC5CC,QAAAA,KAAAA;AACAE,QAAAA,SAAAA,EAAWC,OAAAA,EAAAA;AACXxE,QAAAA,SAAAA,EAAW,IAAA,CAAKA,SAAAA;AAChBC,QAAAA,MAAAA,EAAQ,IAAA,CAAKA,MAAAA;AACbC,QAAAA,gBAAAA,EAAkB,IAAA,CAAKA;AACzB,OAAA;AACF,KAAA,MAAA,IAAW,MAAA,IAAUC,KAAAA,IAASA,KAAAA,CAAM6B,IAAAA,KAAS,SAAA,EAAW;AACtD,MAAA,OAAO7B,KAAAA;AACT,KAAA,MAAA,IAAW0C,MAAMC,OAAAA,CAAQ3C,KAAAA,CAAAA,IAAUA,KAAAA,CAAMkD,SAAS,CAAA,EAAG;AACnD,MAAA,OAAO,KAAKvB,mBAAAA,CAAoB3B,KAAAA,CAAMA,KAAAA,CAAMkD,MAAAA,GAAS,CAAA,CAAE,CAAA;KACzD,MAAO;AACL,MAAA,MAAM,IAAI1C,oBAAW,wBAAA,CAAA;AACvB;AACF;AAEUsC,EAAAA,yBAAAA,CAA0B9C,KAAAA,EAA0D;AAC5F,IAAA,IAAI,OAAOA,UAAU,QAAA,EAAU;AAC7B,MAAA,OAAO,IAAIwE,wBAAYxE,KAAAA,CAAAA;AACzB,KAAA,MAAA,IAAWA,iBAAiBsE,mBAAAA,EAAS;AACnC,MAAA,OAAOtE,KAAAA;AACT,KAAA,MAAA,IAAY,UAAUA,KAAAA,IAASA,KAAAA,CAAM6B,IAAAA,KAAS,SAAA,IAAc,gBAAgB7B,KAAAA,EAAO;AACjF,MAAA,OAAOyE,gDAAoCzE,KAAAA,CAAAA;KAC7C,MAAO;AACL,MAAA,MAAM,IAAIQ,oBAAW,wBAAA,CAAA;AACvB;AACF;AACF;AAEA,SAAS+D,gCAAgCtC,OAAAA,EAA2B;AAClE,EAAA,MAAM,EAAEyC,IAAAA,EAAM,GAAGC,IAAAA,EAAAA,GAAS1C,OAAAA;AAC1B,EAAA,QAAQyC,IAAAA;IACN,KAAK,MAAA;AACH,MAAA,OAAO;QAAE7C,IAAAA,EAAM,MAAA;AAAQsC,QAAAA,IAAAA,EAAMlC,OAAAA,CAAQkC;AAAK,OAAA;IAC5C,KAAK,MAAA;AACL,IAAA,KAAK,OAAA,EAAS;AACZ,MAAA,MAAMS,IAAAA,GAAOF,IAAAA,KAAS,MAAA,GAASzC,OAAAA,CAAQ2C,OAAO3C,OAAAA,CAAQ4C,KAAAA;AACtD,MAAA,MAAMC,OAAAA,GAAU,IAAIC,WAAAA,CAAY,OAAA,CAAA;AAChC,MAAA,MAAMC,IAAAA,GACJJ,gBAAgBlB,GAAAA,GACX;AAAEuB,QAAAA,GAAAA,EAAKL,IAAAA,CAAKjB;OAAK,GACjB;AACCuB,QAAAA,KAAAA,EAAO,OAAON,IAAAA,KAAS,QAAA,GAAWA,IAAAA,GAAOE,OAAAA,CAAQK,OAAOP,IAAAA;AAC1D,OAAA;AACN,MAAA,OAAO;QACL/C,IAAAA,EAAM,MAAA;QACNmD,IAAAA,EAAM;UACJ,GAAGA,IAAAA;AACHI,UAAAA,QAAAA,EAAUnD,OAAAA,CAAQmD,QAAAA;UAClB9E,IAAAA,EAAM,UAAA,IAAc2B,OAAAA,GAAUA,OAAAA,CAAQoD,QAAAA,GAAW/C;AACnD,SAAA;QACAgD,QAAAA,EAAU;AACRC,UAAAA,eAAAA,EAAiBtD,OAAAA,CAAQsD;AAC3B;AACF,OAAA;AACF;IACA,KAAK,WAAA;IACL,KAAK,aAAA;AACH,MAAA,OAAO;QACL1D,IAAAA,EAAM,MAAA;QACN+C,IAAAA,EAAMD;AACR,OAAA;AACJ;AACF;AAlCSJ,MAAAA,CAAAA,+BAAAA,EAAAA,iCAAAA,CAAAA","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { v4 as uuid4 } from \"uuid\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, MessageContentPart, UserMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { A2AAgentInput, A2AAgentRunInput, A2AAgentRunOutput, A2AAgentRunOptions } from \"./types.js\";\nimport { A2AAgentEvents } from \"./events.js\";\nimport { toCamelCase } from \"remeda\";\nimport {\n AGENT_CARD_PATH,\n AgentCard,\n Message as A2AMessage,\n Task,\n Artifact,\n Part,\n FileWithUri,\n FileWithBytes,\n} from \"@a2a-js/sdk\";\nimport { A2AClient } from \"@a2a-js/sdk/client\";\nimport { Message } from \"@/backend/message.js\";\nimport { convertA2AMessageToFrameworkMessage } from \"./utils.js\";\n\nexport class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {\n private _memory!: BaseMemory;\n public readonly emitter: Emitter<A2AAgentEvents>;\n protected url: string | undefined;\n public agentCard: AgentCard | undefined;\n protected agentCardPath: string;\n protected contextId: string | undefined;\n protected taskId: string | undefined;\n protected referenceTaskIds: string[] = [];\n\n constructor(protected readonly input: A2AAgentInput) {\n super();\n this.emitter = Emitter.root.child<A2AAgentEvents>({\n namespace: [\"a2a\", \"agent\", toCamelCase(this.name)],\n creator: this,\n });\n if (input.url) {\n this.url = input.url;\n } else if (input.agentCard) {\n this.agentCard = input.agentCard;\n } else {\n throw new AgentError(\"Either url or agentCard must be provided in A2AAgentInput\", [], {\n isFatal: true,\n });\n }\n\n this.memory = input.memory;\n this.agentCardPath = input.agentCardPath || AGENT_CARD_PATH;\n }\n\n get name() {\n return this.agentCard ? this.agentCard.name : `agent_${this.url?.split(\":\")[-1]}`;\n }\n\n protected async _run(\n input: A2AAgentRunInput,\n _options: A2AAgentRunOptions,\n context: GetRunContext<this>,\n ): Promise<A2AAgentRunOutput> {\n this.setRunParams(_options?.contextId, _options?.taskId, _options?.clearContext);\n\n if (!this.agentCard) {\n await this.loadAgentCard();\n }\n\n const client = new A2AClient(this.agentCard!);\n\n let lastEvent = null;\n const messages: (A2AMessage | Artifact)[] = [];\n let task: Task | null = null;\n\n try {\n const stream = client.sendMessageStream({ message: this.convertToA2AMessage(input.input) });\n\n for await (const event of stream) {\n lastEvent = event;\n\n const taskId = event.kind === \"task\" ? event.id : event.taskId;\n const contextId = event.contextId;\n if (taskId && taskId !== this.taskId) {\n this.taskId = taskId;\n }\n if (contextId && contextId !== this.contextId) {\n this.contextId = contextId;\n }\n if (taskId && !this.referenceTaskIds.includes(taskId)) {\n this.referenceTaskIds.push(taskId);\n }\n\n if (event.kind === \"status-update\" || event.kind === \"artifact-update\") {\n const content = event.kind === \"status-update\" ? event.status.message : event.artifact;\n if (content) {\n messages.push(content);\n }\n if (\n event.kind === \"status-update\" &&\n event.final &&\n event.status.state !== \"input-required\"\n ) {\n this.taskId = undefined;\n }\n } else if (event.kind === \"message\") {\n messages.push(event);\n } else if (event.kind === \"task\") {\n task = event;\n }\n\n await context.emitter.emit(\"update\", { value: event });\n }\n\n if (!lastEvent) {\n throw new AgentError(\"No result received from agent.\");\n }\n\n // add input messages to memory\n const inputMessages = Array.isArray(input.input) ? input.input : [input.input];\n await this.memory.addMany(inputMessages.map(this.convertToFrameworkMessage));\n\n let results: (A2AMessage | Artifact)[];\n if (task) {\n if (task.artifacts) {\n results = task.artifacts;\n } else if (task.history) {\n results = task.history;\n } else if (task.status.message) {\n results = [task.status.message];\n } else {\n results = [];\n }\n } else {\n results = messages;\n }\n\n // retrieve the assistant's response\n if (results.length > 0) {\n const assistantMessages = results.map(this.convertToFrameworkMessage);\n await this.memory.addMany(assistantMessages);\n return {\n result: assistantMessages[assistantMessages.length - 1],\n event: lastEvent,\n };\n } else {\n return {\n result: new AssistantMessage(\"No response from agent.\"),\n event: lastEvent,\n };\n }\n } catch (err) {\n let message: string;\n\n if (err.message) {\n message = err.message;\n } else if (err.error) {\n message = err.error.toString();\n } else {\n message = \"Unknown error\";\n }\n\n await context.emitter.emit(\"error\", { message });\n\n throw new AgentError(message, [err], {\n context: lastEvent ?? undefined,\n });\n }\n }\n\n protected setRunParams(contextId?: string, taskId?: string, clearContext = false) {\n if (contextId) {\n this.contextId = contextId;\n }\n this.taskId = taskId;\n if (clearContext) {\n this.contextId = undefined;\n this.taskId = undefined;\n this.referenceTaskIds = [];\n }\n }\n\n async loadAgentCard() {\n if (this.agentCard) {\n return;\n }\n\n if (!this.url) {\n throw new AgentError(\"URL must be provided to load the agent card.\", [], { isFatal: true });\n }\n\n try {\n const client = await A2AClient.fromCardUrl(new URL(this.agentCardPath, this.url).href, {\n agentCardPath: this.agentCardPath,\n });\n this.agentCard = await client.getAgentCard();\n } catch (error) {\n throw new AgentError(`Can not load agent card: ${error.message}`, [error], {\n isFatal: true,\n });\n }\n }\n\n async checkAgentExists() {\n await this.loadAgentCard();\n if (!this.agentCard) {\n throw new AgentError(`Agent ${this.name} does not exist.`, [], { isFatal: true });\n }\n }\n\n get memory() {\n return this._memory;\n }\n\n set memory(memory: BaseMemory) {\n if (!memory.isEmpty()) {\n throw new AgentError(\"Memory must be empty before setting.\");\n }\n this._memory = memory;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n protected convertToA2AMessage(input: string | Message | Message[] | A2AMessage): A2AMessage {\n if (typeof input === \"string\") {\n return {\n kind: \"message\",\n role: \"user\",\n parts: [\n {\n kind: \"text\",\n text: input,\n },\n ],\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (input instanceof Message) {\n const parts = input.content.map(convertFrameworkContentoA2APart);\n return {\n kind: \"message\",\n role: input.role == \"assistant\" ? \"agent\" : \"user\",\n parts: parts,\n messageId: uuid4(),\n contextId: this.contextId,\n taskId: this.taskId,\n referenceTaskIds: this.referenceTaskIds,\n };\n } else if (\"kind\" in input && input.kind === \"message\") {\n return input;\n } else if (Array.isArray(input) && input.length > 0) {\n return this.convertToA2AMessage(input[input.length - 1]);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n\n protected convertToFrameworkMessage(input: string | Message | A2AMessage | Artifact): Message {\n if (typeof input === \"string\") {\n return new UserMessage(input);\n } else if (input instanceof Message) {\n return input;\n } else if ((\"kind\" in input && input.kind === \"message\") || \"artifactId\" in input) {\n return convertA2AMessageToFrameworkMessage(input);\n } else {\n throw new AgentError(\"Unsupported input type\");\n }\n }\n}\n\nfunction convertFrameworkContentoA2APart(content: MessageContentPart): Part {\n const { type, ...rest } = content;\n switch (type) {\n case \"text\":\n return { kind: \"text\", text: content.text };\n case \"file\":\n case \"image\": {\n const data = type === \"file\" ? content.data : content.image;\n const decoder = new TextDecoder(\"utf-8\");\n const file =\n data instanceof URL\n ? ({ uri: data.href } as FileWithUri)\n : ({\n bytes: typeof data === \"string\" ? data : decoder.decode(data),\n } as FileWithBytes);\n return {\n kind: \"file\",\n file: {\n ...file,\n mimeType: content.mimeType,\n name: \"filename\" in content ? content.filename : undefined,\n },\n metadata: {\n providerOptions: content.providerOptions,\n },\n };\n }\n case \"tool-call\":\n case \"tool-result\":\n return {\n kind: \"data\",\n data: rest,\n };\n }\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import { E as Emitter } from '../../../emitter-DWEsd-ud.cjs';
2
+ import { a as BaseAgent } from '../../../base-BP7v-NSL.cjs';
3
+ import { GetRunContext } from '../../../context.cjs';
4
+ import { BaseMemory } from '../../../memory/base.cjs';
5
+ import { A2AAgentRunInput, A2AAgentRunOutput, A2AAgentInput, A2AAgentRunOptions } from './types.cjs';
6
+ import { A2AAgentEvents } from './events.cjs';
7
+ import { AgentCard, Message as Message$1, Artifact } from '@a2a-js/sdk';
8
+ import { Message } from '../../../backend/message.cjs';
9
+ import '../../../internals/types.cjs';
10
+ import '../../../internals/helpers/guards.cjs';
11
+ import '../../../internals/serializable.cjs';
12
+ import '../../../errors.cjs';
13
+ import '../../../tools/base.cjs';
14
+ import 'ajv';
15
+ import 'promise-based-task';
16
+ import '../../../cache/base.cjs';
17
+ import '../../../internals/helpers/schema.cjs';
18
+ import 'zod';
19
+ import 'zod-to-json-schema';
20
+ import '../../../internals/helpers/promise.cjs';
21
+ import 'ai';
22
+
23
+ /**
24
+ * Copyright 2025 © BeeAI a Series of LF Projects, LLC
25
+ * SPDX-License-Identifier: Apache-2.0
26
+ */
27
+
28
+ declare class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {
29
+ protected readonly input: A2AAgentInput;
30
+ private _memory;
31
+ readonly emitter: Emitter<A2AAgentEvents>;
32
+ protected url: string | undefined;
33
+ agentCard: AgentCard | undefined;
34
+ protected agentCardPath: string;
35
+ protected contextId: string | undefined;
36
+ protected taskId: string | undefined;
37
+ protected referenceTaskIds: string[];
38
+ constructor(input: A2AAgentInput);
39
+ get name(): string;
40
+ protected _run(input: A2AAgentRunInput, _options: A2AAgentRunOptions, context: GetRunContext<this>): Promise<A2AAgentRunOutput>;
41
+ protected setRunParams(contextId?: string, taskId?: string, clearContext?: boolean): void;
42
+ loadAgentCard(): Promise<void>;
43
+ checkAgentExists(): Promise<void>;
44
+ get memory(): BaseMemory;
45
+ set memory(memory: BaseMemory);
46
+ createSnapshot(): {
47
+ input: A2AAgentInput;
48
+ emitter: Emitter<A2AAgentEvents>;
49
+ isRunning: boolean;
50
+ };
51
+ protected convertToA2AMessage(input: string | Message | Message[] | Message$1): Message$1;
52
+ protected convertToFrameworkMessage(input: string | Message | Message$1 | Artifact): Message;
53
+ }
54
+
55
+ export { A2AAgent };
@@ -0,0 +1,55 @@
1
+ import { E as Emitter } from '../../../emitter-C9nwGLt6.js';
2
+ import { a as BaseAgent } from '../../../base-BsY2baWy.js';
3
+ import { GetRunContext } from '../../../context.js';
4
+ import { BaseMemory } from '../../../memory/base.js';
5
+ import { A2AAgentRunInput, A2AAgentRunOutput, A2AAgentInput, A2AAgentRunOptions } from './types.js';
6
+ import { A2AAgentEvents } from './events.js';
7
+ import { AgentCard, Message as Message$1, Artifact } from '@a2a-js/sdk';
8
+ import { Message } from '../../../backend/message.js';
9
+ import '../../../internals/types.js';
10
+ import '../../../internals/helpers/guards.js';
11
+ import '../../../internals/serializable.js';
12
+ import '../../../errors.js';
13
+ import '../../../tools/base.js';
14
+ import 'ajv';
15
+ import 'promise-based-task';
16
+ import '../../../cache/base.js';
17
+ import '../../../internals/helpers/schema.js';
18
+ import 'zod';
19
+ import 'zod-to-json-schema';
20
+ import '../../../internals/helpers/promise.js';
21
+ import 'ai';
22
+
23
+ /**
24
+ * Copyright 2025 © BeeAI a Series of LF Projects, LLC
25
+ * SPDX-License-Identifier: Apache-2.0
26
+ */
27
+
28
+ declare class A2AAgent extends BaseAgent<A2AAgentRunInput, A2AAgentRunOutput> {
29
+ protected readonly input: A2AAgentInput;
30
+ private _memory;
31
+ readonly emitter: Emitter<A2AAgentEvents>;
32
+ protected url: string | undefined;
33
+ agentCard: AgentCard | undefined;
34
+ protected agentCardPath: string;
35
+ protected contextId: string | undefined;
36
+ protected taskId: string | undefined;
37
+ protected referenceTaskIds: string[];
38
+ constructor(input: A2AAgentInput);
39
+ get name(): string;
40
+ protected _run(input: A2AAgentRunInput, _options: A2AAgentRunOptions, context: GetRunContext<this>): Promise<A2AAgentRunOutput>;
41
+ protected setRunParams(contextId?: string, taskId?: string, clearContext?: boolean): void;
42
+ loadAgentCard(): Promise<void>;
43
+ checkAgentExists(): Promise<void>;
44
+ get memory(): BaseMemory;
45
+ set memory(memory: BaseMemory);
46
+ createSnapshot(): {
47
+ input: A2AAgentInput;
48
+ emitter: Emitter<A2AAgentEvents>;
49
+ isRunning: boolean;
50
+ };
51
+ protected convertToA2AMessage(input: string | Message | Message[] | Message$1): Message$1;
52
+ protected convertToFrameworkMessage(input: string | Message | Message$1 | Artifact): Message;
53
+ }
54
+
55
+ export { A2AAgent };