apcore-a2a 0.1.0

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 (99) hide show
  1. package/README.md +234 -0
  2. package/dist/adapters/agent-card.d.ts +32 -0
  3. package/dist/adapters/agent-card.d.ts.map +1 -0
  4. package/dist/adapters/agent-card.js +49 -0
  5. package/dist/adapters/agent-card.js.map +1 -0
  6. package/dist/adapters/errors.d.ts +10 -0
  7. package/dist/adapters/errors.d.ts.map +1 -0
  8. package/dist/adapters/errors.js +48 -0
  9. package/dist/adapters/errors.js.map +1 -0
  10. package/dist/adapters/index.d.ts +6 -0
  11. package/dist/adapters/index.d.ts.map +1 -0
  12. package/dist/adapters/index.js +6 -0
  13. package/dist/adapters/index.js.map +1 -0
  14. package/dist/adapters/parts.d.ts +10 -0
  15. package/dist/adapters/parts.d.ts.map +1 -0
  16. package/dist/adapters/parts.js +53 -0
  17. package/dist/adapters/parts.js.map +1 -0
  18. package/dist/adapters/schema.d.ts +15 -0
  19. package/dist/adapters/schema.d.ts.map +1 -0
  20. package/dist/adapters/schema.js +77 -0
  21. package/dist/adapters/schema.js.map +1 -0
  22. package/dist/adapters/skill-mapper.d.ts +20 -0
  23. package/dist/adapters/skill-mapper.d.ts.map +1 -0
  24. package/dist/adapters/skill-mapper.js +46 -0
  25. package/dist/adapters/skill-mapper.js.map +1 -0
  26. package/dist/auth/index.d.ts +5 -0
  27. package/dist/auth/index.d.ts.map +1 -0
  28. package/dist/auth/index.js +4 -0
  29. package/dist/auth/index.js.map +1 -0
  30. package/dist/auth/jwt.d.ts +30 -0
  31. package/dist/auth/jwt.d.ts.map +1 -0
  32. package/dist/auth/jwt.js +76 -0
  33. package/dist/auth/jwt.js.map +1 -0
  34. package/dist/auth/middleware.d.ts +10 -0
  35. package/dist/auth/middleware.d.ts.map +1 -0
  36. package/dist/auth/middleware.js +33 -0
  37. package/dist/auth/middleware.js.map +1 -0
  38. package/dist/auth/storage.d.ts +5 -0
  39. package/dist/auth/storage.d.ts.map +1 -0
  40. package/dist/auth/storage.js +6 -0
  41. package/dist/auth/storage.js.map +1 -0
  42. package/dist/auth/types.d.ts +6 -0
  43. package/dist/auth/types.d.ts.map +1 -0
  44. package/dist/auth/types.js +2 -0
  45. package/dist/auth/types.js.map +1 -0
  46. package/dist/cli.d.ts +4 -0
  47. package/dist/cli.d.ts.map +1 -0
  48. package/dist/cli.js +174 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/client/card-fetcher.d.ts +13 -0
  51. package/dist/client/card-fetcher.d.ts.map +1 -0
  52. package/dist/client/card-fetcher.js +34 -0
  53. package/dist/client/card-fetcher.js.map +1 -0
  54. package/dist/client/client.d.ts +30 -0
  55. package/dist/client/client.d.ts.map +1 -0
  56. package/dist/client/client.js +155 -0
  57. package/dist/client/client.js.map +1 -0
  58. package/dist/client/exceptions.d.ts +20 -0
  59. package/dist/client/exceptions.d.ts.map +1 -0
  60. package/dist/client/exceptions.js +32 -0
  61. package/dist/client/exceptions.js.map +1 -0
  62. package/dist/client/index.d.ts +4 -0
  63. package/dist/client/index.d.ts.map +1 -0
  64. package/dist/client/index.js +4 -0
  65. package/dist/client/index.js.map +1 -0
  66. package/dist/explorer/handler.d.ts +4 -0
  67. package/dist/explorer/handler.d.ts.map +1 -0
  68. package/dist/explorer/handler.js +28 -0
  69. package/dist/explorer/handler.js.map +1 -0
  70. package/dist/explorer/index.d.ts +2 -0
  71. package/dist/explorer/index.d.ts.map +1 -0
  72. package/dist/explorer/index.html +760 -0
  73. package/dist/explorer/index.js +2 -0
  74. package/dist/explorer/index.js.map +1 -0
  75. package/dist/index.d.ts +5 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +4 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/serve.d.ts +38 -0
  80. package/dist/serve.d.ts.map +1 -0
  81. package/dist/serve.js +98 -0
  82. package/dist/serve.js.map +1 -0
  83. package/dist/server/executor.d.ts +26 -0
  84. package/dist/server/executor.d.ts.map +1 -0
  85. package/dist/server/executor.js +191 -0
  86. package/dist/server/executor.js.map +1 -0
  87. package/dist/server/factory.d.ts +33 -0
  88. package/dist/server/factory.d.ts.map +1 -0
  89. package/dist/server/factory.js +177 -0
  90. package/dist/server/factory.js.map +1 -0
  91. package/dist/server/index.d.ts +3 -0
  92. package/dist/server/index.d.ts.map +1 -0
  93. package/dist/server/index.js +3 -0
  94. package/dist/server/index.js.map +1 -0
  95. package/dist/storage/index.d.ts +3 -0
  96. package/dist/storage/index.d.ts.map +1 -0
  97. package/dist/storage/index.js +2 -0
  98. package/dist/storage/index.js.map +1 -0
  99. package/package.json +80 -0
@@ -0,0 +1,155 @@
1
+ import { AgentCardFetcher } from "./card-fetcher.js";
2
+ import { A2AConnectionError, A2AServerError, TaskNotCancelableError, TaskNotFoundError, } from "./exceptions.js";
3
+ const JSONRPC_ERRORS = {
4
+ [-32001]: TaskNotFoundError,
5
+ [-32002]: TaskNotCancelableError,
6
+ };
7
+ function raiseJsonRpcError(error) {
8
+ const code = error.code ?? -32603;
9
+ const message = error.message ?? "Server error";
10
+ const ErrorClass = JSONRPC_ERRORS[code];
11
+ if (ErrorClass === TaskNotFoundError)
12
+ throw new TaskNotFoundError();
13
+ if (ErrorClass === TaskNotCancelableError)
14
+ throw new TaskNotCancelableError();
15
+ throw new A2AServerError(message, code);
16
+ }
17
+ export class A2AClient {
18
+ url;
19
+ headers;
20
+ timeout;
21
+ cardFetcher;
22
+ constructor(url, opts) {
23
+ this.validateUrl(url);
24
+ this.url = url.replace(/\/+$/, "");
25
+ this.headers = { "Content-Type": "application/json" };
26
+ if (opts?.auth)
27
+ this.headers.Authorization = opts.auth;
28
+ this.timeout = opts?.timeout ?? 30000;
29
+ this.cardFetcher = new AgentCardFetcher(this.url, {
30
+ ttl: opts?.cardTtl ?? 300,
31
+ headers: opts?.auth ? { Authorization: opts.auth } : undefined,
32
+ });
33
+ }
34
+ validateUrl(url) {
35
+ try {
36
+ const parsed = new URL(url);
37
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
38
+ throw new Error("bad protocol");
39
+ }
40
+ }
41
+ catch {
42
+ throw new TypeError(`Invalid A2A agent URL: '${url}' (must be http:// or https://)`);
43
+ }
44
+ }
45
+ async discover() {
46
+ return this.cardFetcher.fetch();
47
+ }
48
+ async sendMessage(message, opts) {
49
+ const params = { message, metadata: opts?.metadata ?? {} };
50
+ if (opts?.contextId)
51
+ params.contextId = opts.contextId;
52
+ return this.jsonrpcCall("message/send", params);
53
+ }
54
+ async getTask(taskId) {
55
+ return this.jsonrpcCall("tasks/get", { id: taskId });
56
+ }
57
+ async cancelTask(taskId) {
58
+ return this.jsonrpcCall("tasks/cancel", { id: taskId });
59
+ }
60
+ async listTasks(opts) {
61
+ const params = { limit: opts?.limit ?? 50 };
62
+ if (opts?.contextId)
63
+ params.contextId = opts.contextId;
64
+ return this.jsonrpcCall("tasks/list", params);
65
+ }
66
+ async *streamMessage(message, opts) {
67
+ const params = { message, metadata: opts?.metadata ?? {} };
68
+ if (opts?.contextId)
69
+ params.contextId = opts.contextId;
70
+ const body = {
71
+ jsonrpc: "2.0",
72
+ id: crypto.randomUUID(),
73
+ method: "message/stream",
74
+ params,
75
+ };
76
+ let response;
77
+ try {
78
+ response = await fetch(`${this.url}/`, {
79
+ method: "POST",
80
+ headers: this.headers,
81
+ body: JSON.stringify(body),
82
+ signal: AbortSignal.timeout(this.timeout),
83
+ });
84
+ }
85
+ catch (e) {
86
+ throw new A2AConnectionError(String(e));
87
+ }
88
+ if (!response.ok || !response.body) {
89
+ throw new A2AConnectionError(`HTTP ${response.status}`);
90
+ }
91
+ const reader = response.body.getReader();
92
+ const decoder = new TextDecoder();
93
+ let buffer = "";
94
+ try {
95
+ while (true) {
96
+ const { done, value } = await reader.read();
97
+ if (done)
98
+ break;
99
+ buffer += decoder.decode(value, { stream: true });
100
+ const lines = buffer.split("\n");
101
+ buffer = lines.pop();
102
+ for (const line of lines) {
103
+ if (line.startsWith("data: ")) {
104
+ try {
105
+ const data = JSON.parse(line.slice(6));
106
+ yield data;
107
+ const final = data.final ||
108
+ data.result?.final;
109
+ if (final)
110
+ return;
111
+ }
112
+ catch {
113
+ continue;
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ finally {
120
+ reader.releaseLock();
121
+ }
122
+ }
123
+ close() {
124
+ // No persistent connection to close with native fetch
125
+ }
126
+ async jsonrpcCall(method, params) {
127
+ const body = {
128
+ jsonrpc: "2.0",
129
+ id: crypto.randomUUID(),
130
+ method,
131
+ params,
132
+ };
133
+ let response;
134
+ try {
135
+ response = await fetch(`${this.url}/`, {
136
+ method: "POST",
137
+ headers: this.headers,
138
+ body: JSON.stringify(body),
139
+ signal: AbortSignal.timeout(this.timeout),
140
+ });
141
+ }
142
+ catch (e) {
143
+ throw new A2AConnectionError(String(e));
144
+ }
145
+ if (!response.ok) {
146
+ throw new A2AConnectionError(`HTTP ${response.status}`);
147
+ }
148
+ const data = (await response.json());
149
+ if ("error" in data) {
150
+ raiseJsonRpcError(data.error);
151
+ }
152
+ return data.result;
153
+ }
154
+ }
155
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class A2AClientError extends Error {
2
+ constructor(message?: string);
3
+ }
4
+ export declare class A2AConnectionError extends A2AClientError {
5
+ }
6
+ export declare class A2ADiscoveryError extends A2AClientError {
7
+ }
8
+ export declare class TaskNotFoundError extends A2AClientError {
9
+ taskId?: string;
10
+ constructor(taskId?: string);
11
+ }
12
+ export declare class TaskNotCancelableError extends A2AClientError {
13
+ state?: string;
14
+ constructor(state?: string);
15
+ }
16
+ export declare class A2AServerError extends A2AClientError {
17
+ code: number;
18
+ constructor(message: string, code?: number);
19
+ }
20
+ //# sourceMappingURL=exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/client/exceptions.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,kBAAmB,SAAQ,cAAc;CAAG;AAEzD,qBAAa,iBAAkB,SAAQ,cAAc;CAAG;AAExD,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;gBACJ,MAAM,CAAC,EAAE,MAAM;CAI5B;AAED,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;gBACH,KAAK,CAAC,EAAE,MAAM;CAI3B;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,IAAI,EAAE,MAAM,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAe;CAInD"}
@@ -0,0 +1,32 @@
1
+ export class A2AClientError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = this.constructor.name;
5
+ }
6
+ }
7
+ export class A2AConnectionError extends A2AClientError {
8
+ }
9
+ export class A2ADiscoveryError extends A2AClientError {
10
+ }
11
+ export class TaskNotFoundError extends A2AClientError {
12
+ taskId;
13
+ constructor(taskId) {
14
+ super(taskId ? `Task not found: ${taskId}` : "Task not found");
15
+ this.taskId = taskId;
16
+ }
17
+ }
18
+ export class TaskNotCancelableError extends A2AClientError {
19
+ state;
20
+ constructor(state) {
21
+ super(state ? `Task not cancelable: state=${state}` : "Task not cancelable");
22
+ this.state = state;
23
+ }
24
+ }
25
+ export class A2AServerError extends A2AClientError {
26
+ code;
27
+ constructor(message, code = -32603) {
28
+ super(message);
29
+ this.code = code;
30
+ }
31
+ }
32
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/client/exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;CAAG;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,cAAc;CAAG;AAExD,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACnD,MAAM,CAAU;IAChB,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD,KAAK,CAAU;IACf,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,cAAc;IAChD,IAAI,CAAS;IACb,YAAY,OAAe,EAAE,OAAe,CAAC,KAAK;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { A2AClient } from "./client.js";
2
+ export { AgentCardFetcher } from "./card-fetcher.js";
3
+ export { A2AClientError, A2AConnectionError, A2ADiscoveryError, A2AServerError, TaskNotCancelableError, TaskNotFoundError, } from "./exceptions.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { A2AClient } from "./client.js";
2
+ export { AgentCardFetcher } from "./card-fetcher.js";
3
+ export { A2AClientError, A2AConnectionError, A2ADiscoveryError, A2AServerError, TaskNotCancelableError, TaskNotFoundError, } from "./exceptions.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Router } from "express";
2
+ import type { AgentCard } from "@a2a-js/sdk";
3
+ export declare function createExplorerRouter(agentCard: AgentCard): Router;
4
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/explorer/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmB7C,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAYjE"}
@@ -0,0 +1,28 @@
1
+ import { Router } from "express";
2
+ import { readFileSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+ import { dirname, join } from "node:path";
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dir = dirname(__filename);
7
+ // Resolve HTML relative to this file's location.
8
+ // In source: src/explorer/handler.ts -> src/explorer/index.html
9
+ // In dist: dist/explorer/handler.js -> dist/explorer/index.html (copied by build)
10
+ const HTML_PATH = join(__dir, "index.html");
11
+ let cachedHtml = null;
12
+ function getHtml() {
13
+ if (!cachedHtml) {
14
+ cachedHtml = readFileSync(HTML_PATH, "utf-8");
15
+ }
16
+ return cachedHtml;
17
+ }
18
+ export function createExplorerRouter(agentCard) {
19
+ const router = Router();
20
+ router.get("/", (_req, res) => {
21
+ res.type("html").send(getHtml());
22
+ });
23
+ router.get("/agent-card", (_req, res) => {
24
+ res.json(agentCard);
25
+ });
26
+ return router;
27
+ }
28
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/explorer/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAElC,iDAAiD;AACjD,gEAAgE;AAChE,oFAAoF;AACpF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAE5C,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,SAAS,OAAO;IACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACtC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createExplorerRouter } from "./handler.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/explorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}