@awcp/sdk 0.0.0-dev-202601300724 → 0.0.0-dev-202601301521
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/delegator/bin/daemon.d.ts +9 -1
- package/dist/delegator/bin/daemon.d.ts.map +1 -1
- package/dist/delegator/bin/daemon.js +18 -7
- package/dist/delegator/bin/daemon.js.map +1 -1
- package/dist/delegator/config.d.ts +9 -71
- package/dist/delegator/config.d.ts.map +1 -1
- package/dist/delegator/config.js +1 -12
- package/dist/delegator/config.js.map +1 -1
- package/dist/delegator/export-manager.d.ts +27 -0
- package/dist/delegator/export-manager.d.ts.map +1 -0
- package/dist/delegator/export-manager.js +85 -0
- package/dist/delegator/export-manager.js.map +1 -0
- package/dist/delegator/index.d.ts +2 -2
- package/dist/delegator/index.d.ts.map +1 -1
- package/dist/delegator/index.js +3 -3
- package/dist/delegator/index.js.map +1 -1
- package/dist/delegator/service.d.ts +1 -69
- package/dist/delegator/service.d.ts.map +1 -1
- package/dist/delegator/service.js +15 -100
- package/dist/delegator/service.js.map +1 -1
- package/dist/executor/config.d.ts +11 -81
- package/dist/executor/config.d.ts.map +1 -1
- package/dist/executor/config.js +2 -9
- package/dist/executor/config.js.map +1 -1
- package/dist/executor/index.d.ts +2 -2
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +2 -2
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/service.d.ts +3 -49
- package/dist/executor/service.d.ts.map +1 -1
- package/dist/executor/service.js +33 -112
- package/dist/executor/service.js.map +1 -1
- package/dist/executor/workspace-manager.d.ts +30 -0
- package/dist/executor/workspace-manager.d.ts.map +1 -0
- package/dist/executor/workspace-manager.js +75 -0
- package/dist/executor/workspace-manager.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -3
- package/dist/executor/policy.d.ts +0 -55
- package/dist/executor/policy.d.ts.map +0 -1
- package/dist/executor/policy.js +0 -100
- package/dist/executor/policy.js.map +0 -1
|
@@ -47,11 +47,19 @@ export interface DaemonInstance {
|
|
|
47
47
|
*
|
|
48
48
|
* @example
|
|
49
49
|
* ```typescript
|
|
50
|
+
* import { SshfsTransport } from '@awcp/transport-sshfs';
|
|
51
|
+
*
|
|
50
52
|
* const daemon = await startDelegatorDaemon({
|
|
51
53
|
* port: 3100,
|
|
52
54
|
* delegator: {
|
|
53
55
|
* export: { baseDir: '/tmp/awcp/exports' },
|
|
54
|
-
*
|
|
56
|
+
* transport: new SshfsTransport({
|
|
57
|
+
* delegator: {
|
|
58
|
+
* host: 'localhost',
|
|
59
|
+
* user: process.env.USER,
|
|
60
|
+
* caKeyPath: '~/.awcp/ca',
|
|
61
|
+
* },
|
|
62
|
+
* }),
|
|
55
63
|
* },
|
|
56
64
|
* });
|
|
57
65
|
*
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAwJxF;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsD1C"}
|
|
@@ -27,11 +27,19 @@ import { AwcpError } from '@awcp/core';
|
|
|
27
27
|
*
|
|
28
28
|
* @example
|
|
29
29
|
* ```typescript
|
|
30
|
+
* import { SshfsTransport } from '@awcp/transport-sshfs';
|
|
31
|
+
*
|
|
30
32
|
* const daemon = await startDelegatorDaemon({
|
|
31
33
|
* port: 3100,
|
|
32
34
|
* delegator: {
|
|
33
35
|
* export: { baseDir: '/tmp/awcp/exports' },
|
|
34
|
-
*
|
|
36
|
+
* transport: new SshfsTransport({
|
|
37
|
+
* delegator: {
|
|
38
|
+
* host: 'localhost',
|
|
39
|
+
* user: process.env.USER,
|
|
40
|
+
* caKeyPath: '~/.awcp/ca',
|
|
41
|
+
* },
|
|
42
|
+
* }),
|
|
35
43
|
* },
|
|
36
44
|
* });
|
|
37
45
|
*
|
|
@@ -212,13 +220,16 @@ export async function main() {
|
|
|
212
220
|
}
|
|
213
221
|
}
|
|
214
222
|
if (!configPath) {
|
|
215
|
-
console.error('Usage: delegator-daemon --port 3100 --config <config.
|
|
223
|
+
console.error('Usage: delegator-daemon --port 3100 --config <config.ts>');
|
|
224
|
+
console.error('');
|
|
225
|
+
console.error('Config file should export a DelegatorConfig:');
|
|
226
|
+
console.error('');
|
|
227
|
+
console.error(" import { SshfsTransport } from '@awcp/transport-sshfs';");
|
|
216
228
|
console.error('');
|
|
217
|
-
console.error('
|
|
218
|
-
console.error(
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}, null, 2));
|
|
229
|
+
console.error(' export default {');
|
|
230
|
+
console.error(" export: { baseDir: '/tmp/awcp/exports' },");
|
|
231
|
+
console.error(' transport: new SshfsTransport({ delegator: { ... } }),');
|
|
232
|
+
console.error(' };');
|
|
222
233
|
process.exit(1);
|
|
223
234
|
}
|
|
224
235
|
// Load config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/delegator/bin/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAgC,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0BvC
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA
|
|
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"}
|
package/dist/delegator/config.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Manager - manages export directories on Delegator side
|
|
3
|
+
*/
|
|
4
|
+
import { mkdir, rm, symlink, readdir } from 'node:fs/promises';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
const DEFAULT_EXPORT_BASE = '/tmp/awcp/exports';
|
|
7
|
+
/**
|
|
8
|
+
* Manages export directory allocation and cleanup.
|
|
9
|
+
*/
|
|
10
|
+
export class ExportManager {
|
|
11
|
+
baseDir;
|
|
12
|
+
strategy;
|
|
13
|
+
exports = new Map();
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.baseDir = config?.baseDir ?? DEFAULT_EXPORT_BASE;
|
|
16
|
+
this.strategy = config?.strategy ?? 'symlink';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Allocate an export path for a delegation.
|
|
20
|
+
* Returns path with trailing slash for SSHFS symlink compatibility.
|
|
21
|
+
*/
|
|
22
|
+
async allocate(delegationId, localDir) {
|
|
23
|
+
const exportPath = join(this.baseDir, delegationId, 'workspace');
|
|
24
|
+
await mkdir(join(this.baseDir, delegationId), { recursive: true });
|
|
25
|
+
switch (this.strategy) {
|
|
26
|
+
case 'symlink':
|
|
27
|
+
await symlink(localDir, exportPath);
|
|
28
|
+
break;
|
|
29
|
+
case 'bind':
|
|
30
|
+
// Not implemented, fallback to symlink
|
|
31
|
+
await symlink(localDir, exportPath);
|
|
32
|
+
break;
|
|
33
|
+
case 'worktree':
|
|
34
|
+
// Not implemented, fallback to symlink
|
|
35
|
+
await symlink(localDir, exportPath);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
this.exports.set(delegationId, exportPath);
|
|
39
|
+
// Trailing slash for SSHFS symlink compatibility
|
|
40
|
+
// See: https://github.com/libfuse/sshfs/issues/312
|
|
41
|
+
return exportPath + '/';
|
|
42
|
+
}
|
|
43
|
+
/** Release an export and remove the directory */
|
|
44
|
+
async release(delegationId) {
|
|
45
|
+
const exportPath = this.exports.get(delegationId);
|
|
46
|
+
if (!exportPath)
|
|
47
|
+
return;
|
|
48
|
+
try {
|
|
49
|
+
const delegationDir = join(this.baseDir, delegationId);
|
|
50
|
+
await rm(delegationDir, { recursive: true, force: true });
|
|
51
|
+
this.exports.delete(delegationId);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error(`Failed to release export for ${delegationId}:`, error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Get the export path for a delegation */
|
|
58
|
+
getPath(delegationId) {
|
|
59
|
+
return this.exports.get(delegationId);
|
|
60
|
+
}
|
|
61
|
+
/** Release all exports */
|
|
62
|
+
async releaseAll() {
|
|
63
|
+
for (const delegationId of this.exports.keys()) {
|
|
64
|
+
await this.release(delegationId);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Cleanup stale export directories from previous runs */
|
|
68
|
+
async cleanupStale() {
|
|
69
|
+
let cleaned = 0;
|
|
70
|
+
try {
|
|
71
|
+
const entries = await readdir(this.baseDir, { withFileTypes: true });
|
|
72
|
+
for (const entry of entries) {
|
|
73
|
+
if (entry.isDirectory() && !this.exports.has(entry.name)) {
|
|
74
|
+
await rm(join(this.baseDir, entry.name), { recursive: true, force: true });
|
|
75
|
+
cleaned++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Base directory may not exist yet
|
|
81
|
+
}
|
|
82
|
+
return cleaned;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=export-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-manager.js","sourceRoot":"","sources":["../../src/delegator/export-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { DelegatorService, type DelegatorServiceOptions, type DelegateParams, type DelegatorServiceStatus, } from './service.js';
|
|
2
|
-
export { type DelegatorConfig, type ExportConfig, type
|
|
2
|
+
export { type DelegatorConfig, type ExportConfig, type AdmissionConfig as DelegatorAdmissionConfig, type DelegationDefaults, type DelegatorHooks, type ResolvedDelegatorConfig, DEFAULT_DELEGATOR_CONFIG, resolveDelegatorConfig, } from './config.js';
|
|
3
3
|
export { startDelegatorDaemon, type DaemonConfig, type DaemonInstance, } from './bin/daemon.js';
|
|
4
4
|
export { DelegatorDaemonClient, type DelegateRequest, type DelegateResponse, type ListDelegationsResponse, } from './bin/client.js';
|
|
5
5
|
export { AdmissionController, type AdmissionConfig, type AdmissionResult, type WorkspaceStats } from './admission.js';
|
|
6
|
-
export {
|
|
6
|
+
export { ExportManager } from './export-manager.js';
|
|
7
7
|
export { ExecutorClient, type InviteResponse } from './executor-client.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,IAAI,wBAAwB,EAChD,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/delegator/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// High-level API
|
|
2
2
|
export { DelegatorService, } from './service.js';
|
|
3
3
|
export { DEFAULT_DELEGATOR_CONFIG, resolveDelegatorConfig, } from './config.js';
|
|
4
|
-
// Daemon mode
|
|
4
|
+
// Daemon mode
|
|
5
5
|
export { startDelegatorDaemon, } from './bin/daemon.js';
|
|
6
6
|
export { DelegatorDaemonClient, } from './bin/client.js';
|
|
7
|
-
// Utilities
|
|
7
|
+
// Utilities
|
|
8
8
|
export { AdmissionController } from './admission.js';
|
|
9
|
-
export {
|
|
9
|
+
export { ExportManager } from './export-manager.js';
|
|
10
10
|
export { ExecutorClient } from './executor-client.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EACL,gBAAgB,GAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAOL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,cAAc;AACd,OAAO,EACL,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAItB,MAAM,iBAAiB,CAAC;AAEzB,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAAmE,MAAM,gBAAgB,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC"}
|
|
@@ -2,33 +2,17 @@
|
|
|
2
2
|
* AWCP Delegator Service
|
|
3
3
|
*
|
|
4
4
|
* Manages the AWCP delegation protocol on the Delegator side.
|
|
5
|
-
* Integrates credential management and export view creation.
|
|
6
5
|
*/
|
|
7
6
|
import { type Delegation, type TaskSpec, type AcceptMessage, type DoneMessage, type ErrorMessage, type AwcpMessage, type AccessMode, type AuthCredential } from '@awcp/core';
|
|
8
7
|
import { type DelegatorConfig } from './config.js';
|
|
9
|
-
/**
|
|
10
|
-
* Parameters for creating a delegation
|
|
11
|
-
*/
|
|
12
8
|
export interface DelegateParams {
|
|
13
|
-
/** URL of the Executor's AWCP endpoint */
|
|
14
9
|
executorUrl: string;
|
|
15
|
-
/** Local directory to delegate */
|
|
16
10
|
localDir: string;
|
|
17
|
-
/** Task specification */
|
|
18
11
|
task: TaskSpec;
|
|
19
|
-
/** TTL in seconds (uses default if not specified) */
|
|
20
12
|
ttlSeconds?: number;
|
|
21
|
-
/** Access mode (uses default if not specified) */
|
|
22
13
|
accessMode?: AccessMode;
|
|
23
|
-
/**
|
|
24
|
-
* Optional authentication for paid/restricted Executor services.
|
|
25
|
-
* This will be included in the INVITE message.
|
|
26
|
-
*/
|
|
27
14
|
auth?: AuthCredential;
|
|
28
15
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Service status
|
|
31
|
-
*/
|
|
32
16
|
export interface DelegatorServiceStatus {
|
|
33
17
|
activeDelegations: number;
|
|
34
18
|
delegations: Array<{
|
|
@@ -39,82 +23,30 @@ export interface DelegatorServiceStatus {
|
|
|
39
23
|
createdAt: string;
|
|
40
24
|
}>;
|
|
41
25
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Options for creating the service
|
|
44
|
-
*/
|
|
45
26
|
export interface DelegatorServiceOptions {
|
|
46
|
-
/** AWCP Delegator configuration */
|
|
47
27
|
config: DelegatorConfig;
|
|
48
|
-
/** Callback URL where Executor will send ACCEPT/DONE/ERROR */
|
|
49
28
|
callbackUrl: string;
|
|
50
29
|
}
|
|
51
|
-
/**
|
|
52
|
-
* AWCP Delegator Service
|
|
53
|
-
*
|
|
54
|
-
* Manages the AWCP delegation lifecycle from the Delegator side:
|
|
55
|
-
* 1. Creates export view for workspace
|
|
56
|
-
* 2. Sends INVITE to Executor
|
|
57
|
-
* 3. Receives ACCEPT, generates credentials
|
|
58
|
-
* 4. Sends START with credentials
|
|
59
|
-
* 5. Receives DONE/ERROR, cleans up
|
|
60
|
-
*/
|
|
61
30
|
export declare class DelegatorService {
|
|
62
31
|
private config;
|
|
63
32
|
private callbackUrl;
|
|
33
|
+
private transport;
|
|
64
34
|
private admissionController;
|
|
65
35
|
private exportManager;
|
|
66
|
-
private credentialManager;
|
|
67
36
|
private executorClient;
|
|
68
37
|
private delegations;
|
|
69
38
|
private stateMachines;
|
|
70
39
|
private executorUrls;
|
|
71
40
|
constructor(options: DelegatorServiceOptions);
|
|
72
|
-
/**
|
|
73
|
-
* Create a new delegation
|
|
74
|
-
*
|
|
75
|
-
* This sends an INVITE to the Executor and waits for ACCEPT.
|
|
76
|
-
* After ACCEPT, it automatically sends START with credentials.
|
|
77
|
-
*
|
|
78
|
-
* @returns The delegation ID
|
|
79
|
-
*/
|
|
80
41
|
delegate(params: DelegateParams): Promise<string>;
|
|
81
|
-
/**
|
|
82
|
-
* Handle ACCEPT message from Executor
|
|
83
|
-
*
|
|
84
|
-
* This is called internally after INVITE, or externally via the Express handler.
|
|
85
|
-
*/
|
|
86
42
|
handleAccept(message: AcceptMessage): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Handle DONE message from Executor
|
|
89
|
-
*/
|
|
90
43
|
handleDone(message: DoneMessage): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* Handle ERROR message from Executor
|
|
93
|
-
*/
|
|
94
44
|
handleError(message: ErrorMessage): Promise<void>;
|
|
95
|
-
/**
|
|
96
|
-
* Handle incoming message from Executor
|
|
97
|
-
*/
|
|
98
45
|
handleMessage(message: AwcpMessage): Promise<void>;
|
|
99
|
-
/**
|
|
100
|
-
* Cancel a delegation
|
|
101
|
-
*/
|
|
102
46
|
cancel(delegationId: string): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Get delegation status
|
|
105
|
-
*/
|
|
106
47
|
getDelegation(delegationId: string): Delegation | undefined;
|
|
107
|
-
/**
|
|
108
|
-
* Wait for delegation to complete
|
|
109
|
-
*/
|
|
110
48
|
waitForCompletion(delegationId: string, timeoutMs?: number): Promise<Delegation>;
|
|
111
|
-
/**
|
|
112
|
-
* Get service status
|
|
113
|
-
*/
|
|
114
49
|
getStatus(): DelegatorServiceStatus;
|
|
115
|
-
/**
|
|
116
|
-
* Cleanup resources for a delegation
|
|
117
|
-
*/
|
|
118
50
|
private cleanup;
|
|
119
51
|
}
|
|
120
52
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/delegator/service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/delegator/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EAGb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EAQpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,aAAa,CAAC;AAKzG,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,YAAY,CAA6B;gBAErC,OAAO,EAAE,uBAAuB;IAqBtC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA0EjD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDnD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/C,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBjD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B7F,SAAS,IAAI,sBAAsB;YAarB,OAAO;CAKtB"}
|