@artinet/sdk 0.5.16 → 0.5.17

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 (33) hide show
  1. package/README.md +9 -34
  2. package/dist/server/express/server.d.ts +24 -24
  3. package/dist/services/a2a/factory/builder.d.ts +24 -24
  4. package/dist/services/a2a/factory/service.js +2 -1
  5. package/dist/services/a2a/helpers/agentcard-builder.d.ts +7 -0
  6. package/dist/services/a2a/helpers/agentcard-builder.js +22 -0
  7. package/dist/services/a2a/helpers/index.d.ts +1 -0
  8. package/dist/services/a2a/helpers/index.js +1 -0
  9. package/dist/services/a2a/methods/get-task.d.ts +46 -46
  10. package/dist/services/a2a/service.d.ts +152 -152
  11. package/dist/transport/trpc/a2a/factory/router.d.ts +1084 -1084
  12. package/dist/transport/trpc/a2a/routes/info.d.ts +36 -36
  13. package/dist/transport/trpc/a2a/routes/message/route.d.ts +225 -225
  14. package/dist/transport/trpc/a2a/routes/tasks/route.d.ts +257 -257
  15. package/dist/transport/trpc/a2a/trpc.d.ts +120 -120
  16. package/dist/types/interfaces/services/a2a/service.d.ts +2 -1
  17. package/dist/types/schemas/a2a/agent.d.ts +818 -818
  18. package/dist/types/schemas/a2a/agent.js +1 -23
  19. package/dist/types/schemas/a2a/auth.d.ts +197 -197
  20. package/dist/types/schemas/a2a/auth.js +4 -19
  21. package/dist/types/schemas/a2a/error.d.ts +24 -24
  22. package/dist/types/schemas/a2a/message.d.ts +4499 -4499
  23. package/dist/types/schemas/a2a/message.js +2 -10
  24. package/dist/types/schemas/a2a/notification.d.ts +403 -403
  25. package/dist/types/schemas/a2a/notification.js +3 -7
  26. package/dist/types/schemas/a2a/parameters.d.ts +264 -264
  27. package/dist/types/schemas/a2a/parameters.js +1 -14
  28. package/dist/types/schemas/a2a/protocol.d.ts +5988 -5988
  29. package/dist/types/schemas/a2a/rpc.d.ts +20 -20
  30. package/dist/types/schemas/a2a/rpc.js +0 -5
  31. package/dist/types/schemas/a2a/task.d.ts +2513 -2513
  32. package/dist/types/schemas/a2a/task.js +10 -11
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -71,9 +71,10 @@ It has [serveral template projects](https://github.com/the-artinet-project/creat
71
71
  - The examples folder will be removed in favor of [`create-agent`](https://github.com/the-artinet-project/create-agent).
72
72
  - In `Task` the `contextId` field is now required (inline with the A2A spec).
73
73
  - In `AgentSkill` the `tag` field is now required (inline with the A2A spec).
74
- - Optional fields in Agent2Agent Zod schemas are now nullable for better interoperability.
74
+ - ~~Optional fields in Agent2Agent Zod schemas are now nullable for better interoperability.~~ **Nullable Schemas have been reverted.**
75
75
  - The `EngineBuilder` constructor is now protected and open for extension.
76
76
  - `AgentBuilder` will now throw an error if it recieves an invalid `FilePart`.
77
+ - `createAgent`/`createService` can now take a single string (i.e. agentName) as valid value for the AgentCard and will populate the rest of the required fields with placeholder values (see `src/services/a2a/helpers/agentcard-builder.ts` for reference).
77
78
 
78
79
  ## Installation
79
80
 
@@ -114,21 +115,13 @@ const { app, agent } = createAgentServer({
114
115
  return `You said: ${userInput}`;
115
116
  })
116
117
  .createAgent({
117
- agentCard: {
118
- name: "QuickStart Agent",
119
- description: "A simple agent that echoes the user's message",
120
- url: "http://localhost:4000/a2a",
121
- version: "0.1.0",
122
- capabilities: { streaming: true },
123
- skills: [{ id: "echo", name: "Echo Skill" }],
124
- ...
125
- },
118
+ agentCard: "QuickStart Agent",
126
119
  }),
127
120
  basePath: "/a2a"
128
121
  });
129
122
 
130
- app.listen(4000, () => {
131
- console.log("A2A Server running at http://localhost:4000/a2a");
123
+ app.listen(3000, () => {
124
+ console.log("A2A Server running at http://localhost:3000/a2a");
132
125
  });
133
126
  ```
134
127
 
@@ -138,7 +131,7 @@ app.listen(4000, () => {
138
131
  import { A2AClient, TaskStatusUpdateEvent } from "@artinet/sdk";
139
132
 
140
133
  async function runClient() {
141
- const client = new A2AClient("http://localhost:4000/a2a");
134
+ const client = new A2AClient("http://localhost:3000/a2a");
142
135
 
143
136
  const stream = client.sendStreamingMessage("Hello World!");
144
137
 
@@ -271,13 +264,7 @@ const { app, agent } = createAgentServer({
271
264
  return `Task completed. Status: ${status}`;
272
265
  }) //A final Task is returned to the caller which contains all of the emitted parts.
273
266
  .createAgent({
274
- agentCard: {
275
- name: "Multi-Step Agent",
276
- url: "http://localhost:3000/a2a",
277
- version: "1.0.0",
278
- capabilities: { streaming: true },
279
- skills: [{ id: "multi-processor", name: "Multi-Step Processor" }],
280
- },
267
+ agentCard: "Multi-Step Agent",
281
268
  }),
282
269
  basePath: "/a2a",
283
270
  });
@@ -382,13 +369,7 @@ const agent = createAgent({
382
369
  ...
383
370
  });
384
371
  },
385
- agentCard: {
386
- name: "Event-Monitored Agent",
387
- url: "http://localhost:3000/a2a",
388
- version: "1.0.0",
389
- capabilities: { streaming: true },
390
- skills: [{ id: "monitor", name: "Monitored Agent" }],
391
- },
372
+ agentCard: "Event-Monitored Agent",
392
373
  contexts: customContextManager,
393
374
  tasks: new TaskManager(),
394
375
  eventOverrides: { //for even greater control create your own Event Handlers
@@ -602,13 +583,7 @@ const mcpAgent = createMCPAgent({
602
583
  },
603
584
  agent: createAgent({
604
585
  engine: myAgentEngine,
605
- agentCard: {
606
- name: "My Agent",
607
- url: "http://localhost:3000/a2a",
608
- version: "1.0.0",
609
- capabilities: { streaming: true },
610
- skills: [{ id: "helper", name: "Helper Agent" }],
611
- },
586
+ agentCard: "MCP Agent",
612
587
  }),
613
588
  agentCardUri: "agent://card", //customize the URI for your AgentCard
614
589
  });
@@ -23,48 +23,48 @@ export declare function createAgentServer(params: ServerParams & {
23
23
  parts: ({
24
24
  file: {
25
25
  bytes: string;
26
- name?: string | null | undefined;
27
- mimeType?: string | null | undefined;
28
- uri?: null | undefined;
26
+ name?: string | undefined;
27
+ mimeType?: string | undefined;
28
+ uri?: undefined;
29
29
  } | {
30
30
  uri: string;
31
- name?: string | null | undefined;
32
- bytes?: null | undefined;
33
- mimeType?: string | null | undefined;
31
+ name?: string | undefined;
32
+ bytes?: undefined;
33
+ mimeType?: string | undefined;
34
34
  };
35
35
  kind: "file";
36
- metadata?: Record<string, unknown> | null | undefined;
36
+ metadata?: Record<string, unknown> | undefined;
37
37
  } | {
38
38
  text: string;
39
39
  kind: "text";
40
- metadata?: Record<string, unknown> | null | undefined;
40
+ metadata?: Record<string, unknown> | undefined;
41
41
  } | {
42
42
  data: Record<string, unknown>;
43
43
  kind: "data";
44
- metadata?: Record<string, unknown> | null | undefined;
44
+ metadata?: Record<string, unknown> | undefined;
45
45
  })[];
46
46
  messageId: string;
47
- metadata?: Record<string, unknown> | null | undefined;
48
- extensions?: string[] | null | undefined;
49
- referenceTaskIds?: string[] | null | undefined;
50
- taskId?: string | null | undefined;
51
- contextId?: string | null | undefined;
47
+ metadata?: Record<string, unknown> | undefined;
48
+ extensions?: string[] | undefined;
49
+ referenceTaskIds?: string[] | undefined;
50
+ taskId?: string | undefined;
51
+ contextId?: string | undefined;
52
52
  };
53
- metadata?: Record<string, unknown> | null | undefined;
53
+ metadata?: Record<string, unknown> | undefined;
54
54
  configuration?: {
55
- historyLength?: number | null | undefined;
55
+ historyLength?: number | undefined;
56
56
  pushNotificationConfig?: {
57
57
  url: string;
58
- id?: string | null | undefined;
59
- token?: string | null | undefined;
58
+ id?: string | undefined;
59
+ token?: string | undefined;
60
60
  authentication?: {
61
61
  schemes: string[];
62
- credentials?: string | null | undefined;
63
- } | null | undefined;
64
- } | null | undefined;
65
- acceptedOutputModes?: string[] | null | undefined;
66
- blocking?: boolean | null | undefined;
67
- } | null | undefined;
62
+ credentials?: string | undefined;
63
+ } | undefined;
64
+ } | undefined;
65
+ acceptedOutputModes?: string[] | undefined;
66
+ blocking?: boolean | undefined;
67
+ } | undefined;
68
68
  }, import("../../types/index.js").TaskAndHistory, import("../../types/index.js").UpdateEvent>;
69
69
  };
70
70
  export type ExpressAgentServer = ReturnType<typeof createAgentServer>;
@@ -282,48 +282,48 @@ export declare const AgentBuilder: () => EngineBuilder<{
282
282
  parts: ({
283
283
  file: {
284
284
  bytes: string;
285
- name?: string | null | undefined;
286
- mimeType?: string | null | undefined;
287
- uri?: null | undefined;
285
+ name?: string | undefined;
286
+ mimeType?: string | undefined;
287
+ uri?: undefined;
288
288
  } | {
289
289
  uri: string;
290
- name?: string | null | undefined;
291
- bytes?: null | undefined;
292
- mimeType?: string | null | undefined;
290
+ name?: string | undefined;
291
+ bytes?: undefined;
292
+ mimeType?: string | undefined;
293
293
  };
294
294
  kind: "file";
295
- metadata?: Record<string, unknown> | null | undefined;
295
+ metadata?: Record<string, unknown> | undefined;
296
296
  } | {
297
297
  text: string;
298
298
  kind: "text";
299
- metadata?: Record<string, unknown> | null | undefined;
299
+ metadata?: Record<string, unknown> | undefined;
300
300
  } | {
301
301
  data: Record<string, unknown>;
302
302
  kind: "data";
303
- metadata?: Record<string, unknown> | null | undefined;
303
+ metadata?: Record<string, unknown> | undefined;
304
304
  })[];
305
305
  messageId: string;
306
- metadata?: Record<string, unknown> | null | undefined;
307
- extensions?: string[] | null | undefined;
308
- referenceTaskIds?: string[] | null | undefined;
309
- taskId?: string | null | undefined;
310
- contextId?: string | null | undefined;
306
+ metadata?: Record<string, unknown> | undefined;
307
+ extensions?: string[] | undefined;
308
+ referenceTaskIds?: string[] | undefined;
309
+ taskId?: string | undefined;
310
+ contextId?: string | undefined;
311
311
  };
312
- metadata?: Record<string, unknown> | null | undefined;
312
+ metadata?: Record<string, unknown> | undefined;
313
313
  configuration?: {
314
- historyLength?: number | null | undefined;
314
+ historyLength?: number | undefined;
315
315
  pushNotificationConfig?: {
316
316
  url: string;
317
- id?: string | null | undefined;
318
- token?: string | null | undefined;
317
+ id?: string | undefined;
318
+ token?: string | undefined;
319
319
  authentication?: {
320
320
  schemes: string[];
321
- credentials?: string | null | undefined;
322
- } | null | undefined;
323
- } | null | undefined;
324
- acceptedOutputModes?: string[] | null | undefined;
325
- blocking?: boolean | null | undefined;
326
- } | null | undefined;
321
+ credentials?: string | undefined;
322
+ } | undefined;
323
+ } | undefined;
324
+ acceptedOutputModes?: string[] | undefined;
325
+ blocking?: boolean | undefined;
326
+ } | undefined;
327
327
  }, []>;
328
328
  /**
329
329
  * Creates an agent execution engine from a list of workflow steps.
@@ -5,7 +5,8 @@
5
5
  import { A2AService } from "../service.js";
6
6
  import { ContextManager, ConnectionManager, CancellationManager, TaskManager, } from "../managers/index.js";
7
7
  import { createMethods } from "./method.js";
8
+ import { createAgentCard } from "../helpers/agentcard-builder.js";
8
9
  export function createService(params) {
9
- return new A2AService(params.agentCard, params.engine, params.contexts ?? new ContextManager(), params.connections ?? new ConnectionManager(), params.cancellations ?? new CancellationManager(), params.tasks ?? new TaskManager(), createMethods(params.methods), params.events);
10
+ return new A2AService(createAgentCard(params.agentCard), params.engine, params.contexts ?? new ContextManager(), params.connections ?? new ConnectionManager(), params.cancellations ?? new CancellationManager(), params.tasks ?? new TaskManager(), createMethods(params.methods), params.events);
10
11
  }
11
12
  export const createAgent = createService;
@@ -0,0 +1,7 @@
1
+ import { AgentCard, AgentCardParams } from "../../../types/index.js";
2
+ export declare class AgentCardBuilder {
3
+ agentCard: AgentCard;
4
+ constructor(agentCard: Partial<AgentCard> & Required<Pick<AgentCard, "name">>);
5
+ valueOf(): AgentCard;
6
+ }
7
+ export declare function createAgentCard(agentCard: AgentCardParams): AgentCard;
@@ -0,0 +1,22 @@
1
+ export class AgentCardBuilder {
2
+ agentCard;
3
+ constructor(agentCard) {
4
+ this.agentCard = {
5
+ ...agentCard,
6
+ protocolVersion: agentCard.protocolVersion ?? "0.3.0",
7
+ description: agentCard.description ?? "An agent that can use the A2A protocol.",
8
+ url: agentCard.url ?? "https://localhost:3000/a2a",
9
+ version: agentCard.version ?? "0.0.0",
10
+ capabilities: agentCard.capabilities ?? {},
11
+ defaultInputModes: agentCard.defaultInputModes ?? [],
12
+ defaultOutputModes: agentCard.defaultOutputModes ?? [],
13
+ skills: agentCard.skills ?? [],
14
+ };
15
+ }
16
+ valueOf() {
17
+ return this.agentCard;
18
+ }
19
+ }
20
+ export function createAgentCard(agentCard) {
21
+ return new AgentCardBuilder(typeof agentCard === "string" ? { name: agentCard } : agentCard).valueOf();
22
+ }
@@ -1,3 +1,4 @@
1
1
  export * from "./part.js";
2
2
  export * from "./content.js";
3
3
  export * from "./message-builder.js";
4
+ export * from "./agentcard-builder.js";
@@ -1,3 +1,4 @@
1
1
  export * from "./part.js";
2
2
  export * from "./content.js";
3
3
  export * from "./message-builder.js";
4
+ export * from "./agentcard-builder.js";
@@ -13,100 +13,100 @@ export declare function getTask(input: TaskQueryParams, params: Omit<MethodParam
13
13
  parts: ({
14
14
  file: {
15
15
  bytes: string;
16
- name?: string | null | undefined;
17
- mimeType?: string | null | undefined;
18
- uri?: null | undefined;
16
+ name?: string | undefined;
17
+ mimeType?: string | undefined;
18
+ uri?: undefined;
19
19
  } | {
20
20
  uri: string;
21
- name?: string | null | undefined;
22
- bytes?: null | undefined;
23
- mimeType?: string | null | undefined;
21
+ name?: string | undefined;
22
+ bytes?: undefined;
23
+ mimeType?: string | undefined;
24
24
  };
25
25
  kind: "file";
26
- metadata?: Record<string, unknown> | null | undefined;
26
+ metadata?: Record<string, unknown> | undefined;
27
27
  } | {
28
28
  text: string;
29
29
  kind: "text";
30
- metadata?: Record<string, unknown> | null | undefined;
30
+ metadata?: Record<string, unknown> | undefined;
31
31
  } | {
32
32
  data: Record<string, unknown>;
33
33
  kind: "data";
34
- metadata?: Record<string, unknown> | null | undefined;
34
+ metadata?: Record<string, unknown> | undefined;
35
35
  })[];
36
36
  messageId: string;
37
- metadata?: Record<string, unknown> | null | undefined;
38
- extensions?: string[] | null | undefined;
39
- referenceTaskIds?: string[] | null | undefined;
40
- taskId?: string | null | undefined;
41
- contextId?: string | null | undefined;
42
- } | null | undefined;
43
- timestamp?: string | null | undefined;
37
+ metadata?: Record<string, unknown> | undefined;
38
+ extensions?: string[] | undefined;
39
+ referenceTaskIds?: string[] | undefined;
40
+ taskId?: string | undefined;
41
+ contextId?: string | undefined;
42
+ } | undefined;
43
+ timestamp?: string | undefined;
44
44
  };
45
45
  kind: "task";
46
46
  contextId: string;
47
- metadata?: Record<string, unknown> | null | undefined;
47
+ metadata?: Record<string, unknown> | undefined;
48
48
  history?: {
49
49
  role: "user" | "agent";
50
50
  kind: "message";
51
51
  parts: ({
52
52
  file: {
53
53
  bytes: string;
54
- name?: string | null | undefined;
55
- mimeType?: string | null | undefined;
56
- uri?: null | undefined;
54
+ name?: string | undefined;
55
+ mimeType?: string | undefined;
56
+ uri?: undefined;
57
57
  } | {
58
58
  uri: string;
59
- name?: string | null | undefined;
60
- bytes?: null | undefined;
61
- mimeType?: string | null | undefined;
59
+ name?: string | undefined;
60
+ bytes?: undefined;
61
+ mimeType?: string | undefined;
62
62
  };
63
63
  kind: "file";
64
- metadata?: Record<string, unknown> | null | undefined;
64
+ metadata?: Record<string, unknown> | undefined;
65
65
  } | {
66
66
  text: string;
67
67
  kind: "text";
68
- metadata?: Record<string, unknown> | null | undefined;
68
+ metadata?: Record<string, unknown> | undefined;
69
69
  } | {
70
70
  data: Record<string, unknown>;
71
71
  kind: "data";
72
- metadata?: Record<string, unknown> | null | undefined;
72
+ metadata?: Record<string, unknown> | undefined;
73
73
  })[];
74
74
  messageId: string;
75
- metadata?: Record<string, unknown> | null | undefined;
76
- extensions?: string[] | null | undefined;
77
- referenceTaskIds?: string[] | null | undefined;
78
- taskId?: string | null | undefined;
79
- contextId?: string | null | undefined;
80
- }[] | null | undefined;
75
+ metadata?: Record<string, unknown> | undefined;
76
+ extensions?: string[] | undefined;
77
+ referenceTaskIds?: string[] | undefined;
78
+ taskId?: string | undefined;
79
+ contextId?: string | undefined;
80
+ }[] | undefined;
81
81
  artifacts?: {
82
82
  artifactId: string;
83
83
  parts: ({
84
84
  file: {
85
85
  bytes: string;
86
- name?: string | null | undefined;
87
- mimeType?: string | null | undefined;
88
- uri?: null | undefined;
86
+ name?: string | undefined;
87
+ mimeType?: string | undefined;
88
+ uri?: undefined;
89
89
  } | {
90
90
  uri: string;
91
- name?: string | null | undefined;
92
- bytes?: null | undefined;
93
- mimeType?: string | null | undefined;
91
+ name?: string | undefined;
92
+ bytes?: undefined;
93
+ mimeType?: string | undefined;
94
94
  };
95
95
  kind: "file";
96
- metadata?: Record<string, unknown> | null | undefined;
96
+ metadata?: Record<string, unknown> | undefined;
97
97
  } | {
98
98
  text: string;
99
99
  kind: "text";
100
- metadata?: Record<string, unknown> | null | undefined;
100
+ metadata?: Record<string, unknown> | undefined;
101
101
  } | {
102
102
  data: Record<string, unknown>;
103
103
  kind: "data";
104
- metadata?: Record<string, unknown> | null | undefined;
104
+ metadata?: Record<string, unknown> | undefined;
105
105
  })[];
106
- name?: string | null | undefined;
107
- metadata?: Record<string, unknown> | null | undefined;
108
- description?: string | null | undefined;
109
- extension?: string[] | null | undefined;
110
- }[] | null | undefined;
106
+ name?: string | undefined;
107
+ metadata?: Record<string, unknown> | undefined;
108
+ description?: string | undefined;
109
+ extension?: string[] | undefined;
110
+ }[] | undefined;
111
111
  }>;
112
112
  export type GetTaskMethod = typeof getTask;