@microsoft/teams.a2a 2.0.0 → 2.0.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.
- package/dist/server/plugin.d.ts +9 -3
- package/dist/server/plugin.js +22 -7
- package/package.json +5 -5
package/dist/server/plugin.d.ts
CHANGED
|
@@ -13,15 +13,20 @@ interface IA2APluginOptions {
|
|
|
13
13
|
* @default '/a2a'
|
|
14
14
|
*/
|
|
15
15
|
path?: `/${string}`;
|
|
16
|
+
/**
|
|
17
|
+
* Path to the agent card
|
|
18
|
+
* @default '/a2a/.well-known/agent-card.json'
|
|
19
|
+
*/
|
|
20
|
+
agentCardPath?: string;
|
|
16
21
|
/**
|
|
17
22
|
* taskStore which stores the tasks that are sent to the agent
|
|
18
23
|
* or that the agent sends. If not provided, the App's storage will be used.
|
|
19
24
|
*/
|
|
20
25
|
taskStore?: TaskStore;
|
|
21
26
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
* For a completely custom executor, you may provide your own executor that will
|
|
28
|
+
* get executed whenever the a2a agent is InMemoryTaskStore
|
|
29
|
+
*/
|
|
25
30
|
agentExecutor?: AgentExecutor;
|
|
26
31
|
}
|
|
27
32
|
export type Respond = (message: string | Message | Task) => Promise<void>;
|
|
@@ -39,6 +44,7 @@ export declare class A2APlugin implements IPlugin {
|
|
|
39
44
|
__eventType: A2AEvents;
|
|
40
45
|
readonly card: AgentCard;
|
|
41
46
|
readonly path: string;
|
|
47
|
+
readonly agentCardPath: string;
|
|
42
48
|
readonly taskStore: TaskStore;
|
|
43
49
|
readonly customExecutor?: AgentExecutor;
|
|
44
50
|
private readonly middlewares;
|
package/dist/server/plugin.js
CHANGED
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.A2APlugin = void 0;
|
|
16
16
|
const node_crypto_1 = require("node:crypto");
|
|
17
|
+
const sdk_1 = require("@a2a-js/sdk");
|
|
17
18
|
const server_1 = require("@a2a-js/sdk/server");
|
|
18
19
|
const express_1 = require("@a2a-js/sdk/server/express");
|
|
19
20
|
const express_2 = __importDefault(require("express"));
|
|
@@ -25,12 +26,21 @@ let A2APlugin = class A2APlugin {
|
|
|
25
26
|
__eventType;
|
|
26
27
|
card;
|
|
27
28
|
path;
|
|
29
|
+
agentCardPath;
|
|
28
30
|
taskStore;
|
|
29
31
|
customExecutor;
|
|
30
32
|
middlewares = [];
|
|
31
33
|
constructor(options) {
|
|
32
34
|
this.card = options.agentCard;
|
|
33
|
-
|
|
35
|
+
if (options.path) {
|
|
36
|
+
this.path = options.path.startsWith('/')
|
|
37
|
+
? options.path
|
|
38
|
+
: `/${options.path}`;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.path = '/a2a';
|
|
42
|
+
}
|
|
43
|
+
this.agentCardPath = options.agentCardPath ?? sdk_1.AGENT_CARD_PATH;
|
|
34
44
|
this.taskStore = options.taskStore ?? new server_1.InMemoryTaskStore();
|
|
35
45
|
this.customExecutor = options.agentExecutor;
|
|
36
46
|
}
|
|
@@ -41,8 +51,13 @@ let A2APlugin = class A2APlugin {
|
|
|
41
51
|
const a2aExpressApp = new express_1.A2AExpressApp(this._setupRequestHandler());
|
|
42
52
|
const expressApp = (0, express_2.default)();
|
|
43
53
|
// Combine logging middleware with custom middlewares
|
|
44
|
-
const allMiddlewares = [
|
|
45
|
-
|
|
54
|
+
const allMiddlewares = [
|
|
55
|
+
this._createLoggingMiddleware(),
|
|
56
|
+
...this.middlewares,
|
|
57
|
+
];
|
|
58
|
+
a2aExpressApp.setupRoutes(expressApp, this.path, allMiddlewares, this.agentCardPath);
|
|
59
|
+
this.log.info(`A2A agent set up at ${this.path}/${this.agentCardPath}`);
|
|
60
|
+
this.log.info(`A2A agent listening at ${this.path}`);
|
|
46
61
|
this._httpPlugin.use(expressApp);
|
|
47
62
|
}
|
|
48
63
|
_createLoggingMiddleware() {
|
|
@@ -78,11 +93,11 @@ let A2APlugin = class A2APlugin {
|
|
|
78
93
|
eventBus.publish(responseMessage);
|
|
79
94
|
eventBus.finished();
|
|
80
95
|
},
|
|
81
|
-
publishUpdate: eventBus.publish.bind(eventBus)
|
|
96
|
+
publishUpdate: eventBus.publish.bind(eventBus),
|
|
82
97
|
};
|
|
83
98
|
this.emit('a2a:message', ctx);
|
|
84
99
|
},
|
|
85
|
-
cancelTask: async () => { }
|
|
100
|
+
cancelTask: async () => { },
|
|
86
101
|
};
|
|
87
102
|
return executor;
|
|
88
103
|
}
|
|
@@ -107,8 +122,8 @@ exports.A2APlugin = A2APlugin = __decorate([
|
|
|
107
122
|
(0, teams_apps_1.Plugin)({
|
|
108
123
|
name: 'a2a',
|
|
109
124
|
description: 'A2A Server Plugin',
|
|
110
|
-
version: '0.3.0'
|
|
125
|
+
version: '0.3.0',
|
|
111
126
|
}),
|
|
112
127
|
__metadata("design:paramtypes", [Object])
|
|
113
128
|
], A2APlugin);
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQXlDO0FBRXpDLHFDQUF3RTtBQUN4RSwrQ0FRNEI7QUFDNUIsd0RBQTJEO0FBQzNELHNEQUFrRDtBQUVsRCxzREFRK0I7QUFnRHhCLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVKLEdBQUcsQ0FBVztJQUdYLElBQUksQ0FBOEI7SUFHbEMsV0FBVyxDQUFjO0lBQzVDLFdBQVcsQ0FBYTtJQUVSLElBQUksQ0FBWTtJQUNoQixJQUFJLENBQVM7SUFDYixhQUFhLENBQVM7SUFDdEIsU0FBUyxDQUFZO0lBQ3JCLGNBQWMsQ0FBaUI7SUFDOUIsV0FBVyxHQUFxQixFQUFFLENBQUM7SUFFcEQsWUFBWSxPQUEwQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDZCxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLHFCQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksMEJBQWlCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVE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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/teams.a2a",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@a2a-js/sdk": "^0.3.4",
|
|
33
|
-
"@microsoft/teams.ai": "2.0.
|
|
34
|
-
"@microsoft/teams.apps": "2.0.
|
|
35
|
-
"@microsoft/teams.common": "2.0.
|
|
33
|
+
"@microsoft/teams.ai": "2.0.2",
|
|
34
|
+
"@microsoft/teams.apps": "2.0.2",
|
|
35
|
+
"@microsoft/teams.common": "2.0.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@microsoft/teams.config": "2.0.
|
|
38
|
+
"@microsoft/teams.config": "2.0.2",
|
|
39
39
|
"@types/jest": "^29.5.12",
|
|
40
40
|
"@types/lodash.camelcase": "^4.3.9",
|
|
41
41
|
"@types/node": "^22.0.2",
|