@awcp/core 0.0.0-dev-202601301521 → 0.0.0-dev-202601310829
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 +7 -19
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +12 -24
- package/dist/errors/index.js.map +1 -1
- package/dist/state-machine/index.d.ts +1 -15
- package/dist/state-machine/index.d.ts.map +1 -1
- package/dist/state-machine/index.js +6 -21
- package/dist/state-machine/index.js.map +1 -1
- package/dist/types/messages.d.ts +59 -64
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/transport.d.ts +14 -52
- package/dist/types/transport.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/errors/index.d.ts
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AWCP Error Codes
|
|
3
|
-
*
|
|
4
|
-
* Standard error codes defined in AWCP v1 specification
|
|
5
3
|
*/
|
|
6
4
|
export declare const ErrorCodes: {
|
|
7
|
-
/** Remote declined collaboration */
|
|
8
5
|
readonly DECLINED: "DECLINED";
|
|
9
|
-
/** Missing dependency (e.g., sshfs not installed) */
|
|
10
6
|
readonly DEP_MISSING: "DEP_MISSING";
|
|
11
|
-
/** Workspace too large for remote mount collaboration */
|
|
12
7
|
readonly WORKSPACE_TOO_LARGE: "WORKSPACE_TOO_LARGE";
|
|
13
|
-
|
|
14
|
-
readonly MOUNTPOINT_DENIED: "MOUNTPOINT_DENIED";
|
|
15
|
-
/** Lease expired before START */
|
|
8
|
+
readonly WORKDIR_DENIED: "WORKDIR_DENIED";
|
|
16
9
|
readonly START_EXPIRED: "START_EXPIRED";
|
|
17
|
-
/** Lease expired during execution */
|
|
18
10
|
readonly EXPIRED: "EXPIRED";
|
|
19
|
-
/** Authentication failed */
|
|
20
11
|
readonly AUTH_FAILED: "AUTH_FAILED";
|
|
21
|
-
|
|
22
|
-
readonly MOUNT_FAILED: "MOUNT_FAILED";
|
|
23
|
-
/** Task execution failed */
|
|
12
|
+
readonly SETUP_FAILED: "SETUP_FAILED";
|
|
24
13
|
readonly TASK_FAILED: "TASK_FAILED";
|
|
25
|
-
/** Cancelled by user or system */
|
|
26
14
|
readonly CANCELLED: "CANCELLED";
|
|
27
15
|
};
|
|
28
16
|
export type ErrorCode = typeof ErrorCodes[keyof typeof ErrorCodes];
|
|
@@ -69,15 +57,15 @@ export declare class WorkspaceTooLargeError extends AwcpError {
|
|
|
69
57
|
}, hint?: string, delegationId?: string);
|
|
70
58
|
}
|
|
71
59
|
/**
|
|
72
|
-
* Error:
|
|
60
|
+
* Error: Work directory denied by policy
|
|
73
61
|
*/
|
|
74
|
-
export declare class
|
|
75
|
-
constructor(
|
|
62
|
+
export declare class WorkDirDeniedError extends AwcpError {
|
|
63
|
+
constructor(workDir: string, hint?: string, delegationId?: string);
|
|
76
64
|
}
|
|
77
65
|
/**
|
|
78
|
-
* Error:
|
|
66
|
+
* Error: Transport setup failed
|
|
79
67
|
*/
|
|
80
|
-
export declare class
|
|
68
|
+
export declare class SetupFailedError extends AwcpError {
|
|
81
69
|
constructor(reason: string, hint?: string, delegationId?: string);
|
|
82
70
|
}
|
|
83
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;CAWb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEnE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAEhB,IAAI,EAAE,SAAS;aAEf,IAAI,CAAC,EAAE,MAAM;aACb,YAAY,CAAC,EAAE,MAAM;gBAHrB,IAAI,EAAE,SAAS,EAC/B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,YAAY,CAAC,EAAE,MAAM,YAAA;IAMvC,cAAc;;;;;CAOf;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAIlE;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;aAEjC,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM,EAClC,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM;CAUxB;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;aAEjC,KAAK,EAAE;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;gBAJe,KAAK,EAAE;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EACD,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM;CAUxB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CASlE;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CASjE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CASjE;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,WAAW,GAAE,OAAe,EAAE,YAAY,CAAC,EAAE,MAAM;CAWhE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;gBAE1C,MAAM,GAAE,MAAgC,EACxC,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM;CAUxB"}
|
package/dist/errors/index.js
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AWCP Error Codes
|
|
3
|
-
*
|
|
4
|
-
* Standard error codes defined in AWCP v1 specification
|
|
5
3
|
*/
|
|
6
4
|
export const ErrorCodes = {
|
|
7
|
-
/** Remote declined collaboration */
|
|
8
5
|
DECLINED: 'DECLINED',
|
|
9
|
-
/** Missing dependency (e.g., sshfs not installed) */
|
|
10
6
|
DEP_MISSING: 'DEP_MISSING',
|
|
11
|
-
/** Workspace too large for remote mount collaboration */
|
|
12
7
|
WORKSPACE_TOO_LARGE: 'WORKSPACE_TOO_LARGE',
|
|
13
|
-
|
|
14
|
-
MOUNTPOINT_DENIED: 'MOUNTPOINT_DENIED',
|
|
15
|
-
/** Lease expired before START */
|
|
8
|
+
WORKDIR_DENIED: 'WORKDIR_DENIED',
|
|
16
9
|
START_EXPIRED: 'START_EXPIRED',
|
|
17
|
-
/** Lease expired during execution */
|
|
18
10
|
EXPIRED: 'EXPIRED',
|
|
19
|
-
/** Authentication failed */
|
|
20
11
|
AUTH_FAILED: 'AUTH_FAILED',
|
|
21
|
-
|
|
22
|
-
MOUNT_FAILED: 'MOUNT_FAILED',
|
|
23
|
-
/** Task execution failed */
|
|
12
|
+
SETUP_FAILED: 'SETUP_FAILED',
|
|
24
13
|
TASK_FAILED: 'TASK_FAILED',
|
|
25
|
-
/** Cancelled by user or system */
|
|
26
14
|
CANCELLED: 'CANCELLED',
|
|
27
15
|
};
|
|
28
16
|
/**
|
|
@@ -73,27 +61,27 @@ export class DependencyMissingError extends AwcpError {
|
|
|
73
61
|
export class WorkspaceTooLargeError extends AwcpError {
|
|
74
62
|
stats;
|
|
75
63
|
constructor(stats, hint, delegationId) {
|
|
76
|
-
super(ErrorCodes.WORKSPACE_TOO_LARGE, 'Workspace exceeds size limits
|
|
64
|
+
super(ErrorCodes.WORKSPACE_TOO_LARGE, 'Workspace exceeds size limits', hint ?? 'Consider selecting a smaller subdirectory or excluding large files', delegationId);
|
|
77
65
|
this.stats = stats;
|
|
78
66
|
this.name = 'WorkspaceTooLargeError';
|
|
79
67
|
}
|
|
80
68
|
}
|
|
81
69
|
/**
|
|
82
|
-
* Error:
|
|
70
|
+
* Error: Work directory denied by policy
|
|
83
71
|
*/
|
|
84
|
-
export class
|
|
85
|
-
constructor(
|
|
86
|
-
super(ErrorCodes.
|
|
87
|
-
this.name = '
|
|
72
|
+
export class WorkDirDeniedError extends AwcpError {
|
|
73
|
+
constructor(workDir, hint, delegationId) {
|
|
74
|
+
super(ErrorCodes.WORKDIR_DENIED, `Work directory denied by policy: ${workDir}`, hint, delegationId);
|
|
75
|
+
this.name = 'WorkDirDeniedError';
|
|
88
76
|
}
|
|
89
77
|
}
|
|
90
78
|
/**
|
|
91
|
-
* Error:
|
|
79
|
+
* Error: Transport setup failed
|
|
92
80
|
*/
|
|
93
|
-
export class
|
|
81
|
+
export class SetupFailedError extends AwcpError {
|
|
94
82
|
constructor(reason, hint, delegationId) {
|
|
95
|
-
super(ErrorCodes.
|
|
96
|
-
this.name = '
|
|
83
|
+
super(ErrorCodes.SETUP_FAILED, `Setup failed: ${reason}`, hint, delegationId);
|
|
84
|
+
this.name = 'SetupFailedError';
|
|
97
85
|
}
|
|
98
86
|
}
|
|
99
87
|
/**
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA
|
|
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,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;CACd,CAAC;AAIX;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEhB;IAEA;IACA;IAJlB,YACkB,IAAe,EAC/B,OAAe,EACC,IAAa,EACb,YAAqB;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAW;QAEf,SAAI,GAAJ,IAAI,CAAS;QACb,iBAAY,GAAZ,YAAY,CAAS;QAGrC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,OAAe,EAAE,IAAa,EAAE,YAAqB;QAC/D,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAEjC;IADlB,YACkB,UAAkB,EAClC,IAAa,EACb,YAAqB;QAErB,KAAK,CACH,UAAU,CAAC,WAAW,EACtB,gCAAgC,UAAU,EAAE,EAC5C,IAAI,IAAI,kBAAkB,UAAU,gBAAgB,EACpD,YAAY,CACb,CAAC;QATc,eAAU,GAAV,UAAU,CAAQ;QAUlC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAEjC;IADlB,YACkB,KAIf,EACD,IAAa,EACb,YAAqB;QAErB,KAAK,CACH,UAAU,CAAC,mBAAmB,EAC9B,+BAA+B,EAC/B,IAAI,IAAI,oEAAoE,EAC5E,YAAY,CACb,CAAC;QAbc,UAAK,GAAL,KAAK,CAIpB;QAUD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,OAAe,EAAE,IAAa,EAAE,YAAqB;QAC/D,KAAK,CACH,UAAU,CAAC,cAAc,EACzB,oCAAoC,OAAO,EAAE,EAC7C,IAAI,EACJ,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,MAAc,EAAE,IAAa,EAAE,YAAqB;QAC9D,KAAK,CACH,UAAU,CAAC,YAAY,EACvB,iBAAiB,MAAM,EAAE,EACzB,IAAI,EACJ,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,MAAc,EAAE,IAAa,EAAE,YAAqB;QAC9D,KAAK,CACH,UAAU,CAAC,WAAW,EACtB,gBAAgB,MAAM,EAAE,EACxB,IAAI,EACJ,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,cAAuB,KAAK,EAAE,YAAqB;QAC7D,KAAK,CACH,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAC3D,WAAW;YACT,CAAC,CAAC,iDAAiD;YACnD,CAAC,CAAC,qCAAqC,EACzC,SAAS,EACT,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YACE,SAAiB,uBAAuB,EACxC,IAAa,EACb,YAAqB;QAErB,KAAK,CACH,UAAU,CAAC,WAAW,EACtB,MAAM,EACN,IAAI,IAAI,mCAAmC,EAC3C,YAAY,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -20,7 +20,7 @@ export type DelegationEvent = {
|
|
|
20
20
|
type: 'SEND_START';
|
|
21
21
|
message: StartMessage;
|
|
22
22
|
} | {
|
|
23
|
-
type: '
|
|
23
|
+
type: 'SETUP_COMPLETE';
|
|
24
24
|
} | {
|
|
25
25
|
type: 'RECEIVE_DONE';
|
|
26
26
|
message: DoneMessage;
|
|
@@ -45,27 +45,13 @@ export interface TransitionResult {
|
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Delegation state machine
|
|
48
|
-
*
|
|
49
|
-
* Manages state transitions for a single delegation
|
|
50
48
|
*/
|
|
51
49
|
export declare class DelegationStateMachine {
|
|
52
50
|
private state;
|
|
53
51
|
constructor(initialState?: DelegationState);
|
|
54
|
-
/**
|
|
55
|
-
* Get current state
|
|
56
|
-
*/
|
|
57
52
|
getState(): DelegationState;
|
|
58
|
-
/**
|
|
59
|
-
* Check if delegation is in a terminal state
|
|
60
|
-
*/
|
|
61
53
|
isTerminal(): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Process an event and transition state
|
|
64
|
-
*/
|
|
65
54
|
transition(event: DelegationEvent): TransitionResult;
|
|
66
|
-
/**
|
|
67
|
-
* Force state (use with caution, mainly for restoration)
|
|
68
|
-
*/
|
|
69
55
|
forceState(state: DelegationState): void;
|
|
70
56
|
private getTargetState;
|
|
71
57
|
}
|
|
@@ -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;AAiB9B;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,GAClB,OAAO,CAET;AAED;;GAEG;AACH,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;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED
|
|
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;AAiB9B;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,GAClB,OAAO,CAET;AAED;;GAEG;AACH,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;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,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,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAIxC,OAAO,CAAC,cAAc;CAiCvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;CACxC,GAAG,UAAU,CAYb;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,GACnB,UAAU,CA+BZ"}
|
|
@@ -7,10 +7,10 @@ const STATE_TRANSITIONS = {
|
|
|
7
7
|
accepted: ['started', 'error', 'cancelled', 'expired'],
|
|
8
8
|
started: ['running', 'error', 'cancelled'],
|
|
9
9
|
running: ['completed', 'error', 'cancelled', 'expired'],
|
|
10
|
-
completed: [],
|
|
11
|
-
error: [],
|
|
12
|
-
cancelled: [],
|
|
13
|
-
expired: [],
|
|
10
|
+
completed: [],
|
|
11
|
+
error: [],
|
|
12
|
+
cancelled: [],
|
|
13
|
+
expired: [],
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Check if a state is terminal (no further transitions possible)
|
|
@@ -26,8 +26,6 @@ export function isValidTransition(from, to) {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Delegation state machine
|
|
29
|
-
*
|
|
30
|
-
* Manages state transitions for a single delegation
|
|
31
29
|
*/
|
|
32
30
|
export class DelegationStateMachine {
|
|
33
31
|
state = 'created';
|
|
@@ -36,21 +34,12 @@ export class DelegationStateMachine {
|
|
|
36
34
|
this.state = initialState;
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Get current state
|
|
41
|
-
*/
|
|
42
37
|
getState() {
|
|
43
38
|
return this.state;
|
|
44
39
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Check if delegation is in a terminal state
|
|
47
|
-
*/
|
|
48
40
|
isTerminal() {
|
|
49
41
|
return isTerminalState(this.state);
|
|
50
42
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Process an event and transition state
|
|
53
|
-
*/
|
|
54
43
|
transition(event) {
|
|
55
44
|
const targetState = this.getTargetState(event);
|
|
56
45
|
if (!targetState) {
|
|
@@ -73,9 +62,6 @@ export class DelegationStateMachine {
|
|
|
73
62
|
newState: this.state,
|
|
74
63
|
};
|
|
75
64
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Force state (use with caution, mainly for restoration)
|
|
78
|
-
*/
|
|
79
65
|
forceState(state) {
|
|
80
66
|
this.state = state;
|
|
81
67
|
}
|
|
@@ -87,7 +73,7 @@ export class DelegationStateMachine {
|
|
|
87
73
|
return this.state === 'invited' ? 'accepted' : null;
|
|
88
74
|
case 'SEND_START':
|
|
89
75
|
return this.state === 'accepted' ? 'started' : null;
|
|
90
|
-
case '
|
|
76
|
+
case 'SETUP_COMPLETE':
|
|
91
77
|
return this.state === 'started' ? 'running' : null;
|
|
92
78
|
case 'RECEIVE_DONE':
|
|
93
79
|
return this.state === 'running' ? 'completed' : null;
|
|
@@ -97,7 +83,6 @@ export class DelegationStateMachine {
|
|
|
97
83
|
case 'CANCEL':
|
|
98
84
|
return isTerminalState(this.state) ? null : 'cancelled';
|
|
99
85
|
case 'EXPIRE':
|
|
100
|
-
// Can expire from invited, accepted, or running states
|
|
101
86
|
return ['invited', 'accepted', 'running'].includes(this.state)
|
|
102
87
|
? 'expired'
|
|
103
88
|
: null;
|
|
@@ -129,7 +114,7 @@ export function applyMessageToDelegation(delegation, message) {
|
|
|
129
114
|
const updated = { ...delegation, updatedAt: new Date().toISOString() };
|
|
130
115
|
switch (message.type) {
|
|
131
116
|
case 'ACCEPT':
|
|
132
|
-
updated.
|
|
117
|
+
updated.executorWorkDir = message.executorWorkDir;
|
|
133
118
|
updated.executorConstraints = message.executorConstraints;
|
|
134
119
|
break;
|
|
135
120
|
case 'START':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,iBAAiB,GAA+C;IACpE,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;IAC1C,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;IACtD,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;IACtD,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;IAC1C,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;IACvD,SAAS,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-machine/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/messages.d.ts
CHANGED
|
@@ -23,8 +23,7 @@ export interface AuthCredential {
|
|
|
23
23
|
metadata?: Record<string, string>;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Transport types for data plane
|
|
27
|
-
* Extensible - new transports can be added (e.g., 'archive', 'webdav')
|
|
26
|
+
* Transport types for data plane
|
|
28
27
|
*/
|
|
29
28
|
export type TransportType = 'sshfs' | 'archive';
|
|
30
29
|
/**
|
|
@@ -35,70 +34,55 @@ export type DelegationState = 'created' | 'invited' | 'accepted' | 'started' | '
|
|
|
35
34
|
* Task description for delegation
|
|
36
35
|
*/
|
|
37
36
|
export interface TaskSpec {
|
|
38
|
-
/** Short description for logging/listing */
|
|
39
37
|
description: string;
|
|
40
|
-
/** Full task prompt with goals and constraints */
|
|
41
38
|
prompt: string;
|
|
42
39
|
}
|
|
43
40
|
/**
|
|
44
41
|
* Lease configuration
|
|
45
42
|
*/
|
|
46
43
|
export interface LeaseConfig {
|
|
47
|
-
/** Time-to-live in seconds */
|
|
48
44
|
ttlSeconds: number;
|
|
49
|
-
/** Access mode */
|
|
50
45
|
accessMode: AccessMode;
|
|
51
46
|
}
|
|
52
47
|
/**
|
|
53
48
|
* Active lease information (after START)
|
|
54
49
|
*/
|
|
55
50
|
export interface ActiveLease {
|
|
56
|
-
/** Absolute expiration time (ISO 8601) */
|
|
57
51
|
expiresAt: string;
|
|
58
|
-
/** Effective access mode */
|
|
59
52
|
accessMode: AccessMode;
|
|
60
53
|
}
|
|
61
54
|
/**
|
|
62
55
|
* Workspace specification in INVITE
|
|
63
56
|
*/
|
|
64
57
|
export interface WorkspaceSpec {
|
|
65
|
-
/** Logical export name (not real path), e.g., "awcp/<id>" */
|
|
66
58
|
exportName: string;
|
|
67
59
|
}
|
|
68
60
|
/**
|
|
69
61
|
* Requirements for Executor to check
|
|
70
62
|
*/
|
|
71
63
|
export interface Requirements {
|
|
72
|
-
/** Transport type (default: sshfs) */
|
|
73
64
|
transport?: TransportType;
|
|
74
65
|
}
|
|
75
66
|
/**
|
|
76
|
-
* Executor
|
|
67
|
+
* Executor work directory specification in ACCEPT
|
|
77
68
|
*/
|
|
78
|
-
export interface
|
|
79
|
-
|
|
80
|
-
mountPoint: string;
|
|
69
|
+
export interface ExecutorWorkDir {
|
|
70
|
+
path: string;
|
|
81
71
|
}
|
|
82
72
|
/**
|
|
83
73
|
* Sandbox profile - capability declaration by Executor
|
|
84
74
|
*/
|
|
85
75
|
export interface SandboxProfile {
|
|
86
|
-
/** Whether tools are restricted to mount point CWD */
|
|
87
76
|
cwdOnly?: boolean;
|
|
88
|
-
/** Whether network access is allowed */
|
|
89
77
|
allowNetwork?: boolean;
|
|
90
|
-
/** Whether command execution is allowed */
|
|
91
78
|
allowExec?: boolean;
|
|
92
79
|
}
|
|
93
80
|
/**
|
|
94
81
|
* Executor constraints in ACCEPT
|
|
95
82
|
*/
|
|
96
83
|
export interface ExecutorConstraints {
|
|
97
|
-
/** Actually accepted access mode (may be downgraded) */
|
|
98
84
|
acceptedAccessMode?: AccessMode;
|
|
99
|
-
/** Maximum TTL Executor allows */
|
|
100
85
|
maxTtlSeconds?: number;
|
|
101
|
-
/** Self-declared sandbox constraints */
|
|
102
86
|
sandboxProfile?: SandboxProfile;
|
|
103
87
|
}
|
|
104
88
|
/**
|
|
@@ -113,46 +97,33 @@ export interface SshEndpoint {
|
|
|
113
97
|
* SSH credential for certificate-based authentication
|
|
114
98
|
*/
|
|
115
99
|
export interface SshCredential {
|
|
116
|
-
/** SSH private key content */
|
|
117
100
|
privateKey: string;
|
|
118
|
-
/** SSH certificate content (signed by CA, includes TTL) */
|
|
119
101
|
certificate: string;
|
|
120
102
|
}
|
|
121
103
|
/**
|
|
122
|
-
*
|
|
123
|
-
* Base interface - transport-specific fields are defined in transport packages.
|
|
104
|
+
* Work directory information in START message
|
|
124
105
|
*/
|
|
125
|
-
export interface
|
|
126
|
-
/** Transport type */
|
|
106
|
+
export interface WorkDirInfo {
|
|
127
107
|
transport: TransportType;
|
|
128
|
-
/** Transport-specific configuration (defined by each transport) */
|
|
129
108
|
[key: string]: unknown;
|
|
130
109
|
}
|
|
131
110
|
/**
|
|
132
|
-
* SSHFS-specific
|
|
111
|
+
* SSHFS-specific work directory information
|
|
133
112
|
*/
|
|
134
|
-
export interface
|
|
113
|
+
export interface SshfsWorkDirInfo extends WorkDirInfo {
|
|
135
114
|
transport: 'sshfs';
|
|
136
|
-
/** Connection endpoint */
|
|
137
115
|
endpoint: SshEndpoint;
|
|
138
|
-
/** Export path or locator token */
|
|
139
116
|
exportLocator: string;
|
|
140
|
-
/** SSH credential (private key + certificate) */
|
|
141
117
|
credential: SshCredential;
|
|
142
|
-
|
|
143
|
-
mountOptions?: Record<string, string>;
|
|
118
|
+
options?: Record<string, string>;
|
|
144
119
|
}
|
|
145
120
|
/**
|
|
146
|
-
* Archive-specific
|
|
121
|
+
* Archive-specific work directory information
|
|
147
122
|
*/
|
|
148
|
-
export interface
|
|
123
|
+
export interface ArchiveWorkDirInfo extends WorkDirInfo {
|
|
149
124
|
transport: 'archive';
|
|
150
|
-
|
|
151
|
-
downloadUrl: string;
|
|
152
|
-
/** Checksum for verification */
|
|
125
|
+
workspaceBase64: string;
|
|
153
126
|
checksum: string;
|
|
154
|
-
/** URL to upload results */
|
|
155
|
-
uploadUrl: string;
|
|
156
127
|
}
|
|
157
128
|
/**
|
|
158
129
|
* Base message structure
|
|
@@ -164,7 +135,6 @@ export interface BaseMessage {
|
|
|
164
135
|
}
|
|
165
136
|
/**
|
|
166
137
|
* INVITE message: Delegator → Executor
|
|
167
|
-
* Initiates collaboration request
|
|
168
138
|
*/
|
|
169
139
|
export interface InviteMessage extends BaseMessage {
|
|
170
140
|
type: 'INVITE';
|
|
@@ -172,60 +142,89 @@ export interface InviteMessage extends BaseMessage {
|
|
|
172
142
|
lease: LeaseConfig;
|
|
173
143
|
workspace: WorkspaceSpec;
|
|
174
144
|
requirements?: Requirements;
|
|
175
|
-
/**
|
|
176
|
-
* Optional authentication for paid/restricted Executor services.
|
|
177
|
-
* Executor can validate this in onInvite hook before accepting.
|
|
178
|
-
*/
|
|
179
145
|
auth?: AuthCredential;
|
|
180
146
|
}
|
|
181
147
|
/**
|
|
182
148
|
* ACCEPT message: Executor → Delegator
|
|
183
|
-
* Confirms acceptance with mount point
|
|
184
149
|
*/
|
|
185
150
|
export interface AcceptMessage extends BaseMessage {
|
|
186
151
|
type: 'ACCEPT';
|
|
187
|
-
|
|
152
|
+
executorWorkDir: ExecutorWorkDir;
|
|
188
153
|
executorConstraints?: ExecutorConstraints;
|
|
189
154
|
}
|
|
190
155
|
/**
|
|
191
156
|
* START message: Delegator → Executor
|
|
192
|
-
* Authorizes and provides credentials
|
|
193
157
|
*/
|
|
194
158
|
export interface StartMessage extends BaseMessage {
|
|
195
159
|
type: 'START';
|
|
196
160
|
lease: ActiveLease;
|
|
197
|
-
|
|
161
|
+
workDir: WorkDirInfo;
|
|
198
162
|
}
|
|
199
163
|
/**
|
|
200
|
-
* DONE message: Executor → Delegator
|
|
201
|
-
* Reports successful completion
|
|
164
|
+
* DONE message: Executor → Delegator (via SSE)
|
|
202
165
|
*/
|
|
203
166
|
export interface DoneMessage extends BaseMessage {
|
|
204
167
|
type: 'DONE';
|
|
205
|
-
/** Summary of what was accomplished */
|
|
206
168
|
finalSummary: string;
|
|
207
|
-
/** Files Executor suggests Delegator to review */
|
|
208
169
|
highlights?: string[];
|
|
209
|
-
/** Additional notes */
|
|
210
170
|
notes?: string;
|
|
211
171
|
}
|
|
212
172
|
/**
|
|
213
173
|
* ERROR message: Either direction
|
|
214
|
-
* Reports failure or rejection
|
|
215
174
|
*/
|
|
216
175
|
export interface ErrorMessage extends BaseMessage {
|
|
217
176
|
type: 'ERROR';
|
|
218
|
-
/** Error code */
|
|
219
177
|
code: string;
|
|
220
|
-
/** Human-readable description */
|
|
221
178
|
message: string;
|
|
222
|
-
/** Suggested fix */
|
|
223
179
|
hint?: string;
|
|
224
180
|
}
|
|
225
181
|
/**
|
|
226
182
|
* Union type for all AWCP messages
|
|
227
183
|
*/
|
|
228
184
|
export type AwcpMessage = InviteMessage | AcceptMessage | StartMessage | DoneMessage | ErrorMessage;
|
|
185
|
+
/**
|
|
186
|
+
* Task event types for SSE streaming
|
|
187
|
+
*/
|
|
188
|
+
export type TaskEventType = 'status' | 'done' | 'error';
|
|
189
|
+
/**
|
|
190
|
+
* Base task event structure
|
|
191
|
+
*/
|
|
192
|
+
export interface BaseTaskEvent {
|
|
193
|
+
delegationId: string;
|
|
194
|
+
type: TaskEventType;
|
|
195
|
+
timestamp: string;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Status update event
|
|
199
|
+
*/
|
|
200
|
+
export interface TaskStatusEvent extends BaseTaskEvent {
|
|
201
|
+
type: 'status';
|
|
202
|
+
status: 'running' | 'progress';
|
|
203
|
+
message?: string;
|
|
204
|
+
progress?: number;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Task completion event
|
|
208
|
+
*/
|
|
209
|
+
export interface TaskDoneEvent extends BaseTaskEvent {
|
|
210
|
+
type: 'done';
|
|
211
|
+
summary: string;
|
|
212
|
+
highlights?: string[];
|
|
213
|
+
resultBase64?: string;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Task error event
|
|
217
|
+
*/
|
|
218
|
+
export interface TaskErrorEvent extends BaseTaskEvent {
|
|
219
|
+
type: 'error';
|
|
220
|
+
code: string;
|
|
221
|
+
message: string;
|
|
222
|
+
hint?: string;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Union type for all task events
|
|
226
|
+
*/
|
|
227
|
+
export type TaskEvent = TaskStatusEvent | TaskDoneEvent | TaskErrorEvent;
|
|
229
228
|
/**
|
|
230
229
|
* Delegation record - full state of a delegation
|
|
231
230
|
*/
|
|
@@ -238,7 +237,7 @@ export interface Delegation {
|
|
|
238
237
|
task: TaskSpec;
|
|
239
238
|
leaseConfig: LeaseConfig;
|
|
240
239
|
activeLease?: ActiveLease;
|
|
241
|
-
|
|
240
|
+
executorWorkDir?: ExecutorWorkDir;
|
|
242
241
|
executorConstraints?: ExecutorConstraints;
|
|
243
242
|
result?: {
|
|
244
243
|
summary: string;
|
|
@@ -253,8 +252,4 @@ export interface Delegation {
|
|
|
253
252
|
createdAt: string;
|
|
254
253
|
updatedAt: string;
|
|
255
254
|
}
|
|
256
|
-
/** @deprecated Use ExecutorMount instead */
|
|
257
|
-
export type RemoteMount = ExecutorMount;
|
|
258
|
-
/** @deprecated Use ExecutorConstraints instead */
|
|
259
|
-
export type RemoteConstraints = ExecutorConstraints;
|
|
260
255
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,WAAW,GACX,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,WAAW,GACX,YAAY,CAAC;AAMjB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;AAMzE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -4,123 +4,86 @@
|
|
|
4
4
|
* Abstract interface that all transport implementations must implement.
|
|
5
5
|
* This enables pluggable transports (sshfs, archive, webdav, etc.)
|
|
6
6
|
*/
|
|
7
|
-
import type { TransportType,
|
|
7
|
+
import type { TransportType, WorkDirInfo } from './messages.js';
|
|
8
8
|
/**
|
|
9
9
|
* Parameters for preparing a transport on Delegator side
|
|
10
10
|
*/
|
|
11
11
|
export interface TransportPrepareParams {
|
|
12
|
-
/** Unique delegation identifier */
|
|
13
12
|
delegationId: string;
|
|
14
|
-
/** Path to the export directory on Delegator */
|
|
15
13
|
exportPath: string;
|
|
16
|
-
/** Time-to-live in seconds */
|
|
17
14
|
ttlSeconds: number;
|
|
18
15
|
}
|
|
19
16
|
/**
|
|
20
17
|
* Result from transport preparation
|
|
21
18
|
*/
|
|
22
19
|
export interface TransportPrepareResult {
|
|
23
|
-
|
|
24
|
-
mountInfo: MountInfo;
|
|
20
|
+
workDirInfo: WorkDirInfo;
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
23
|
* Parameters for setting up workspace on Executor side
|
|
28
24
|
*/
|
|
29
25
|
export interface TransportSetupParams {
|
|
30
|
-
/** Unique delegation identifier */
|
|
31
26
|
delegationId: string;
|
|
32
|
-
|
|
33
|
-
mountInfo: MountInfo;
|
|
34
|
-
/** Working directory path (Executor decides this) */
|
|
27
|
+
workDirInfo: WorkDirInfo;
|
|
35
28
|
workDir: string;
|
|
36
29
|
}
|
|
37
30
|
/**
|
|
38
31
|
* Parameters for tearing down workspace on Executor side
|
|
39
32
|
*/
|
|
40
33
|
export interface TransportTeardownParams {
|
|
41
|
-
/** Unique delegation identifier */
|
|
42
34
|
delegationId: string;
|
|
43
|
-
/** Working directory that was set up */
|
|
44
35
|
workDir: string;
|
|
45
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Result from transport teardown (optional result data)
|
|
39
|
+
*/
|
|
40
|
+
export interface TransportTeardownResult {
|
|
41
|
+
resultBase64?: string;
|
|
42
|
+
}
|
|
46
43
|
/**
|
|
47
44
|
* Dependency check result
|
|
48
45
|
*/
|
|
49
46
|
export interface DependencyCheckResult {
|
|
50
|
-
/** Whether the transport dependencies are available */
|
|
51
47
|
available: boolean;
|
|
52
|
-
/** Optional hint for installation if not available */
|
|
53
48
|
hint?: string;
|
|
54
49
|
}
|
|
55
50
|
/**
|
|
56
51
|
* Transport Adapter Interface
|
|
57
52
|
*
|
|
58
53
|
* All transport implementations (sshfs, archive, etc.) must implement this interface.
|
|
59
|
-
* The SDK uses this abstraction to remain transport-agnostic.
|
|
60
54
|
*
|
|
61
55
|
* Lifecycle:
|
|
62
56
|
* - Delegator: prepare() -> [task runs] -> cleanup()
|
|
63
57
|
* - Executor: checkDependency() -> setup() -> [task runs] -> teardown()
|
|
64
58
|
*/
|
|
65
59
|
export interface TransportAdapter {
|
|
66
|
-
/** Transport type identifier */
|
|
67
60
|
readonly type: TransportType;
|
|
68
61
|
/**
|
|
69
62
|
* Prepare the transport for a delegation.
|
|
70
63
|
* Called after ACCEPT received, before sending START.
|
|
71
|
-
*
|
|
72
|
-
* For SSHFS: Generate SSH credentials, prepare endpoint info
|
|
73
|
-
* For Archive: Create zip, start file server, generate URLs
|
|
74
|
-
*
|
|
75
|
-
* @param params Preparation parameters
|
|
76
|
-
* @returns Mount information to include in START message
|
|
77
64
|
*/
|
|
78
65
|
prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
|
|
79
66
|
/**
|
|
80
67
|
* Clean up resources for a delegation.
|
|
81
|
-
* Called after
|
|
82
|
-
*
|
|
83
|
-
* For SSHFS: Revoke SSH credentials
|
|
84
|
-
* For Archive: Remove temporary files, stop serving
|
|
85
|
-
*
|
|
86
|
-
* @param delegationId The delegation to clean up
|
|
68
|
+
* Called after task completion or on expiration.
|
|
87
69
|
*/
|
|
88
70
|
cleanup(delegationId: string): Promise<void>;
|
|
89
71
|
/**
|
|
90
72
|
* Check if transport dependencies are available.
|
|
91
|
-
* Called during INVITE handling.
|
|
92
|
-
*
|
|
93
|
-
* For SSHFS: Check if sshfs binary is installed
|
|
94
|
-
* For Archive: Usually always available (just needs Node.js)
|
|
95
|
-
*
|
|
96
|
-
* @returns Availability status and installation hint
|
|
97
73
|
*/
|
|
98
74
|
checkDependency(): Promise<DependencyCheckResult>;
|
|
99
75
|
/**
|
|
100
76
|
* Set up the workspace for task execution.
|
|
101
77
|
* Called after START received.
|
|
102
|
-
*
|
|
103
|
-
* For SSHFS: Mount remote filesystem
|
|
104
|
-
* For Archive: Download and extract archive
|
|
105
|
-
*
|
|
106
|
-
* @param params Setup parameters including mount info from START
|
|
107
|
-
* @returns Path to the working directory (may differ from targetDir)
|
|
108
78
|
*/
|
|
109
79
|
setup(params: TransportSetupParams): Promise<string>;
|
|
110
80
|
/**
|
|
111
81
|
* Tear down the workspace after task completion.
|
|
112
|
-
* Called before sending DONE/ERROR.
|
|
113
|
-
*
|
|
114
|
-
* For SSHFS: Unmount filesystem
|
|
115
|
-
* For Archive: Package results for upload (if needed)
|
|
116
|
-
*
|
|
117
|
-
* @param params Teardown parameters
|
|
118
82
|
*/
|
|
119
|
-
teardown(params: TransportTeardownParams): Promise<
|
|
83
|
+
teardown(params: TransportTeardownParams): Promise<TransportTeardownResult>;
|
|
120
84
|
}
|
|
121
85
|
/**
|
|
122
|
-
* Transport adapter for Delegator side only
|
|
123
|
-
* Use this when implementing a transport that only needs Delegator functionality.
|
|
86
|
+
* Transport adapter for Delegator side only
|
|
124
87
|
*/
|
|
125
88
|
export interface DelegatorTransportAdapter {
|
|
126
89
|
readonly type: TransportType;
|
|
@@ -128,13 +91,12 @@ export interface DelegatorTransportAdapter {
|
|
|
128
91
|
cleanup(delegationId: string): Promise<void>;
|
|
129
92
|
}
|
|
130
93
|
/**
|
|
131
|
-
* Transport adapter for Executor side only
|
|
132
|
-
* Use this when implementing a transport that only needs Executor functionality.
|
|
94
|
+
* Transport adapter for Executor side only
|
|
133
95
|
*/
|
|
134
96
|
export interface ExecutorTransportAdapter {
|
|
135
97
|
readonly type: TransportType;
|
|
136
98
|
checkDependency(): Promise<DependencyCheckResult>;
|
|
137
99
|
setup(params: TransportSetupParams): Promise<string>;
|
|
138
|
-
teardown(params: TransportTeardownParams): Promise<
|
|
100
|
+
teardown(params: TransportTeardownParams): Promise<TransportTeardownResult>;
|
|
139
101
|
}
|
|
140
102
|
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAI7B;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEzE;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI7C;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElD;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzE,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,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"}
|