@awcp/core 0.0.8 → 0.0.10
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/errors/index.d.ts +19 -3
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +27 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/state-machine/index.d.ts +2 -24
- package/dist/state-machine/index.d.ts.map +1 -1
- package/dist/state-machine/index.js +1 -22
- package/dist/state-machine/index.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/listener.d.ts +22 -0
- package/dist/types/listener.d.ts.map +1 -0
- package/dist/types/listener.js +7 -0
- package/dist/types/listener.js.map +1 -0
- package/dist/types/messages.d.ts +37 -114
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +0 -3
- package/dist/types/messages.js.map +1 -1
- package/dist/types/service.d.ts +59 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/service.js +5 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/transport.d.ts +16 -63
- package/dist/types/transport.d.ts.map +1 -1
- package/dist/types/transport.js +1 -4
- package/dist/types/transport.js.map +1 -1
- package/package.json +1 -1
package/dist/errors/index.d.ts
CHANGED
|
@@ -14,18 +14,20 @@ export declare const ErrorCodes: {
|
|
|
14
14
|
readonly SETUP_FAILED: "SETUP_FAILED";
|
|
15
15
|
readonly TASK_FAILED: "TASK_FAILED";
|
|
16
16
|
readonly CANCELLED: "CANCELLED";
|
|
17
|
+
readonly TRANSPORT_ERROR: "TRANSPORT_ERROR";
|
|
18
|
+
readonly CHECKSUM_MISMATCH: "CHECKSUM_MISMATCH";
|
|
17
19
|
};
|
|
18
20
|
export type ErrorCode = typeof ErrorCodes[keyof typeof ErrorCodes];
|
|
19
21
|
/**
|
|
20
22
|
* Base class for AWCP errors
|
|
21
23
|
*/
|
|
22
24
|
export declare class AwcpError extends Error {
|
|
23
|
-
readonly code:
|
|
25
|
+
readonly code: string;
|
|
24
26
|
readonly hint?: string | undefined;
|
|
25
27
|
readonly delegationId?: string | undefined;
|
|
26
|
-
constructor(code:
|
|
28
|
+
constructor(code: string, message: string, hint?: string | undefined, delegationId?: string | undefined);
|
|
27
29
|
toErrorMessage(): {
|
|
28
|
-
code:
|
|
30
|
+
code: string;
|
|
29
31
|
message: string;
|
|
30
32
|
hint: string | undefined;
|
|
31
33
|
};
|
|
@@ -100,4 +102,18 @@ export declare class LeaseExpiredError extends AwcpError {
|
|
|
100
102
|
export declare class AuthFailedError extends AwcpError {
|
|
101
103
|
constructor(reason?: string, hint?: string, delegationId?: string);
|
|
102
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Error: Delegation cancelled
|
|
107
|
+
*/
|
|
108
|
+
export declare class CancelledError extends AwcpError {
|
|
109
|
+
constructor(reason?: string, hint?: string, delegationId?: string);
|
|
110
|
+
}
|
|
111
|
+
export declare class TransportError extends AwcpError {
|
|
112
|
+
constructor(reason: string, hint?: string, delegationId?: string);
|
|
113
|
+
}
|
|
114
|
+
export declare class ChecksumMismatchError extends AwcpError {
|
|
115
|
+
readonly expected: string;
|
|
116
|
+
readonly actual: string;
|
|
117
|
+
constructor(expected: string, actual: string, delegationId?: string);
|
|
118
|
+
}
|
|
103
119
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
|
package/dist/errors/index.js
CHANGED
|
@@ -14,6 +14,8 @@ export const ErrorCodes = {
|
|
|
14
14
|
SETUP_FAILED: 'SETUP_FAILED',
|
|
15
15
|
TASK_FAILED: 'TASK_FAILED',
|
|
16
16
|
CANCELLED: 'CANCELLED',
|
|
17
|
+
TRANSPORT_ERROR: 'TRANSPORT_ERROR',
|
|
18
|
+
CHECKSUM_MISMATCH: 'CHECKSUM_MISMATCH',
|
|
17
19
|
};
|
|
18
20
|
/**
|
|
19
21
|
* Base class for AWCP errors
|
|
@@ -133,4 +135,29 @@ export class AuthFailedError extends AwcpError {
|
|
|
133
135
|
this.name = 'AuthFailedError';
|
|
134
136
|
}
|
|
135
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Error: Delegation cancelled
|
|
140
|
+
*/
|
|
141
|
+
export class CancelledError extends AwcpError {
|
|
142
|
+
constructor(reason = 'Delegation cancelled', hint, delegationId) {
|
|
143
|
+
super(ErrorCodes.CANCELLED, reason, hint, delegationId);
|
|
144
|
+
this.name = 'CancelledError';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
export class TransportError extends AwcpError {
|
|
148
|
+
constructor(reason, hint, delegationId) {
|
|
149
|
+
super(ErrorCodes.TRANSPORT_ERROR, reason, hint, delegationId);
|
|
150
|
+
this.name = 'TransportError';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
export class ChecksumMismatchError extends AwcpError {
|
|
154
|
+
expected;
|
|
155
|
+
actual;
|
|
156
|
+
constructor(expected, actual, delegationId) {
|
|
157
|
+
super(ErrorCodes.CHECKSUM_MISMATCH, `Checksum mismatch: expected ${expected}, got ${actual}`, 'The downloaded file may be corrupted, try again', delegationId);
|
|
158
|
+
this.expected = expected;
|
|
159
|
+
this.actual = actual;
|
|
160
|
+
this.name = 'ChecksumMismatchError';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
136
163
|
//# sourceMappingURL=index.js.map
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import type { DelegationState, AwcpMessage, Delegation, InviteMessage, AcceptMessage, StartMessage, DoneMessage, ErrorMessage } from '../types/messages.js';
|
|
2
|
-
/**
|
|
3
|
-
* Check if a state is terminal (no further transitions possible)
|
|
4
|
-
*/
|
|
1
|
+
import type { DelegationState, AwcpMessage, Delegation, EnvironmentSpec, InviteMessage, AcceptMessage, StartMessage, DoneMessage, ErrorMessage } from '../types/messages.js';
|
|
5
2
|
export declare function isTerminalState(state: DelegationState): boolean;
|
|
6
|
-
/**
|
|
7
|
-
* Check if a state transition is valid
|
|
8
|
-
*/
|
|
9
3
|
export declare function isValidTransition(from: DelegationState, to: DelegationState): boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Events that can trigger state transitions
|
|
12
|
-
*/
|
|
13
4
|
export type DelegationEvent = {
|
|
14
5
|
type: 'SEND_INVITE';
|
|
15
6
|
message: InviteMessage;
|
|
@@ -35,38 +26,25 @@ export type DelegationEvent = {
|
|
|
35
26
|
} | {
|
|
36
27
|
type: 'EXPIRE';
|
|
37
28
|
};
|
|
38
|
-
/**
|
|
39
|
-
* Result of a state transition
|
|
40
|
-
*/
|
|
41
29
|
export interface TransitionResult {
|
|
42
30
|
success: boolean;
|
|
43
31
|
newState: DelegationState;
|
|
44
32
|
error?: string;
|
|
45
33
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Delegation state machine
|
|
48
|
-
*/
|
|
49
34
|
export declare class DelegationStateMachine {
|
|
50
35
|
private state;
|
|
51
36
|
constructor(initialState?: DelegationState);
|
|
52
37
|
getState(): DelegationState;
|
|
53
38
|
isTerminal(): boolean;
|
|
54
39
|
transition(event: DelegationEvent): TransitionResult;
|
|
55
|
-
forceState(state: DelegationState): void;
|
|
56
40
|
private getTargetState;
|
|
57
41
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Create a new delegation record
|
|
60
|
-
*/
|
|
61
42
|
export declare function createDelegation(params: {
|
|
62
43
|
id: string;
|
|
63
44
|
peerUrl: string;
|
|
64
|
-
|
|
45
|
+
environment: EnvironmentSpec;
|
|
65
46
|
task: Delegation['task'];
|
|
66
47
|
leaseConfig: Delegation['leaseConfig'];
|
|
67
48
|
}): Delegation;
|
|
68
|
-
/**
|
|
69
|
-
* Update delegation with message data
|
|
70
|
-
*/
|
|
71
49
|
export declare function applyMessageToDelegation(delegation: Delegation, message: AwcpMessage): Delegation;
|
|
72
50
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,sBAAsB,CAAC;AAc9B,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,GAClB,OAAO,CAET;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAA8B;gBAE/B,YAAY,CAAC,EAAE,eAAe;IAM1C,QAAQ,IAAI,eAAe;IAI3B,UAAU,IAAI,OAAO;IAIrB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IA0BpD,OAAO,CAAC,cAAc;CAiCvB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;CACxC,GAAG,UAAU,CAYb;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,GACnB,UAAU,CA+BZ"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Valid state transitions for delegation lifecycle
|
|
3
|
-
*/
|
|
4
1
|
const STATE_TRANSITIONS = {
|
|
5
2
|
created: ['invited', 'error', 'cancelled'],
|
|
6
3
|
invited: ['accepted', 'error', 'cancelled', 'expired'],
|
|
@@ -12,21 +9,12 @@ const STATE_TRANSITIONS = {
|
|
|
12
9
|
cancelled: [],
|
|
13
10
|
expired: [],
|
|
14
11
|
};
|
|
15
|
-
/**
|
|
16
|
-
* Check if a state is terminal (no further transitions possible)
|
|
17
|
-
*/
|
|
18
12
|
export function isTerminalState(state) {
|
|
19
13
|
return STATE_TRANSITIONS[state].length === 0;
|
|
20
14
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Check if a state transition is valid
|
|
23
|
-
*/
|
|
24
15
|
export function isValidTransition(from, to) {
|
|
25
16
|
return STATE_TRANSITIONS[from].includes(to);
|
|
26
17
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Delegation state machine
|
|
29
|
-
*/
|
|
30
18
|
export class DelegationStateMachine {
|
|
31
19
|
state = 'created';
|
|
32
20
|
constructor(initialState) {
|
|
@@ -62,9 +50,6 @@ export class DelegationStateMachine {
|
|
|
62
50
|
newState: this.state,
|
|
63
51
|
};
|
|
64
52
|
}
|
|
65
|
-
forceState(state) {
|
|
66
|
-
this.state = state;
|
|
67
|
-
}
|
|
68
53
|
getTargetState(event) {
|
|
69
54
|
switch (event.type) {
|
|
70
55
|
case 'SEND_INVITE':
|
|
@@ -91,25 +76,19 @@ export class DelegationStateMachine {
|
|
|
91
76
|
}
|
|
92
77
|
}
|
|
93
78
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Create a new delegation record
|
|
96
|
-
*/
|
|
97
79
|
export function createDelegation(params) {
|
|
98
80
|
const now = new Date().toISOString();
|
|
99
81
|
return {
|
|
100
82
|
id: params.id,
|
|
101
83
|
state: 'created',
|
|
102
84
|
peerUrl: params.peerUrl,
|
|
103
|
-
|
|
85
|
+
environment: params.environment,
|
|
104
86
|
task: params.task,
|
|
105
87
|
leaseConfig: params.leaseConfig,
|
|
106
88
|
createdAt: now,
|
|
107
89
|
updatedAt: now,
|
|
108
90
|
};
|
|
109
91
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Update delegation with message data
|
|
112
|
-
*/
|
|
113
92
|
export function applyMessageToDelegation(delegation, message) {
|
|
114
93
|
const updated = { ...delegation, updatedAt: new Date().toISOString() };
|
|
115
94
|
switch (message.type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Listener Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Connection layer abstraction for receiving requests.
|
|
5
|
+
*/
|
|
6
|
+
import type { ExecutorRequestHandler } from './service.js';
|
|
7
|
+
export interface ListenerInfo {
|
|
8
|
+
type: string;
|
|
9
|
+
publicUrl: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ListenerCallbacks {
|
|
12
|
+
onConnected?: (info: ListenerInfo) => void;
|
|
13
|
+
onDisconnected?: (error?: Error) => void;
|
|
14
|
+
onError?: (error: Error) => void;
|
|
15
|
+
}
|
|
16
|
+
/** Listener adapter for receiving Delegator requests */
|
|
17
|
+
export interface ListenerAdapter {
|
|
18
|
+
readonly type: string;
|
|
19
|
+
start(handler: ExecutorRequestHandler, callbacks?: ListenerCallbacks): Promise<ListenerInfo | null>;
|
|
20
|
+
stop(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=listener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/types/listener.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACpG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/types/listener.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/types/messages.d.ts
CHANGED
|
@@ -1,238 +1,161 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AWCP Protocol Version
|
|
3
|
-
*/
|
|
4
1
|
export declare const PROTOCOL_VERSION: "1";
|
|
5
|
-
/**
|
|
6
|
-
* Message Types for AWCP Protocol
|
|
7
|
-
*/
|
|
8
2
|
export type MessageType = 'INVITE' | 'ACCEPT' | 'START' | 'DONE' | 'ERROR';
|
|
9
|
-
/**
|
|
10
|
-
* Access modes for workspace delegation
|
|
11
|
-
*/
|
|
12
3
|
export type AccessMode = 'ro' | 'rw';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
export type ResourceType = 'fs';
|
|
5
|
+
export interface ResourceSpec {
|
|
6
|
+
name: string;
|
|
7
|
+
type: ResourceType;
|
|
8
|
+
source: string;
|
|
9
|
+
mode: AccessMode;
|
|
10
|
+
/** TODO: Implement file filtering in admission control and transport */
|
|
11
|
+
include?: string[];
|
|
12
|
+
/** TODO: Implement file filtering in admission control and transport */
|
|
13
|
+
exclude?: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface EnvironmentSpec {
|
|
16
|
+
resources: ResourceSpec[];
|
|
17
|
+
}
|
|
16
18
|
export type AuthType = 'api_key' | 'bearer' | 'oauth2' | 'custom';
|
|
17
|
-
/**
|
|
18
|
-
* Authentication credential in INVITE message
|
|
19
|
-
*/
|
|
20
19
|
export interface AuthCredential {
|
|
21
20
|
type: AuthType;
|
|
22
21
|
credential: string;
|
|
22
|
+
/** TODO: Implement auth metadata handling */
|
|
23
23
|
metadata?: Record<string, string>;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
* Transport types for data plane
|
|
27
|
-
*/
|
|
28
|
-
export type TransportType = 'sshfs' | 'archive';
|
|
29
|
-
/**
|
|
30
|
-
* Delegation lifecycle states
|
|
31
|
-
*/
|
|
25
|
+
export type TransportType = 'sshfs' | 'archive' | 'storage';
|
|
32
26
|
export type DelegationState = 'created' | 'invited' | 'accepted' | 'started' | 'running' | 'completed' | 'error' | 'cancelled' | 'expired';
|
|
33
|
-
/**
|
|
34
|
-
* Task description for delegation
|
|
35
|
-
*/
|
|
36
27
|
export interface TaskSpec {
|
|
37
28
|
description: string;
|
|
38
29
|
prompt: string;
|
|
39
30
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Lease configuration
|
|
42
|
-
*/
|
|
43
31
|
export interface LeaseConfig {
|
|
44
32
|
ttlSeconds: number;
|
|
45
33
|
accessMode: AccessMode;
|
|
46
34
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Active lease information (after START)
|
|
49
|
-
*/
|
|
50
35
|
export interface ActiveLease {
|
|
51
36
|
expiresAt: string;
|
|
52
37
|
accessMode: AccessMode;
|
|
53
38
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Workspace specification in INVITE
|
|
56
|
-
*/
|
|
57
|
-
export interface WorkspaceSpec {
|
|
58
|
-
exportName: string;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Requirements for Executor to check
|
|
62
|
-
*/
|
|
63
39
|
export interface Requirements {
|
|
64
40
|
transport?: TransportType;
|
|
65
41
|
}
|
|
66
|
-
/**
|
|
67
|
-
* Executor work directory specification in ACCEPT
|
|
68
|
-
*/
|
|
69
42
|
export interface ExecutorWorkDir {
|
|
70
43
|
path: string;
|
|
71
44
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Sandbox profile - capability declaration by Executor
|
|
74
|
-
*/
|
|
45
|
+
/** TODO: Implement sandbox enforcement in executor */
|
|
75
46
|
export interface SandboxProfile {
|
|
76
47
|
cwdOnly?: boolean;
|
|
77
48
|
allowNetwork?: boolean;
|
|
78
49
|
allowExec?: boolean;
|
|
79
50
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Executor constraints in ACCEPT
|
|
82
|
-
*/
|
|
83
51
|
export interface ExecutorConstraints {
|
|
84
52
|
acceptedAccessMode?: AccessMode;
|
|
53
|
+
/** TODO: Implement TTL validation in delegator before START */
|
|
85
54
|
maxTtlSeconds?: number;
|
|
86
55
|
sandboxProfile?: SandboxProfile;
|
|
87
56
|
}
|
|
88
|
-
/**
|
|
89
|
-
* SSH endpoint for SSHFS transport
|
|
90
|
-
*/
|
|
91
57
|
export interface SshEndpoint {
|
|
92
58
|
host: string;
|
|
93
59
|
port: number;
|
|
94
60
|
user: string;
|
|
95
61
|
}
|
|
96
|
-
/**
|
|
97
|
-
* SSH credential for certificate-based authentication
|
|
98
|
-
*/
|
|
99
62
|
export interface SshCredential {
|
|
100
63
|
privateKey: string;
|
|
101
64
|
certificate: string;
|
|
102
65
|
}
|
|
103
|
-
|
|
104
|
-
* Work directory information in START message
|
|
105
|
-
*/
|
|
106
|
-
export interface WorkDirInfo {
|
|
107
|
-
transport: TransportType;
|
|
108
|
-
[key: string]: unknown;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* SSHFS-specific work directory information
|
|
112
|
-
*/
|
|
113
|
-
export interface SshfsWorkDirInfo extends WorkDirInfo {
|
|
66
|
+
export interface SshfsWorkDirInfo {
|
|
114
67
|
transport: 'sshfs';
|
|
115
68
|
endpoint: SshEndpoint;
|
|
116
69
|
exportLocator: string;
|
|
117
70
|
credential: SshCredential;
|
|
118
71
|
options?: Record<string, string>;
|
|
119
72
|
}
|
|
120
|
-
|
|
121
|
-
* Archive-specific work directory information
|
|
122
|
-
*/
|
|
123
|
-
export interface ArchiveWorkDirInfo extends WorkDirInfo {
|
|
73
|
+
export interface ArchiveWorkDirInfo {
|
|
124
74
|
transport: 'archive';
|
|
125
75
|
workspaceBase64: string;
|
|
126
76
|
checksum: string;
|
|
127
77
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
78
|
+
export interface StorageWorkDirInfo {
|
|
79
|
+
transport: 'storage';
|
|
80
|
+
downloadUrl: string;
|
|
81
|
+
uploadUrl: string;
|
|
82
|
+
checksum: string;
|
|
83
|
+
expiresAt: string;
|
|
84
|
+
headers?: Record<string, string>;
|
|
85
|
+
}
|
|
86
|
+
export type WorkDirInfo = SshfsWorkDirInfo | ArchiveWorkDirInfo | StorageWorkDirInfo;
|
|
131
87
|
export interface BaseMessage {
|
|
132
88
|
version: typeof PROTOCOL_VERSION;
|
|
133
89
|
type: MessageType;
|
|
134
90
|
delegationId: string;
|
|
135
91
|
}
|
|
136
|
-
/**
|
|
137
|
-
* INVITE message: Delegator → Executor
|
|
138
|
-
*/
|
|
92
|
+
/** INVITE message: Delegator → Executor */
|
|
139
93
|
export interface InviteMessage extends BaseMessage {
|
|
140
94
|
type: 'INVITE';
|
|
141
95
|
task: TaskSpec;
|
|
142
96
|
lease: LeaseConfig;
|
|
143
|
-
|
|
97
|
+
environment: EnvironmentSpec;
|
|
144
98
|
requirements?: Requirements;
|
|
145
99
|
auth?: AuthCredential;
|
|
146
100
|
}
|
|
147
|
-
/**
|
|
148
|
-
* ACCEPT message: Executor → Delegator
|
|
149
|
-
*/
|
|
101
|
+
/** ACCEPT message: Executor → Delegator */
|
|
150
102
|
export interface AcceptMessage extends BaseMessage {
|
|
151
103
|
type: 'ACCEPT';
|
|
152
104
|
executorWorkDir: ExecutorWorkDir;
|
|
153
105
|
executorConstraints?: ExecutorConstraints;
|
|
154
106
|
}
|
|
155
|
-
/**
|
|
156
|
-
* START message: Delegator → Executor
|
|
157
|
-
*/
|
|
107
|
+
/** START message: Delegator → Executor */
|
|
158
108
|
export interface StartMessage extends BaseMessage {
|
|
159
109
|
type: 'START';
|
|
160
110
|
lease: ActiveLease;
|
|
161
111
|
workDir: WorkDirInfo;
|
|
162
112
|
}
|
|
163
|
-
/**
|
|
164
|
-
* DONE message: Executor → Delegator (via SSE)
|
|
165
|
-
*/
|
|
113
|
+
/** DONE message: Executor → Delegator (via SSE) */
|
|
166
114
|
export interface DoneMessage extends BaseMessage {
|
|
167
115
|
type: 'DONE';
|
|
168
116
|
finalSummary: string;
|
|
169
117
|
highlights?: string[];
|
|
170
118
|
notes?: string;
|
|
171
119
|
}
|
|
172
|
-
/**
|
|
173
|
-
* ERROR message: Either direction
|
|
174
|
-
*/
|
|
120
|
+
/** ERROR message: Either direction */
|
|
175
121
|
export interface ErrorMessage extends BaseMessage {
|
|
176
122
|
type: 'ERROR';
|
|
177
123
|
code: string;
|
|
178
124
|
message: string;
|
|
179
125
|
hint?: string;
|
|
180
126
|
}
|
|
181
|
-
/**
|
|
182
|
-
* Union type for all AWCP messages
|
|
183
|
-
*/
|
|
184
127
|
export type AwcpMessage = InviteMessage | AcceptMessage | StartMessage | DoneMessage | ErrorMessage;
|
|
185
|
-
/**
|
|
186
|
-
* Task event types for SSE streaming
|
|
187
|
-
*/
|
|
188
128
|
export type TaskEventType = 'status' | 'done' | 'error';
|
|
189
|
-
/**
|
|
190
|
-
* Base task event structure
|
|
191
|
-
*/
|
|
192
129
|
export interface BaseTaskEvent {
|
|
193
130
|
delegationId: string;
|
|
194
131
|
type: TaskEventType;
|
|
195
132
|
timestamp: string;
|
|
196
133
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Status update event
|
|
199
|
-
*/
|
|
200
134
|
export interface TaskStatusEvent extends BaseTaskEvent {
|
|
201
135
|
type: 'status';
|
|
202
136
|
status: 'running' | 'progress';
|
|
203
137
|
message?: string;
|
|
138
|
+
/** TODO: Implement progress tracking in executor */
|
|
204
139
|
progress?: number;
|
|
205
140
|
}
|
|
206
|
-
/**
|
|
207
|
-
* Task completion event
|
|
208
|
-
*/
|
|
209
141
|
export interface TaskDoneEvent extends BaseTaskEvent {
|
|
210
142
|
type: 'done';
|
|
211
143
|
summary: string;
|
|
212
144
|
highlights?: string[];
|
|
213
145
|
resultBase64?: string;
|
|
214
146
|
}
|
|
215
|
-
/**
|
|
216
|
-
* Task error event
|
|
217
|
-
*/
|
|
218
147
|
export interface TaskErrorEvent extends BaseTaskEvent {
|
|
219
148
|
type: 'error';
|
|
220
149
|
code: string;
|
|
221
150
|
message: string;
|
|
222
151
|
hint?: string;
|
|
223
152
|
}
|
|
224
|
-
/**
|
|
225
|
-
* Union type for all task events
|
|
226
|
-
*/
|
|
227
153
|
export type TaskEvent = TaskStatusEvent | TaskDoneEvent | TaskErrorEvent;
|
|
228
|
-
/**
|
|
229
|
-
* Delegation record - full state of a delegation
|
|
230
|
-
*/
|
|
231
154
|
export interface Delegation {
|
|
232
155
|
id: string;
|
|
233
156
|
state: DelegationState;
|
|
234
157
|
peerUrl: string;
|
|
235
|
-
|
|
158
|
+
environment: EnvironmentSpec;
|
|
236
159
|
exportPath?: string;
|
|
237
160
|
task: TaskSpec;
|
|
238
161
|
leaseConfig: LeaseConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/types/messages.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Interfaces
|
|
3
|
+
*/
|
|
4
|
+
import type { AwcpMessage, TaskEvent, EnvironmentSpec, TaskSpec, AccessMode, AuthCredential, Delegation } from './messages.js';
|
|
5
|
+
export interface TaskExecutionContext {
|
|
6
|
+
delegationId: string;
|
|
7
|
+
workPath: string;
|
|
8
|
+
task: TaskSpec;
|
|
9
|
+
environment: EnvironmentSpec;
|
|
10
|
+
}
|
|
11
|
+
export interface TaskExecutionResult {
|
|
12
|
+
summary: string;
|
|
13
|
+
highlights?: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface TaskExecutor {
|
|
16
|
+
execute(context: TaskExecutionContext): Promise<TaskExecutionResult>;
|
|
17
|
+
}
|
|
18
|
+
export interface DelegationStatusInfo {
|
|
19
|
+
id: string;
|
|
20
|
+
workPath: string;
|
|
21
|
+
startedAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ExecutorServiceStatus {
|
|
24
|
+
pendingInvitations: number;
|
|
25
|
+
activeDelegations: number;
|
|
26
|
+
delegations: DelegationStatusInfo[];
|
|
27
|
+
}
|
|
28
|
+
export interface ExecutorRequestHandler {
|
|
29
|
+
handleMessage(message: AwcpMessage): Promise<AwcpMessage | null>;
|
|
30
|
+
subscribeTask(delegationId: string, callback: (event: TaskEvent) => void): () => void;
|
|
31
|
+
cancelDelegation(delegationId: string): Promise<void>;
|
|
32
|
+
getStatus(): ExecutorServiceStatus;
|
|
33
|
+
}
|
|
34
|
+
export interface DelegateParams {
|
|
35
|
+
executorUrl: string;
|
|
36
|
+
environment: EnvironmentSpec;
|
|
37
|
+
task: TaskSpec;
|
|
38
|
+
ttlSeconds?: number;
|
|
39
|
+
accessMode?: AccessMode;
|
|
40
|
+
auth?: AuthCredential;
|
|
41
|
+
}
|
|
42
|
+
export interface DelegatorDelegationInfo {
|
|
43
|
+
id: string;
|
|
44
|
+
state: string;
|
|
45
|
+
executorUrl: string;
|
|
46
|
+
environment: EnvironmentSpec;
|
|
47
|
+
createdAt: string;
|
|
48
|
+
}
|
|
49
|
+
export interface DelegatorServiceStatus {
|
|
50
|
+
activeDelegations: number;
|
|
51
|
+
delegations: DelegatorDelegationInfo[];
|
|
52
|
+
}
|
|
53
|
+
export interface DelegatorRequestHandler {
|
|
54
|
+
delegate(params: DelegateParams): Promise<string>;
|
|
55
|
+
cancel(delegationId: string): Promise<void>;
|
|
56
|
+
getDelegation(delegationId: string): Delegation | undefined;
|
|
57
|
+
getStatus(): DelegatorServiceStatus;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/types/service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAID,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACtF,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,IAAI,qBAAqB,CAAC;CACpC;AAID,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,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,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,SAAS,IAAI,sBAAsB,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/types/service.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,102 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Transport Adapter
|
|
3
|
-
*
|
|
4
|
-
* Abstract interface that all transport implementations must implement.
|
|
5
|
-
* This enables pluggable transports (sshfs, archive, webdav, etc.)
|
|
2
|
+
* Transport Adapter Interfaces
|
|
6
3
|
*/
|
|
7
4
|
import type { TransportType, WorkDirInfo } from './messages.js';
|
|
8
|
-
/**
|
|
9
|
-
* Parameters for preparing a transport on Delegator side
|
|
10
|
-
*/
|
|
11
5
|
export interface TransportPrepareParams {
|
|
12
6
|
delegationId: string;
|
|
13
7
|
exportPath: string;
|
|
14
8
|
ttlSeconds: number;
|
|
15
9
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Result from transport preparation
|
|
18
|
-
*/
|
|
19
10
|
export interface TransportPrepareResult {
|
|
20
11
|
workDirInfo: WorkDirInfo;
|
|
21
12
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Parameters for setting up workspace on Executor side
|
|
24
|
-
*/
|
|
25
13
|
export interface TransportSetupParams {
|
|
26
14
|
delegationId: string;
|
|
27
15
|
workDirInfo: WorkDirInfo;
|
|
28
16
|
workDir: string;
|
|
29
17
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Parameters for tearing down workspace on Executor side
|
|
32
|
-
*/
|
|
33
18
|
export interface TransportTeardownParams {
|
|
34
19
|
delegationId: string;
|
|
35
20
|
workDir: string;
|
|
36
21
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Result from transport teardown (optional result data)
|
|
39
|
-
*/
|
|
40
22
|
export interface TransportTeardownResult {
|
|
41
23
|
resultBase64?: string;
|
|
42
24
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
25
|
+
export interface ResourceMapping {
|
|
26
|
+
name: string;
|
|
27
|
+
source: string;
|
|
28
|
+
mode: 'ro' | 'rw';
|
|
29
|
+
}
|
|
30
|
+
export interface TransportApplyResultParams {
|
|
31
|
+
delegationId: string;
|
|
32
|
+
resultData: string;
|
|
33
|
+
resources: ResourceMapping[];
|
|
34
|
+
}
|
|
46
35
|
export interface DependencyCheckResult {
|
|
47
36
|
available: boolean;
|
|
48
37
|
hint?: string;
|
|
49
38
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Transport Adapter Interface
|
|
52
|
-
*
|
|
53
|
-
* All transport implementations (sshfs, archive, etc.) must implement this interface.
|
|
54
|
-
*
|
|
55
|
-
* Lifecycle:
|
|
56
|
-
* - Delegator: prepare() -> [task runs] -> cleanup()
|
|
57
|
-
* - Executor: checkDependency() -> setup() -> [task runs] -> teardown()
|
|
58
|
-
*/
|
|
59
|
-
export interface TransportAdapter {
|
|
60
|
-
readonly type: TransportType;
|
|
61
|
-
/**
|
|
62
|
-
* Prepare the transport for a delegation.
|
|
63
|
-
* Called after ACCEPT received, before sending START.
|
|
64
|
-
*/
|
|
65
|
-
prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
|
|
66
|
-
/**
|
|
67
|
-
* Clean up resources for a delegation.
|
|
68
|
-
* Called after task completion or on expiration.
|
|
69
|
-
*/
|
|
70
|
-
cleanup(delegationId: string): Promise<void>;
|
|
71
|
-
/**
|
|
72
|
-
* Check if transport dependencies are available.
|
|
73
|
-
*/
|
|
74
|
-
checkDependency(): Promise<DependencyCheckResult>;
|
|
75
|
-
/**
|
|
76
|
-
* Set up the workspace for task execution.
|
|
77
|
-
* Called after START received.
|
|
78
|
-
*/
|
|
79
|
-
setup(params: TransportSetupParams): Promise<string>;
|
|
80
|
-
/**
|
|
81
|
-
* Tear down the workspace after task completion.
|
|
82
|
-
*/
|
|
83
|
-
teardown(params: TransportTeardownParams): Promise<TransportTeardownResult>;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Transport adapter for Delegator side only
|
|
87
|
-
*/
|
|
39
|
+
/** Transport adapter for Delegator side */
|
|
88
40
|
export interface DelegatorTransportAdapter {
|
|
89
41
|
readonly type: TransportType;
|
|
90
42
|
prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
|
|
43
|
+
applyResult?(params: TransportApplyResultParams): Promise<void>;
|
|
91
44
|
cleanup(delegationId: string): Promise<void>;
|
|
92
45
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Transport adapter for Executor side only
|
|
95
|
-
*/
|
|
46
|
+
/** Transport adapter for Executor side */
|
|
96
47
|
export interface ExecutorTransportAdapter {
|
|
97
48
|
readonly type: TransportType;
|
|
98
49
|
checkDependency(): Promise<DependencyCheckResult>;
|
|
99
50
|
setup(params: TransportSetupParams): Promise<string>;
|
|
100
51
|
teardown(params: TransportTeardownParams): Promise<TransportTeardownResult>;
|
|
101
52
|
}
|
|
53
|
+
/** Full transport adapter implementing both sides */
|
|
54
|
+
export type TransportAdapter = DelegatorTransportAdapter & ExecutorTransportAdapter;
|
|
102
55
|
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzE,WAAW,CAAC,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,0CAA0C;AAC1C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClD,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7E;AAED,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,wBAAwB,CAAC"}
|
package/dist/types/transport.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Transport Adapter
|
|
3
|
-
*
|
|
4
|
-
* Abstract interface that all transport implementations must implement.
|
|
5
|
-
* This enables pluggable transports (sshfs, archive, webdav, etc.)
|
|
2
|
+
* Transport Adapter Interfaces
|
|
6
3
|
*/
|
|
7
4
|
export {};
|
|
8
5
|
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|