@awcp/sdk 0.0.0-dev-202601300724

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 (69) hide show
  1. package/dist/delegator/admission.d.ts +49 -0
  2. package/dist/delegator/admission.d.ts.map +1 -0
  3. package/dist/delegator/admission.js +117 -0
  4. package/dist/delegator/admission.js.map +1 -0
  5. package/dist/delegator/bin/client.d.ts +102 -0
  6. package/dist/delegator/bin/client.d.ts.map +1 -0
  7. package/dist/delegator/bin/client.js +116 -0
  8. package/dist/delegator/bin/client.js.map +1 -0
  9. package/dist/delegator/bin/daemon.d.ts +78 -0
  10. package/dist/delegator/bin/daemon.d.ts.map +1 -0
  11. package/dist/delegator/bin/daemon.js +245 -0
  12. package/dist/delegator/bin/daemon.js.map +1 -0
  13. package/dist/delegator/config.d.ts +168 -0
  14. package/dist/delegator/config.d.ts.map +1 -0
  15. package/dist/delegator/config.js +54 -0
  16. package/dist/delegator/config.js.map +1 -0
  17. package/dist/delegator/executor-client.d.ts +36 -0
  18. package/dist/delegator/executor-client.d.ts.map +1 -0
  19. package/dist/delegator/executor-client.js +77 -0
  20. package/dist/delegator/executor-client.js.map +1 -0
  21. package/dist/delegator/export-view.d.ts +43 -0
  22. package/dist/delegator/export-view.d.ts.map +1 -0
  23. package/dist/delegator/export-view.js +108 -0
  24. package/dist/delegator/export-view.js.map +1 -0
  25. package/dist/delegator/index.d.ts +8 -0
  26. package/dist/delegator/index.d.ts.map +1 -0
  27. package/dist/delegator/index.js +11 -0
  28. package/dist/delegator/index.js.map +1 -0
  29. package/dist/delegator/service.d.ts +120 -0
  30. package/dist/delegator/service.d.ts.map +1 -0
  31. package/dist/delegator/service.js +323 -0
  32. package/dist/delegator/service.js.map +1 -0
  33. package/dist/executor/config.d.ts +126 -0
  34. package/dist/executor/config.d.ts.map +1 -0
  35. package/dist/executor/config.js +38 -0
  36. package/dist/executor/config.js.map +1 -0
  37. package/dist/executor/delegator-client.d.ts +18 -0
  38. package/dist/executor/delegator-client.d.ts.map +1 -0
  39. package/dist/executor/delegator-client.js +37 -0
  40. package/dist/executor/delegator-client.js.map +1 -0
  41. package/dist/executor/index.d.ts +5 -0
  42. package/dist/executor/index.d.ts.map +1 -0
  43. package/dist/executor/index.js +7 -0
  44. package/dist/executor/index.js.map +1 -0
  45. package/dist/executor/policy.d.ts +55 -0
  46. package/dist/executor/policy.d.ts.map +1 -0
  47. package/dist/executor/policy.js +100 -0
  48. package/dist/executor/policy.js.map +1 -0
  49. package/dist/executor/service.d.ts +84 -0
  50. package/dist/executor/service.d.ts.map +1 -0
  51. package/dist/executor/service.js +322 -0
  52. package/dist/executor/service.js.map +1 -0
  53. package/dist/index.d.ts +9 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +28 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/server/express/awcp-delegator-handler.d.ts +67 -0
  58. package/dist/server/express/awcp-delegator-handler.d.ts.map +1 -0
  59. package/dist/server/express/awcp-delegator-handler.js +99 -0
  60. package/dist/server/express/awcp-delegator-handler.js.map +1 -0
  61. package/dist/server/express/awcp-executor-handler.d.ts +47 -0
  62. package/dist/server/express/awcp-executor-handler.d.ts.map +1 -0
  63. package/dist/server/express/awcp-executor-handler.js +104 -0
  64. package/dist/server/express/awcp-executor-handler.js.map +1 -0
  65. package/dist/server/express/index.d.ts +6 -0
  66. package/dist/server/express/index.d.ts.map +1 -0
  67. package/dist/server/express/index.js +8 -0
  68. package/dist/server/express/index.js.map +1 -0
  69. package/package.json +69 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * AWCP Executor Express Handler
3
+ *
4
+ * Express middleware for enabling AWCP support in an A2A agent (Executor side).
5
+ */
6
+ import { Router, json } from 'express';
7
+ import { ExecutorService } from '../../executor/service.js';
8
+ /**
9
+ * Create an Express router that handles AWCP messages (Executor side)
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import express from 'express';
14
+ * import { executorHandler } from '@awcp/sdk/server/express';
15
+ *
16
+ * const app = express();
17
+ *
18
+ * // ... existing A2A setup ...
19
+ *
20
+ * // Enable AWCP
21
+ * app.use('/awcp', executorHandler({
22
+ * executor: myExecutor,
23
+ * config: {
24
+ * mount: { root: '/tmp/awcp/mounts' },
25
+ * },
26
+ * }));
27
+ * ```
28
+ */
29
+ export function executorHandler(options) {
30
+ const router = Router();
31
+ const service = new ExecutorService({
32
+ executor: options.executor,
33
+ config: options.config,
34
+ });
35
+ // Parse JSON bodies
36
+ router.use(json());
37
+ /**
38
+ * POST / - Receive AWCP messages from Delegator
39
+ *
40
+ * The Delegator sends INVITE and START messages to this endpoint.
41
+ * The Delegator URL for sending responses is provided in the
42
+ * X-AWCP-Callback-URL header.
43
+ */
44
+ router.post('/', async (req, res) => {
45
+ try {
46
+ const message = req.body;
47
+ const delegatorUrl = req.headers['x-awcp-callback-url'];
48
+ if (!delegatorUrl && message.type !== 'ERROR') {
49
+ res.status(400).json({
50
+ error: 'Missing X-AWCP-Callback-URL header',
51
+ });
52
+ return;
53
+ }
54
+ // For START messages, respond immediately and handle async
55
+ if (message.type === 'START') {
56
+ res.json({ ok: true });
57
+ // Handle START asynchronously (mount + execute task)
58
+ service.handleMessage(message, delegatorUrl ?? '').catch((error) => {
59
+ console.error('[AWCP Executor] Error handling START:', error);
60
+ });
61
+ return;
62
+ }
63
+ // Other messages (INVITE, ERROR) are handled synchronously
64
+ const response = await service.handleMessage(message, delegatorUrl ?? '');
65
+ if (response) {
66
+ // INVITE returns ACCEPT/ERROR synchronously
67
+ res.json(response);
68
+ }
69
+ else {
70
+ res.json({ ok: true });
71
+ }
72
+ }
73
+ catch (error) {
74
+ console.error('[AWCP Executor] Error handling message:', error);
75
+ res.status(500).json({
76
+ error: error instanceof Error ? error.message : 'Internal error',
77
+ });
78
+ }
79
+ });
80
+ /**
81
+ * GET /status - Get service status
82
+ */
83
+ router.get('/status', (_req, res) => {
84
+ res.json(service.getStatus());
85
+ });
86
+ /**
87
+ * POST /cancel/:delegationId - Cancel a delegation
88
+ */
89
+ router.post('/cancel/:delegationId', async (req, res) => {
90
+ try {
91
+ const { delegationId } = req.params;
92
+ await service.cancelDelegation(delegationId);
93
+ res.json({ ok: true, cancelled: true });
94
+ }
95
+ catch (error) {
96
+ console.error('[AWCP Executor] Error cancelling delegation:', error);
97
+ res.status(error instanceof Error && error.message.includes('not found') ? 404 : 500).json({
98
+ error: error instanceof Error ? error.message : 'Internal error',
99
+ });
100
+ }
101
+ });
102
+ return router;
103
+ }
104
+ //# sourceMappingURL=awcp-executor-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awcp-executor-handler.js","sourceRoot":"","sources":["../../../src/server/express/awcp-executor-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Express integration for AWCP
3
+ */
4
+ export { executorHandler, type ExecutorHandlerOptions } from './awcp-executor-handler.js';
5
+ export { delegatorHandler, type DelegatorHandlerOptions, type DelegatorHandlerResult, } from './awcp-delegator-handler.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Express integration for AWCP
3
+ */
4
+ // Executor-side handler (for A2A agents accepting delegations)
5
+ export { executorHandler } from './awcp-executor-handler.js';
6
+ // Delegator-side handler (for agents creating delegations)
7
+ export { delegatorHandler, } from './awcp-delegator-handler.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAA+B,MAAM,4BAA4B,CAAC;AAE1F,2DAA2D;AAC3D,OAAO,EACL,gBAAgB,GAGjB,MAAM,6BAA6B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@awcp/sdk",
3
+ "version": "0.0.0-dev-202601300724",
4
+ "description": "AWCP SDK - Delegator and Executor Daemon implementations",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./delegator": {
14
+ "types": "./dist/delegator/index.d.ts",
15
+ "import": "./dist/delegator/index.js"
16
+ },
17
+ "./delegator/client": {
18
+ "types": "./dist/delegator/bin/client.d.ts",
19
+ "import": "./dist/delegator/bin/client.js"
20
+ },
21
+ "./executor": {
22
+ "types": "./dist/executor/index.d.ts",
23
+ "import": "./dist/executor/index.js"
24
+ },
25
+ "./server/express": {
26
+ "types": "./dist/server/express/index.d.ts",
27
+ "import": "./dist/server/express/index.js"
28
+ }
29
+ },
30
+ "bin": {
31
+ "delegator-daemon": "./dist/delegator/bin/daemon.js"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "README.md"
36
+ ],
37
+ "scripts": {
38
+ "build": "tsc -p tsconfig.build.json",
39
+ "clean": "rm -rf dist *.tsbuildinfo",
40
+ "test": "vitest run",
41
+ "test:watch": "vitest"
42
+ },
43
+ "dependencies": {
44
+ "@awcp/core": "0.0.0-dev-202601300724",
45
+ "@awcp/transport-sshfs": "0.0.0-dev-202601300724",
46
+ "@a2a-js/sdk": "^0.3.5"
47
+ },
48
+ "peerDependencies": {
49
+ "express": "^4.18.0"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "express": {
53
+ "optional": true
54
+ }
55
+ },
56
+ "keywords": [
57
+ "awcp",
58
+ "agent",
59
+ "sdk",
60
+ "delegator",
61
+ "executor"
62
+ ],
63
+ "license": "Apache-2.0",
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "https://github.com/anthropics/awcp.git",
67
+ "directory": "packages/sdk"
68
+ }
69
+ }