@microsoft/teams.a2a 2.0.1 → 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.
@@ -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
- * For a completely custom executor, you may provide your own executor that will
23
- * get executed whenever the a2a agent is InMemoryTaskStore
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;
@@ -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
- this.path = options.path ?? '/a2a';
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 = [this._createLoggingMiddleware(), ...this.middlewares];
45
- a2aExpressApp.setupRoutes(expressApp, this.path, allMiddlewares);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQXlDO0FBR3pDLCtDQUE4SjtBQUM5Six3REFBMkQ7QUFDM0Qsc0RBQWtEO0FBRWxELHNEQUFnSDtBQTJDekcsSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRUosR0FBRyxDQUFXO0lBR1gsSUFBSSxDQUE4QjtJQUdsQyxXQUFXLENBQWM7SUFDNUMsV0FBVyxDQUFhO0lBRVIsSUFBSSxDQUFZO0lBQ2hCLElBQUksQ0FBUztJQUNiLFNBQVMsQ0FBWTtJQUNyQixjQUFjLENBQWlCO0lBQzlCLFdBQVcsR0FBcUIsRUFBRSxDQUFDO0lBRXBELFlBQVksT0FBMEI7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksMEJBQWlCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxVQUEwQjtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTTtRQUNKLE1BQU0sYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO1FBRTdCLHFEQUFxRDtRQUNyRCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxD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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQXlDO0FBRXpDLHFDQUF3RTtBQUN4RSwrQ0FRNEI7QUFDNUIsd0RBQTJEO0FBQzNELHNEQUFrRDtBQUVsRCxzREFRK0I7QUFnRHhCLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVKLEdBQUcsQ0FBVztJQUdYLElBQUksQ0FBOEI7SUFHbEMsV0FBVyxDQUFjO0lBQzVDLFdBQVcsQ0FBYTtJQUVSLElBQUksQ0FBWTtJQUNoQixJQUFJLENBQVM7SUFDYixhQUFhLENBQVM7SUFDdEIsU0FBUyxDQUFZO0lBQ3JCLGNBQWMsQ0FBaUI7SUFDOUIsV0FBVyxHQUFxQixFQUFFLENBQUM7SUFFcEQsWUFBWSxPQUEwQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDZCxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLHFCQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksMEJBQWlCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxVQUEwQjtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTTtRQUNKLE1BQU0sYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO1FBRTdCLHFEQUFxRDtRQUNyRCxNQUFNLGNBQWMsR0FBRztZQUNyQixJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDL0IsR0FBRyxJQUFJLENBQUMsV0FBVztTQUNwQixDQUFDO1FBRUYsYUFBYSxDQUFDLFdBQVcsQ0FDdkIsVUFBVSxFQUNWLElBQUksQ0FBQyxJQUFJLEVBQ1QsY0FBYyxFQUNkLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywwQkFBMEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN6QixJQUFJLFVBQVUsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFekQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RDLFVBQVUsSUFBSSxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkQsQ0FBQztZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLFFBQVEsR0FBa0I7WUFDOUIsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sR0FBRyxHQUE2QjtvQkFDcEMsY0FBYztvQkFDZCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO3dCQUN6QixJQUFJLGVBQStCLENBQUM7d0JBQ3BDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQ2hDLGVBQWUsR0FBRztnQ0FDaEIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsU0FBUyxFQUFFLElBQUEsd0JBQVUsR0FBRTtnQ0FDdkIsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQ0FDeEMsOERBQThEO2dDQUM5RCxTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVM7NkJBQ3BDLENBQUM7d0JBQ0osQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLGVBQWUsR0FBRyxPQUFPLENBQUM7d0JBQzVCLENBQUM7d0JBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQzt3QkFDbEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN0QixDQUFDO29CQUNELGFBQWEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQy9DLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRSxHQUFFLENBQUM7U0FDM0IsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLDhCQUFxQixDQUM5QixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQzdDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQTNHWSw4QkFBUztBQUVKO0lBRGYsSUFBQSxtQkFBTSxHQUFFOztzQ0FDcUI7QUFHWDtJQURsQixJQUFBLGtCQUFLLEVBQUMsUUFBUSxDQUFDOzt1Q0FDcUM7QUFHbEM7SUFEbEIsSUFBQSx1QkFBVSxHQUFFOzhCQUNvQix1QkFBVTs4Q0FBQztvQkFSakMsU0FBUztJQUxyQixJQUFBLG1CQUFNLEVBQUM7UUFDTixJQUFJLEVBQUUsS0FBSztRQUNYLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQzs7R0FDVyxTQUFTLENBMkdyQiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/teams.a2a",
3
- "version": "2.0.1",
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.1",
34
- "@microsoft/teams.apps": "2.0.1",
35
- "@microsoft/teams.common": "2.0.1"
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.1",
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",