@awcp/sdk 0.0.0-dev-202602010544 → 0.0.0-dev-202602020823
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/client.d.ts +8 -9
- package/dist/delegator/bin/client.d.ts.map +1 -1
- package/dist/delegator/bin/client.js +3 -1
- package/dist/delegator/bin/client.js.map +1 -1
- package/dist/delegator/bin/daemon.js +4 -4
- package/dist/delegator/bin/daemon.js.map +1 -1
- package/dist/delegator/config.d.ts +6 -13
- package/dist/delegator/config.d.ts.map +1 -1
- package/dist/delegator/config.js +1 -5
- package/dist/delegator/config.js.map +1 -1
- package/dist/delegator/environment-builder.d.ts +45 -0
- package/dist/delegator/environment-builder.d.ts.map +1 -0
- package/dist/delegator/environment-builder.js +102 -0
- package/dist/delegator/environment-builder.js.map +1 -0
- package/dist/delegator/index.d.ts +3 -2
- package/dist/delegator/index.d.ts.map +1 -1
- package/dist/delegator/index.js +2 -1
- package/dist/delegator/index.js.map +1 -1
- package/dist/delegator/resource-adapters/fs-adapter.d.ts +8 -0
- package/dist/delegator/resource-adapters/fs-adapter.d.ts.map +1 -0
- package/dist/delegator/resource-adapters/fs-adapter.js +14 -0
- package/dist/delegator/resource-adapters/fs-adapter.js.map +1 -0
- package/dist/delegator/resource-adapters/index.d.ts +4 -0
- package/dist/delegator/resource-adapters/index.d.ts.map +1 -0
- package/dist/delegator/resource-adapters/index.js +3 -0
- package/dist/delegator/resource-adapters/index.js.map +1 -0
- package/dist/delegator/resource-adapters/registry.d.ts +8 -0
- package/dist/delegator/resource-adapters/registry.d.ts.map +1 -0
- package/dist/delegator/resource-adapters/registry.js +17 -0
- package/dist/delegator/resource-adapters/registry.js.map +1 -0
- package/dist/delegator/resource-adapters/types.d.ts +7 -0
- package/dist/delegator/resource-adapters/types.d.ts.map +1 -0
- package/dist/delegator/resource-adapters/types.js +2 -0
- package/dist/delegator/resource-adapters/types.js.map +1 -0
- package/dist/delegator/service.d.ts +4 -4
- package/dist/delegator/service.d.ts.map +1 -1
- package/dist/delegator/service.js +26 -29
- package/dist/delegator/service.js.map +1 -1
- package/dist/executor/config.d.ts +2 -1
- package/dist/executor/config.d.ts.map +1 -1
- package/dist/executor/config.js.map +1 -1
- package/dist/executor/service.d.ts.map +1 -1
- package/dist/executor/service.js +4 -3
- package/dist/executor/service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/delegator/export-manager.d.ts +0 -27
- package/dist/delegator/export-manager.d.ts.map +0 -1
- package/dist/delegator/export-manager.js +0 -85
- package/dist/delegator/export-manager.js.map +0 -1
- package/dist/delegator/export-view.d.ts +0 -43
- package/dist/delegator/export-view.d.ts.map +0 -1
- package/dist/delegator/export-view.js +0 -108
- package/dist/delegator/export-view.js.map +0 -1
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { mkdir, rm, symlink, readdir } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* Default export base directory
|
|
5
|
-
*/
|
|
6
|
-
const DEFAULT_EXPORT_BASE = '/tmp/awcp/exports';
|
|
7
|
-
/**
|
|
8
|
-
* Export View Manager
|
|
9
|
-
*
|
|
10
|
-
* Creates isolated export views for each delegation.
|
|
11
|
-
* This prevents exposing real paths and enables cleanup.
|
|
12
|
-
*/
|
|
13
|
-
export class ExportViewManager {
|
|
14
|
-
config;
|
|
15
|
-
exports = new Map();
|
|
16
|
-
constructor(config) {
|
|
17
|
-
this.config = config ?? {};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Create an export view for a delegation
|
|
21
|
-
*
|
|
22
|
-
* @returns The path to the export view (with trailing slash for SSHFS symlink compatibility)
|
|
23
|
-
*/
|
|
24
|
-
async create(delegationId, localDir) {
|
|
25
|
-
const baseDir = this.config.baseDir ?? DEFAULT_EXPORT_BASE;
|
|
26
|
-
const exportPath = join(baseDir, delegationId, 'workspace');
|
|
27
|
-
// Create export directory structure
|
|
28
|
-
await mkdir(join(baseDir, delegationId), { recursive: true });
|
|
29
|
-
// Create the export view based on strategy
|
|
30
|
-
const strategy = this.config.strategy ?? 'symlink';
|
|
31
|
-
switch (strategy) {
|
|
32
|
-
case 'symlink':
|
|
33
|
-
await symlink(localDir, exportPath);
|
|
34
|
-
break;
|
|
35
|
-
case 'bind':
|
|
36
|
-
// Bind mount - requires root/sudo
|
|
37
|
-
console.warn('Bind mount not implemented, falling back to symlink');
|
|
38
|
-
await symlink(localDir, exportPath);
|
|
39
|
-
break;
|
|
40
|
-
case 'worktree':
|
|
41
|
-
// Git worktree - requires git repo
|
|
42
|
-
console.warn('Git worktree not implemented, falling back to symlink');
|
|
43
|
-
await symlink(localDir, exportPath);
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
this.exports.set(delegationId, exportPath);
|
|
47
|
-
// Return path with trailing slash for SSHFS symlink compatibility
|
|
48
|
-
// See: https://github.com/libfuse/sshfs/issues/312
|
|
49
|
-
return exportPath + '/';
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Cleanup an export view
|
|
53
|
-
*/
|
|
54
|
-
async cleanup(delegationId) {
|
|
55
|
-
const exportPath = this.exports.get(delegationId);
|
|
56
|
-
if (!exportPath) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
const baseDir = this.config.baseDir ?? DEFAULT_EXPORT_BASE;
|
|
61
|
-
const delegationDir = join(baseDir, delegationId);
|
|
62
|
-
await rm(delegationDir, { recursive: true, force: true });
|
|
63
|
-
this.exports.delete(delegationId);
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
console.error(`Failed to cleanup export view for ${delegationId}:`, error);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get the export path for a delegation
|
|
71
|
-
*/
|
|
72
|
-
getExportPath(delegationId) {
|
|
73
|
-
return this.exports.get(delegationId);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Cleanup all export views
|
|
77
|
-
*/
|
|
78
|
-
async cleanupAll() {
|
|
79
|
-
for (const delegationId of this.exports.keys()) {
|
|
80
|
-
await this.cleanup(delegationId);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Cleanup stale export directories from previous runs
|
|
85
|
-
*/
|
|
86
|
-
async cleanupStaleExports() {
|
|
87
|
-
const baseDir = this.config.baseDir ?? DEFAULT_EXPORT_BASE;
|
|
88
|
-
let cleaned = 0;
|
|
89
|
-
try {
|
|
90
|
-
const entries = await readdir(baseDir, { withFileTypes: true });
|
|
91
|
-
for (const entry of entries) {
|
|
92
|
-
if (entry.isDirectory()) {
|
|
93
|
-
const delegationId = entry.name;
|
|
94
|
-
// Only clean directories not currently tracked
|
|
95
|
-
if (!this.exports.has(delegationId)) {
|
|
96
|
-
await rm(join(baseDir, delegationId), { recursive: true, force: true });
|
|
97
|
-
cleaned++;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
// Base directory may not exist yet
|
|
104
|
-
}
|
|
105
|
-
return cleaned;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=export-view.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-view.js","sourceRoot":"","sources":["../../src/delegator/export-view.ts"],"names":[],"mappings":"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"}
|