@awcp/core 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.
@@ -1,2 +1,3 @@
1
1
  export * from './messages.js';
2
+ export * from './transport.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './messages.js';
2
+ export * from './transport.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -23,9 +23,10 @@ export interface AuthCredential {
23
23
  metadata?: Record<string, string>;
24
24
  }
25
25
  /**
26
- * Transport types for data plane
26
+ * Transport types for data plane.
27
+ * Extensible - new transports can be added (e.g., 'archive', 'webdav')
27
28
  */
28
- export type TransportType = 'sshfs';
29
+ export type TransportType = 'sshfs' | 'archive';
29
30
  /**
30
31
  * Delegation lifecycle states
31
32
  */
@@ -109,20 +110,50 @@ export interface SshEndpoint {
109
110
  user: string;
110
111
  }
111
112
  /**
112
- * Mount information in START message
113
+ * SSH credential for certificate-based authentication
114
+ */
115
+ export interface SshCredential {
116
+ /** SSH private key content */
117
+ privateKey: string;
118
+ /** SSH certificate content (signed by CA, includes TTL) */
119
+ certificate: string;
120
+ }
121
+ /**
122
+ * Mount information in START message.
123
+ * Base interface - transport-specific fields are defined in transport packages.
113
124
  */
114
125
  export interface MountInfo {
115
126
  /** Transport type */
116
127
  transport: TransportType;
128
+ /** Transport-specific configuration (defined by each transport) */
129
+ [key: string]: unknown;
130
+ }
131
+ /**
132
+ * SSHFS-specific mount information
133
+ */
134
+ export interface SshfsMountInfo extends MountInfo {
135
+ transport: 'sshfs';
117
136
  /** Connection endpoint */
118
137
  endpoint: SshEndpoint;
119
138
  /** Export path or locator token */
120
139
  exportLocator: string;
121
- /** Temporary credential (SSH key or token) */
122
- credential: string;
140
+ /** SSH credential (private key + certificate) */
141
+ credential: SshCredential;
123
142
  /** Optional mount parameters */
124
143
  mountOptions?: Record<string, string>;
125
144
  }
145
+ /**
146
+ * Archive-specific mount information (for future archive transport)
147
+ */
148
+ export interface ArchiveMountInfo extends MountInfo {
149
+ transport: 'archive';
150
+ /** URL to download the workspace archive */
151
+ downloadUrl: string;
152
+ /** Checksum for verification */
153
+ checksum: string;
154
+ /** URL to upload results */
155
+ uploadUrl: string;
156
+ }
126
157
  /**
127
158
  * Base message structure
128
159
  */
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Transport Adapter Interface
3
+ *
4
+ * Abstract interface that all transport implementations must implement.
5
+ * This enables pluggable transports (sshfs, archive, webdav, etc.)
6
+ */
7
+ import type { TransportType, MountInfo } from './messages.js';
8
+ /**
9
+ * Parameters for preparing a transport on Delegator side
10
+ */
11
+ export interface TransportPrepareParams {
12
+ /** Unique delegation identifier */
13
+ delegationId: string;
14
+ /** Path to the export directory on Delegator */
15
+ exportPath: string;
16
+ /** Time-to-live in seconds */
17
+ ttlSeconds: number;
18
+ }
19
+ /**
20
+ * Result from transport preparation
21
+ */
22
+ export interface TransportPrepareResult {
23
+ /** Mount information to include in START message */
24
+ mountInfo: MountInfo;
25
+ }
26
+ /**
27
+ * Parameters for setting up workspace on Executor side
28
+ */
29
+ export interface TransportSetupParams {
30
+ /** Unique delegation identifier */
31
+ delegationId: string;
32
+ /** Mount information from START message */
33
+ mountInfo: MountInfo;
34
+ /** Working directory path (Executor decides this) */
35
+ workDir: string;
36
+ }
37
+ /**
38
+ * Parameters for tearing down workspace on Executor side
39
+ */
40
+ export interface TransportTeardownParams {
41
+ /** Unique delegation identifier */
42
+ delegationId: string;
43
+ /** Working directory that was set up */
44
+ workDir: string;
45
+ }
46
+ /**
47
+ * Dependency check result
48
+ */
49
+ export interface DependencyCheckResult {
50
+ /** Whether the transport dependencies are available */
51
+ available: boolean;
52
+ /** Optional hint for installation if not available */
53
+ hint?: string;
54
+ }
55
+ /**
56
+ * Transport Adapter Interface
57
+ *
58
+ * All transport implementations (sshfs, archive, etc.) must implement this interface.
59
+ * The SDK uses this abstraction to remain transport-agnostic.
60
+ *
61
+ * Lifecycle:
62
+ * - Delegator: prepare() -> [task runs] -> cleanup()
63
+ * - Executor: checkDependency() -> setup() -> [task runs] -> teardown()
64
+ */
65
+ export interface TransportAdapter {
66
+ /** Transport type identifier */
67
+ readonly type: TransportType;
68
+ /**
69
+ * Prepare the transport for a delegation.
70
+ * 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
+ */
78
+ prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
79
+ /**
80
+ * Clean up resources for a delegation.
81
+ * Called after DONE/ERROR received or on expiration.
82
+ *
83
+ * For SSHFS: Revoke SSH credentials
84
+ * For Archive: Remove temporary files, stop serving
85
+ *
86
+ * @param delegationId The delegation to clean up
87
+ */
88
+ cleanup(delegationId: string): Promise<void>;
89
+ /**
90
+ * 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
+ */
98
+ checkDependency(): Promise<DependencyCheckResult>;
99
+ /**
100
+ * Set up the workspace for task execution.
101
+ * 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
+ */
109
+ setup(params: TransportSetupParams): Promise<string>;
110
+ /**
111
+ * 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
+ */
119
+ teardown(params: TransportTeardownParams): Promise<void>;
120
+ }
121
+ /**
122
+ * Transport adapter for Delegator side only.
123
+ * Use this when implementing a transport that only needs Delegator functionality.
124
+ */
125
+ export interface DelegatorTransportAdapter {
126
+ readonly type: TransportType;
127
+ prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
128
+ cleanup(delegationId: string): Promise<void>;
129
+ }
130
+ /**
131
+ * Transport adapter for Executor side only.
132
+ * Use this when implementing a transport that only needs Executor functionality.
133
+ */
134
+ export interface ExecutorTransportAdapter {
135
+ readonly type: TransportType;
136
+ checkDependency(): Promise<DependencyCheckResult>;
137
+ setup(params: TransportSetupParams): Promise<string>;
138
+ teardown(params: TransportTeardownParams): Promise<void>;
139
+ }
140
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAI7B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI7C;;;;;;;;OAQG;IACH,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElD;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED;;;GAGG;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;;;GAGG;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,IAAI,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Transport Adapter Interface
3
+ *
4
+ * Abstract interface that all transport implementations must implement.
5
+ * This enables pluggable transports (sshfs, archive, webdav, etc.)
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/types/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awcp/core",
3
- "version": "0.0.0-dev-202601300724",
3
+ "version": "0.0.0-dev-202601301521",
4
4
  "description": "AWCP Protocol Core - Types, State Machine, and Error Definitions",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",