@awcp/sdk 0.0.1 → 0.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.
Files changed (61) hide show
  1. package/dist/delegator/bin/daemon.d.ts +0 -45
  2. package/dist/delegator/bin/daemon.d.ts.map +1 -1
  3. package/dist/delegator/bin/daemon.js +1 -85
  4. package/dist/delegator/bin/daemon.js.map +1 -1
  5. package/dist/delegator/config.d.ts +9 -71
  6. package/dist/delegator/config.d.ts.map +1 -1
  7. package/dist/delegator/config.js +1 -12
  8. package/dist/delegator/config.js.map +1 -1
  9. package/dist/delegator/executor-client.d.ts +6 -13
  10. package/dist/delegator/executor-client.d.ts.map +1 -1
  11. package/dist/delegator/executor-client.js +52 -14
  12. package/dist/delegator/executor-client.js.map +1 -1
  13. package/dist/delegator/export-manager.d.ts +27 -0
  14. package/dist/delegator/export-manager.d.ts.map +1 -0
  15. package/dist/delegator/export-manager.js +85 -0
  16. package/dist/delegator/export-manager.js.map +1 -0
  17. package/dist/delegator/index.d.ts +2 -2
  18. package/dist/delegator/index.d.ts.map +1 -1
  19. package/dist/delegator/index.js +3 -3
  20. package/dist/delegator/index.js.map +1 -1
  21. package/dist/delegator/service.d.ts +5 -69
  22. package/dist/delegator/service.d.ts.map +1 -1
  23. package/dist/delegator/service.js +96 -104
  24. package/dist/delegator/service.js.map +1 -1
  25. package/dist/executor/config.d.ts +11 -81
  26. package/dist/executor/config.d.ts.map +1 -1
  27. package/dist/executor/config.js +2 -9
  28. package/dist/executor/config.js.map +1 -1
  29. package/dist/executor/index.d.ts +2 -3
  30. package/dist/executor/index.d.ts.map +1 -1
  31. package/dist/executor/index.js +2 -3
  32. package/dist/executor/index.js.map +1 -1
  33. package/dist/executor/service.d.ts +8 -50
  34. package/dist/executor/service.d.ts.map +1 -1
  35. package/dist/executor/service.js +100 -136
  36. package/dist/executor/service.js.map +1 -1
  37. package/dist/executor/workspace-manager.d.ts +30 -0
  38. package/dist/executor/workspace-manager.d.ts.map +1 -0
  39. package/dist/executor/workspace-manager.js +75 -0
  40. package/dist/executor/workspace-manager.js.map +1 -0
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/server/express/awcp-delegator-handler.d.ts +0 -41
  46. package/dist/server/express/awcp-delegator-handler.d.ts.map +1 -1
  47. package/dist/server/express/awcp-delegator-handler.js +0 -49
  48. package/dist/server/express/awcp-delegator-handler.js.map +1 -1
  49. package/dist/server/express/awcp-executor-handler.d.ts +0 -27
  50. package/dist/server/express/awcp-executor-handler.d.ts.map +1 -1
  51. package/dist/server/express/awcp-executor-handler.js +23 -38
  52. package/dist/server/express/awcp-executor-handler.js.map +1 -1
  53. package/package.json +6 -3
  54. package/dist/executor/delegator-client.d.ts +0 -18
  55. package/dist/executor/delegator-client.d.ts.map +0 -1
  56. package/dist/executor/delegator-client.js +0 -37
  57. package/dist/executor/delegator-client.js.map +0 -1
  58. package/dist/executor/policy.d.ts +0 -55
  59. package/dist/executor/policy.d.ts.map +0 -1
  60. package/dist/executor/policy.js +0 -100
  61. package/dist/executor/policy.js.map +0 -1
@@ -3,13 +3,6 @@
3
3
  *
4
4
  * Runs the Delegator as an independent daemon process that can be accessed
5
5
  * by multiple clients (MCP, CLI, HTTP API, etc.)
6
- *
7
- * Usage:
8
- * npx delegator-daemon --port 3100 --config delegator.json
9
- *
10
- * Or programmatically:
11
- * import { startDelegatorDaemon } from '@awcp/sdk/delegator/bin/daemon';
12
- * await startDelegatorDaemon({ port: 3100, config: myConfig });
13
6
  */
14
7
  import { DelegatorService } from '../service.js';
15
8
  import type { DelegatorConfig } from '../config.js';
@@ -17,58 +10,20 @@ import type { DelegatorConfig } from '../config.js';
17
10
  * Daemon configuration
18
11
  */
19
12
  export interface DaemonConfig {
20
- /** Port to listen on (default: 3100) */
21
13
  port?: number;
22
- /** Host to bind to (default: 'localhost') */
23
14
  host?: string;
24
- /** Delegator configuration */
25
15
  delegator: DelegatorConfig;
26
16
  }
27
17
  /**
28
18
  * Running daemon instance
29
19
  */
30
20
  export interface DaemonInstance {
31
- /** Stop the daemon */
32
21
  stop: () => Promise<void>;
33
- /** Get the service instance */
34
22
  service: DelegatorService;
35
- /** Get the base URL */
36
23
  url: string;
37
24
  }
38
25
  /**
39
26
  * Start the Delegator Daemon
40
- *
41
- * This starts an HTTP server that provides:
42
- * - POST /delegate - Create a new delegation
43
- * - GET /delegations - List all delegations
44
- * - GET /delegation/:id - Get delegation status
45
- * - DELETE /delegation/:id - Cancel a delegation
46
- * - POST /callback - Receive messages from Executor
47
- *
48
- * @example
49
- * ```typescript
50
- * const daemon = await startDelegatorDaemon({
51
- * port: 3100,
52
- * delegator: {
53
- * export: { baseDir: '/tmp/awcp/exports' },
54
- * ssh: { host: 'localhost', user: 'awcp' },
55
- * },
56
- * });
57
- *
58
- * // Create delegation via HTTP
59
- * const response = await fetch('http://localhost:3100/delegate', {
60
- * method: 'POST',
61
- * headers: { 'Content-Type': 'application/json' },
62
- * body: JSON.stringify({
63
- * executorUrl: 'http://executor:4001/awcp',
64
- * localDir: '/path/to/project',
65
- * task: { description: 'Fix bug', prompt: '...' },
66
- * }),
67
- * });
68
- *
69
- * // Stop daemon
70
- * await daemon.stop();
71
- * ```
72
27
  */
73
28
  export declare function startDelegatorDaemon(config: DaemonConfig): Promise<DaemonInstance>;
74
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/delegator/bin/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,gBAAgB,EAAgC,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,+BAA+B;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAwJxF;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAmD1C"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/delegator/bin/daemon.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,gBAAgB,EAAgC,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAoHxF;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC1C"}
@@ -3,13 +3,6 @@
3
3
  *
4
4
  * Runs the Delegator as an independent daemon process that can be accessed
5
5
  * by multiple clients (MCP, CLI, HTTP API, etc.)
6
- *
7
- * Usage:
8
- * npx delegator-daemon --port 3100 --config delegator.json
9
- *
10
- * Or programmatically:
11
- * import { startDelegatorDaemon } from '@awcp/sdk/delegator/bin/daemon';
12
- * await startDelegatorDaemon({ port: 3100, config: myConfig });
13
6
  */
14
7
  import { createServer } from 'node:http';
15
8
  import express, { json } from 'express';
@@ -17,38 +10,6 @@ import { DelegatorService } from '../service.js';
17
10
  import { AwcpError } from '@awcp/core';
18
11
  /**
19
12
  * Start the Delegator Daemon
20
- *
21
- * This starts an HTTP server that provides:
22
- * - POST /delegate - Create a new delegation
23
- * - GET /delegations - List all delegations
24
- * - GET /delegation/:id - Get delegation status
25
- * - DELETE /delegation/:id - Cancel a delegation
26
- * - POST /callback - Receive messages from Executor
27
- *
28
- * @example
29
- * ```typescript
30
- * const daemon = await startDelegatorDaemon({
31
- * port: 3100,
32
- * delegator: {
33
- * export: { baseDir: '/tmp/awcp/exports' },
34
- * ssh: { host: 'localhost', user: 'awcp' },
35
- * },
36
- * });
37
- *
38
- * // Create delegation via HTTP
39
- * const response = await fetch('http://localhost:3100/delegate', {
40
- * method: 'POST',
41
- * headers: { 'Content-Type': 'application/json' },
42
- * body: JSON.stringify({
43
- * executorUrl: 'http://executor:4001/awcp',
44
- * localDir: '/path/to/project',
45
- * task: { description: 'Fix bug', prompt: '...' },
46
- * }),
47
- * });
48
- *
49
- * // Stop daemon
50
- * await daemon.stop();
51
- * ```
52
13
  */
53
14
  export async function startDelegatorDaemon(config) {
54
15
  const port = config.port ?? 3100;
@@ -56,29 +17,12 @@ export async function startDelegatorDaemon(config) {
56
17
  const baseUrl = `http://${host}:${port}`;
57
18
  const app = express();
58
19
  app.use(json());
59
- // Create service with callback URL pointing to this daemon
60
20
  const serviceOptions = {
61
21
  config: config.delegator,
62
- callbackUrl: `${baseUrl}/callback`,
63
22
  };
64
23
  const service = new DelegatorService(serviceOptions);
65
- // ============================================
66
- // API Routes
67
- // ============================================
68
24
  /**
69
25
  * POST /delegate - Create a new delegation
70
- *
71
- * Body:
72
- * {
73
- * executorUrl: string,
74
- * localDir: string,
75
- * task: { description: string, prompt: string },
76
- * ttlSeconds?: number,
77
- * accessMode?: 'ro' | 'rw'
78
- * }
79
- *
80
- * Response:
81
- * { delegationId: string }
82
26
  */
83
27
  app.post('/delegate', async (req, res) => {
84
28
  try {
@@ -145,30 +89,12 @@ export async function startDelegatorDaemon(config) {
145
89
  });
146
90
  }
147
91
  });
148
- /**
149
- * POST /callback - Receive messages from Executor
150
- *
151
- * This endpoint receives ACCEPT, DONE, and ERROR messages from Executors.
152
- */
153
- app.post('/callback', async (req, res) => {
154
- try {
155
- await service.handleMessage(req.body);
156
- res.json({ ok: true });
157
- }
158
- catch (error) {
159
- console.error('[Delegator Daemon] Error handling callback:', error);
160
- res.status(500).json({
161
- error: error instanceof Error ? error.message : 'Internal error',
162
- });
163
- }
164
- });
165
92
  /**
166
93
  * GET /health - Health check
167
94
  */
168
95
  app.get('/health', (_req, res) => {
169
96
  res.json({ status: 'ok' });
170
97
  });
171
- // Start server
172
98
  const server = createServer(app);
173
99
  await new Promise((resolve, reject) => {
174
100
  server.listen(port, host, () => {
@@ -197,7 +123,6 @@ export async function startDelegatorDaemon(config) {
197
123
  * CLI entry point
198
124
  */
199
125
  export async function main() {
200
- // Parse command line arguments
201
126
  const args = process.argv.slice(2);
202
127
  let port = 3100;
203
128
  let configPath;
@@ -212,25 +137,16 @@ export async function main() {
212
137
  }
213
138
  }
214
139
  if (!configPath) {
215
- console.error('Usage: delegator-daemon --port 3100 --config <config.json>');
216
- console.error('');
217
- console.error('Config file should contain:');
218
- console.error(JSON.stringify({
219
- export: { baseDir: '/tmp/awcp/exports' },
220
- ssh: { host: 'localhost', user: 'awcp' },
221
- }, null, 2));
140
+ console.error('Usage: delegator-daemon --port 3100 --config <config.ts>');
222
141
  process.exit(1);
223
142
  }
224
- // Load config
225
143
  const fs = await import('node:fs/promises');
226
144
  const configContent = await fs.readFile(configPath, 'utf-8');
227
145
  const delegatorConfig = JSON.parse(configContent);
228
- // Start daemon
229
146
  const daemon = await startDelegatorDaemon({
230
147
  port,
231
148
  delegator: delegatorConfig,
232
149
  });
233
- // Handle shutdown
234
150
  process.on('SIGINT', async () => {
235
151
  console.log('\n[Delegator Daemon] Shutting down...');
236
152
  await daemon.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/delegator/bin/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/delegator/bin/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,16 @@
1
1
  /**
2
2
  * AWCP Delegator Configuration
3
- *
4
- * Configuration for enabling AWCP Delegator functionality.
5
3
  */
6
- import type { Delegation, AccessMode } from '@awcp/core';
4
+ import type { Delegation, AccessMode, DelegatorTransportAdapter } from '@awcp/core';
7
5
  /**
8
6
  * Export view configuration
9
7
  */
10
8
  export interface ExportConfig {
11
- /** Base directory for export views, e.g., '/tmp/awcp/exports' */
9
+ /** Base directory for export views */
12
10
  baseDir: string;
13
11
  /** Strategy for creating export view (default: 'symlink') */
14
12
  strategy?: 'symlink' | 'bind' | 'worktree';
15
13
  }
16
- /**
17
- * SSH configuration for credential generation
18
- */
19
- export interface SshConfig {
20
- /** SSH server host that Executor will connect to */
21
- host: string;
22
- /** SSH server port (default: 22) */
23
- port?: number;
24
- /** SSH user for Executor connections */
25
- user: string;
26
- /** Directory to store temporary keys (default: '/tmp/awcp/keys') */
27
- keyDir?: string;
28
- }
29
14
  /**
30
15
  * Admission control configuration
31
16
  */
@@ -50,68 +35,30 @@ export interface DelegationDefaults {
50
35
  * Lifecycle hooks for Delegator events
51
36
  */
52
37
  export interface DelegatorHooks {
53
- /** Called when delegation is created and INVITE sent */
54
38
  onDelegationCreated?: (delegation: Delegation) => void;
55
- /** Called when Executor accepts and task starts */
56
39
  onDelegationStarted?: (delegation: Delegation) => void;
57
- /** Called when task completes successfully */
58
40
  onDelegationCompleted?: (delegation: Delegation) => void;
59
- /** Called on error or rejection */
60
41
  onError?: (delegationId: string, error: Error) => void;
61
42
  }
62
43
  /**
63
44
  * AWCP Delegator Configuration
64
- *
65
- * @example
66
- * ```typescript
67
- * const delegatorConfig: DelegatorConfig = {
68
- * export: {
69
- * baseDir: '/tmp/awcp/exports',
70
- * },
71
- * ssh: {
72
- * host: 'my-host.example.com',
73
- * port: 22,
74
- * user: 'awcp',
75
- * },
76
- * };
77
- * ```
78
45
  */
79
46
  export interface DelegatorConfig {
80
- /**
81
- * Export view configuration (required)
82
- *
83
- * Specifies how workspaces are exported for Executor access.
84
- */
47
+ /** Export view configuration */
85
48
  export: ExportConfig;
86
- /**
87
- * SSH configuration (required)
88
- *
89
- * Specifies SSH server details for SSHFS connections.
90
- */
91
- ssh: SshConfig;
92
- /**
93
- * Admission control (optional)
94
- *
95
- * Limits for workspace size to prevent network issues.
96
- */
49
+ /** Transport adapter for data plane */
50
+ transport: DelegatorTransportAdapter;
51
+ /** Admission control */
97
52
  admission?: AdmissionConfig;
98
- /**
99
- * Default values for delegations (optional)
100
- */
53
+ /** Default values for delegations */
101
54
  defaults?: DelegationDefaults;
102
- /**
103
- * Lifecycle hooks (optional)
104
- */
55
+ /** Lifecycle hooks */
105
56
  hooks?: DelegatorHooks;
106
57
  }
107
58
  /**
108
59
  * Default configuration values
109
60
  */
110
61
  export declare const DEFAULT_DELEGATOR_CONFIG: {
111
- readonly ssh: {
112
- readonly port: 22;
113
- readonly keyDir: "/tmp/awcp/keys";
114
- };
115
62
  readonly export: {
116
63
  readonly strategy: "symlink";
117
64
  };
@@ -125,15 +72,6 @@ export declare const DEFAULT_DELEGATOR_CONFIG: {
125
72
  readonly accessMode: AccessMode;
126
73
  };
127
74
  };
128
- /**
129
- * Resolved SSH config with all fields
130
- */
131
- export interface ResolvedSshConfig {
132
- host: string;
133
- port: number;
134
- user: string;
135
- keyDir: string;
136
- }
137
75
  /**
138
76
  * Resolved admission config with all fields
139
77
  */
@@ -156,7 +94,7 @@ export interface ResolvedDelegatorConfig {
156
94
  export: ExportConfig & {
157
95
  strategy: 'symlink' | 'bind' | 'worktree';
158
96
  };
159
- ssh: ResolvedSshConfig;
97
+ transport: DelegatorTransportAdapter;
160
98
  admission: ResolvedAdmissionConfig;
161
99
  defaults: ResolvedDelegationDefaults;
162
100
  hooks: DelegatorHooks;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,yBAAyB,CAAC;IACrC,wBAAwB;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,sBAAsB;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;6BAWb,UAAU;;CAExB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,YAAY,GAAG;QAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IACrE,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,EAAE,uBAAuB,CAAC;IACnC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,EAAE,cAAc,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,uBAAuB,CAkBvF"}
@@ -1,16 +1,10 @@
1
1
  /**
2
2
  * AWCP Delegator Configuration
3
- *
4
- * Configuration for enabling AWCP Delegator functionality.
5
3
  */
6
4
  /**
7
5
  * Default configuration values
8
6
  */
9
7
  export const DEFAULT_DELEGATOR_CONFIG = {
10
- ssh: {
11
- port: 22,
12
- keyDir: '/tmp/awcp/keys',
13
- },
14
8
  export: {
15
9
  strategy: 'symlink',
16
10
  },
@@ -33,12 +27,7 @@ export function resolveDelegatorConfig(config) {
33
27
  baseDir: config.export.baseDir,
34
28
  strategy: config.export.strategy ?? DEFAULT_DELEGATOR_CONFIG.export.strategy,
35
29
  },
36
- ssh: {
37
- host: config.ssh.host,
38
- port: config.ssh.port ?? DEFAULT_DELEGATOR_CONFIG.ssh.port,
39
- user: config.ssh.user,
40
- keyDir: config.ssh.keyDir ?? DEFAULT_DELEGATOR_CONFIG.ssh.keyDir,
41
- },
30
+ transport: config.transport,
42
31
  admission: {
43
32
  maxTotalBytes: config.admission?.maxTotalBytes ?? DEFAULT_DELEGATOR_CONFIG.admission.maxTotalBytes,
44
33
  maxFileCount: config.admission?.maxFileCount ?? DEFAULT_DELEGATOR_CONFIG.admission.maxFileCount,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkHH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,EAAE;QACH,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,gBAAgB;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAkB;KAC7B;IACD,SAAS,EAAE;QACT,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;QAC1C,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KAC9C;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAkB;KAC/B;CACO,CAAC;AAwCX;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC,QAAQ;SAC7E;QACD,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI;YAC1D,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM;SACjE;QACD,SAAS,EAAE;YACT,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,IAAI,wBAAwB,CAAC,SAAS,CAAC,aAAa;YAClG,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,wBAAwB,CAAC,SAAS,CAAC,YAAY;YAC/F,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,wBAAwB,CAAC,SAAS,CAAC,kBAAkB;SAClH;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,wBAAwB,CAAC,QAAQ,CAAC,UAAU;YACvF,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,wBAAwB,CAAC,QAAQ,CAAC,UAAU;SACxF;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/delegator/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8DH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE;QACN,QAAQ,EAAE,SAAkB;KAC7B;IACD,SAAS,EAAE;QACT,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;QAC1C,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KAC9C;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAkB;KAC/B;CACO,CAAC;AA8BX;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC,QAAQ;SAC7E;QACD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE;YACT,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,IAAI,wBAAwB,CAAC,SAAS,CAAC,aAAa;YAClG,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,wBAAwB,CAAC,SAAS,CAAC,YAAY;YAC/F,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,wBAAwB,CAAC,SAAS,CAAC,kBAAkB;SAClH;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,wBAAwB,CAAC,QAAQ,CAAC,UAAU;YACvF,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,wBAAwB,CAAC,QAAQ,CAAC,UAAU;SACxF;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC"}
@@ -1,20 +1,12 @@
1
1
  /**
2
2
  * HTTP Client for sending AWCP messages to Executor
3
3
  */
4
- import type { AwcpMessage, AcceptMessage, ErrorMessage } from '@awcp/core';
5
- /**
6
- * Response from Executor for INVITE message
7
- */
4
+ import type { AwcpMessage, AcceptMessage, ErrorMessage, TaskEvent } from '@awcp/core';
8
5
  export type InviteResponse = AcceptMessage | ErrorMessage;
9
- /**
10
- * Client for sending AWCP messages to Executor daemon
11
- */
12
6
  export declare class ExecutorClient {
13
7
  private timeout;
14
- private callbackUrl;
15
- constructor(options: {
8
+ constructor(options?: {
16
9
  timeout?: number;
17
- callbackUrl: string;
18
10
  });
19
11
  /**
20
12
  * Send INVITE to Executor and get ACCEPT/ERROR response
@@ -25,12 +17,13 @@ export declare class ExecutorClient {
25
17
  */
26
18
  sendStart(executorUrl: string, message: AwcpMessage): Promise<void>;
27
19
  /**
28
- * Request Executor to cancel a delegation (waits for unmount to complete)
20
+ * Subscribe to task events via SSE
29
21
  */
30
- sendCancel(executorUrl: string, delegationId: string): Promise<void>;
22
+ subscribeTask(executorUrl: string, delegationId: string): AsyncIterable<TaskEvent>;
31
23
  /**
32
- * Internal send method
24
+ * Request Executor to cancel a delegation
33
25
  */
26
+ sendCancel(executorUrl: string, delegationId: string): Promise<void>;
34
27
  private send;
35
28
  }
36
29
  //# sourceMappingURL=executor-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor-client.d.ts","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAK9D;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpF;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1E;;OAEG;YACW,IAAI;CA2BnB"}
1
+ {"version":3,"file":"executor-client.d.ts","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAI1C;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpF;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;IAoDzF;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB5D,IAAI;CAwBnB"}
@@ -1,15 +1,10 @@
1
1
  /**
2
2
  * HTTP Client for sending AWCP messages to Executor
3
3
  */
4
- /**
5
- * Client for sending AWCP messages to Executor daemon
6
- */
7
4
  export class ExecutorClient {
8
5
  timeout;
9
- callbackUrl;
10
6
  constructor(options) {
11
- this.timeout = options.timeout ?? 30000;
12
- this.callbackUrl = options.callbackUrl;
7
+ this.timeout = options?.timeout ?? 30000;
13
8
  }
14
9
  /**
15
10
  * Send INVITE to Executor and get ACCEPT/ERROR response
@@ -26,7 +21,56 @@ export class ExecutorClient {
26
21
  await this.send(executorUrl, message);
27
22
  }
28
23
  /**
29
- * Request Executor to cancel a delegation (waits for unmount to complete)
24
+ * Subscribe to task events via SSE
25
+ */
26
+ async *subscribeTask(executorUrl, delegationId) {
27
+ const baseUrl = executorUrl.replace(/\/$/, '').replace(/\/awcp$/, '');
28
+ const url = `${baseUrl}/awcp/tasks/${delegationId}/events`;
29
+ const response = await fetch(url, {
30
+ headers: { Accept: 'text/event-stream' },
31
+ });
32
+ if (!response.ok) {
33
+ throw new Error(`SSE connection failed: ${response.status} ${response.statusText}`);
34
+ }
35
+ if (!response.body) {
36
+ throw new Error('SSE connection failed: no response body');
37
+ }
38
+ const reader = response.body.getReader();
39
+ const decoder = new TextDecoder();
40
+ let buffer = '';
41
+ try {
42
+ while (true) {
43
+ const { done, value } = await reader.read();
44
+ if (done)
45
+ break;
46
+ buffer += decoder.decode(value, { stream: true });
47
+ const lines = buffer.split('\n');
48
+ buffer = lines.pop() ?? '';
49
+ for (const line of lines) {
50
+ if (line.startsWith('data: ')) {
51
+ const data = line.slice(6);
52
+ if (data) {
53
+ try {
54
+ const event = JSON.parse(data);
55
+ yield event;
56
+ if (event.type === 'done' || event.type === 'error') {
57
+ return;
58
+ }
59
+ }
60
+ catch {
61
+ // Ignore parse errors
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ finally {
69
+ reader.releaseLock();
70
+ }
71
+ }
72
+ /**
73
+ * Request Executor to cancel a delegation
30
74
  */
31
75
  async sendCancel(executorUrl, delegationId) {
32
76
  const cancelUrl = executorUrl.replace(/\/$/, '') + `/cancel/${delegationId}`;
@@ -47,19 +91,13 @@ export class ExecutorClient {
47
91
  clearTimeout(timeoutId);
48
92
  }
49
93
  }
50
- /**
51
- * Internal send method
52
- */
53
94
  async send(executorUrl, message) {
54
95
  const controller = new AbortController();
55
96
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
56
97
  try {
57
98
  const response = await fetch(executorUrl, {
58
99
  method: 'POST',
59
- headers: {
60
- 'Content-Type': 'application/json',
61
- 'X-AWCP-Callback-URL': this.callbackUrl,
62
- },
100
+ headers: { 'Content-Type': 'application/json' },
63
101
  body: JSON.stringify(message),
64
102
  signal: controller.signal,
65
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"executor-client.js","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-client.js","sourceRoot":"","sources":["../../src/delegator/executor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Export Manager - manages export directories on Delegator side
3
+ */
4
+ import type { ExportConfig } from './config.js';
5
+ /**
6
+ * Manages export directory allocation and cleanup.
7
+ */
8
+ export declare class ExportManager {
9
+ private baseDir;
10
+ private strategy;
11
+ private exports;
12
+ constructor(config?: ExportConfig);
13
+ /**
14
+ * Allocate an export path for a delegation.
15
+ * Returns path with trailing slash for SSHFS symlink compatibility.
16
+ */
17
+ allocate(delegationId: string, localDir: string): Promise<string>;
18
+ /** Release an export and remove the directory */
19
+ release(delegationId: string): Promise<void>;
20
+ /** Get the export path for a delegation */
21
+ getPath(delegationId: string): string | undefined;
22
+ /** Release all exports */
23
+ releaseAll(): Promise<void>;
24
+ /** Cleanup stale export directories from previous runs */
25
+ cleanupStale(): Promise<number>;
26
+ }
27
+ //# sourceMappingURL=export-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-manager.d.ts","sourceRoot":"","sources":["../../src/delegator/export-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAA6B;gBAEhC,MAAM,CAAC,EAAE,YAAY;IAKjC;;;OAGG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BvE,iDAAiD;IAC3C,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalD,2CAA2C;IAC3C,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjD,0BAA0B;IACpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,0DAA0D;IACpD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAetC"}