@ash-ai/sandbox 0.0.1 → 0.0.2
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/README.md +27 -0
- package/dist/pool.d.ts +1 -1
- package/dist/pool.d.ts.map +1 -1
- package/dist/state-persistence.d.ts +7 -7
- package/dist/state-persistence.d.ts.map +1 -1
- package/dist/state-persistence.js +25 -17
- package/dist/state-persistence.js.map +1 -1
- package/package.json +5 -4
package/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# @ash-ai/sandbox
|
|
2
|
+
|
|
3
|
+
Sandbox management library for [Ash](https://github.com/ash-ai-org/ash-ai) — process spawning, pool management, bridge client, resource limits, and state persistence.
|
|
4
|
+
|
|
5
|
+
Used by both `@ash-ai/server` and `@ash-ai/runner` to manage isolated agent sandboxes.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @ash-ai/sandbox
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## What's included
|
|
14
|
+
|
|
15
|
+
- **SandboxManager** — spawns and manages isolated child processes
|
|
16
|
+
- **SandboxPool** — DB-backed pool with capacity limits, LRU eviction, and idle sweep
|
|
17
|
+
- **BridgeClient** — communicates with bridge processes over Unix sockets
|
|
18
|
+
- **Resource limits** — cgroups (Linux) and ulimit enforcement
|
|
19
|
+
- **State persistence** — save/restore sandbox state for session resume
|
|
20
|
+
|
|
21
|
+
## Documentation
|
|
22
|
+
|
|
23
|
+
See the [Ash README](https://github.com/ash-ai-org/ash-ai) for full documentation.
|
|
24
|
+
|
|
25
|
+
## License
|
|
26
|
+
|
|
27
|
+
[MIT](https://github.com/ash-ai-org/ash-ai/blob/main/LICENSE)
|
package/dist/pool.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type LiveSandboxState = 'warming' | 'warm' | 'waiting' | 'running';
|
|
|
7
7
|
* This narrower type avoids a circular dependency.
|
|
8
8
|
*/
|
|
9
9
|
export interface SandboxDb {
|
|
10
|
-
insertSandbox(id: string, agentName: string, workspaceDir: string, sessionId?: string): Promise<void>;
|
|
10
|
+
insertSandbox(id: string, agentName: string, workspaceDir: string, sessionId?: string, tenantId?: string): Promise<void>;
|
|
11
11
|
updateSandboxState(id: string, state: SandboxState): Promise<void>;
|
|
12
12
|
updateSandboxSession(id: string, sessionId: string | null): Promise<void>;
|
|
13
13
|
touchSandbox(id: string): Promise<void>;
|
package/dist/pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGtF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,35 +8,35 @@ interface StateMetadata {
|
|
|
8
8
|
* Preserves all files the agent created plus .claude session state.
|
|
9
9
|
* Best-effort: logs errors but does not throw.
|
|
10
10
|
*/
|
|
11
|
-
export declare function persistSessionState(dataDir: string, sessionId: string, workspaceDir: string, agentName: string): boolean;
|
|
11
|
+
export declare function persistSessionState(dataDir: string, sessionId: string, workspaceDir: string, agentName: string, tenantId?: string): boolean;
|
|
12
12
|
/**
|
|
13
13
|
* Restore entire workspace from data/sessions/<id>/workspace/ into the target directory.
|
|
14
14
|
* Returns true if state was restored, false if no persisted state exists.
|
|
15
15
|
*/
|
|
16
|
-
export declare function restoreSessionState(dataDir: string, sessionId: string, workspaceDir: string): boolean;
|
|
16
|
+
export declare function restoreSessionState(dataDir: string, sessionId: string, workspaceDir: string, tenantId?: string): boolean;
|
|
17
17
|
/**
|
|
18
18
|
* Check if persisted state exists for a session.
|
|
19
19
|
*/
|
|
20
|
-
export declare function hasPersistedState(dataDir: string, sessionId: string): boolean;
|
|
20
|
+
export declare function hasPersistedState(dataDir: string, sessionId: string, tenantId?: string): boolean;
|
|
21
21
|
/**
|
|
22
22
|
* Delete persisted state for a session.
|
|
23
23
|
*/
|
|
24
|
-
export declare function deleteSessionState(dataDir: string, sessionId: string): void;
|
|
24
|
+
export declare function deleteSessionState(dataDir: string, sessionId: string, tenantId?: string): void;
|
|
25
25
|
/**
|
|
26
26
|
* Read metadata for a persisted session state.
|
|
27
27
|
*/
|
|
28
|
-
export declare function getStateMetadata(dataDir: string, sessionId: string): StateMetadata | null;
|
|
28
|
+
export declare function getStateMetadata(dataDir: string, sessionId: string, tenantId?: string): StateMetadata | null;
|
|
29
29
|
/**
|
|
30
30
|
* Tar.gz the local persisted workspace and upload to cloud storage.
|
|
31
31
|
* Returns true on success, false if no store configured or upload fails.
|
|
32
32
|
* Best-effort: logs errors, doesn't throw.
|
|
33
33
|
*/
|
|
34
|
-
export declare function syncStateToCloud(dataDir: string, sessionId: string): Promise<boolean>;
|
|
34
|
+
export declare function syncStateToCloud(dataDir: string, sessionId: string, tenantId?: string): Promise<boolean>;
|
|
35
35
|
/**
|
|
36
36
|
* Download workspace tarball from cloud storage and extract into the local persist directory.
|
|
37
37
|
* Returns true if state was restored, false if store not configured or key not found.
|
|
38
38
|
*/
|
|
39
|
-
export declare function restoreStateFromCloud(dataDir: string, sessionId: string): Promise<boolean>;
|
|
39
|
+
export declare function restoreStateFromCloud(dataDir: string, sessionId: string, tenantId?: string): Promise<boolean>;
|
|
40
40
|
/**
|
|
41
41
|
* Delete cloud snapshot for a session. Best-effort.
|
|
42
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-persistence.d.ts","sourceRoot":"","sources":["../src/state-persistence.ts"],"names":[],"mappings":"AA4CA,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"state-persistence.d.ts","sourceRoot":"","sources":["../src/state-persistence.ts"],"names":[],"mappings":"AA4CA,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAcD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAkB,GAC3B,OAAO,CA0BT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,GAAE,MAAkB,GAC3B,OAAO,CAiBT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,OAAO,CAG3G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,IAAI,CAGzG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,aAAa,GAAG,IAAI,CAQvH;AAID;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBzH;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B9H;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvE"}
|
|
@@ -39,20 +39,28 @@ function copyFilter(src) {
|
|
|
39
39
|
}
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Resolve the persisted state directory for a session.
|
|
44
|
+
* - 'default' tenant (backward compat): dataDir/sessions/{id}/
|
|
45
|
+
* - Other tenants: dataDir/tenants/{tenantId}/sessions/{id}/
|
|
46
|
+
*/
|
|
47
|
+
function sessionStateDir(dataDir, sessionId, tenantId = 'default') {
|
|
48
|
+
if (tenantId === 'default') {
|
|
49
|
+
return join(dataDir, SESSIONS_SUBDIR, sessionId);
|
|
50
|
+
}
|
|
51
|
+
return join(dataDir, 'tenants', tenantId, SESSIONS_SUBDIR, sessionId);
|
|
44
52
|
}
|
|
45
53
|
/**
|
|
46
54
|
* Copy entire workspace to data/sessions/<id>/workspace/.
|
|
47
55
|
* Preserves all files the agent created plus .claude session state.
|
|
48
56
|
* Best-effort: logs errors but does not throw.
|
|
49
57
|
*/
|
|
50
|
-
export function persistSessionState(dataDir, sessionId, workspaceDir, agentName) {
|
|
58
|
+
export function persistSessionState(dataDir, sessionId, workspaceDir, agentName, tenantId = 'default') {
|
|
51
59
|
try {
|
|
52
60
|
if (!existsSync(workspaceDir)) {
|
|
53
61
|
return false;
|
|
54
62
|
}
|
|
55
|
-
const destDir = sessionStateDir(dataDir, sessionId);
|
|
63
|
+
const destDir = sessionStateDir(dataDir, sessionId, tenantId);
|
|
56
64
|
const destWorkspace = join(destDir, WORKSPACE_DIR);
|
|
57
65
|
// Remove previous backup, then copy fresh (skipping node_modules, .git, etc.)
|
|
58
66
|
rmSync(destWorkspace, { recursive: true, force: true });
|
|
@@ -75,9 +83,9 @@ export function persistSessionState(dataDir, sessionId, workspaceDir, agentName)
|
|
|
75
83
|
* Restore entire workspace from data/sessions/<id>/workspace/ into the target directory.
|
|
76
84
|
* Returns true if state was restored, false if no persisted state exists.
|
|
77
85
|
*/
|
|
78
|
-
export function restoreSessionState(dataDir, sessionId, workspaceDir) {
|
|
86
|
+
export function restoreSessionState(dataDir, sessionId, workspaceDir, tenantId = 'default') {
|
|
79
87
|
try {
|
|
80
|
-
const srcDir = sessionStateDir(dataDir, sessionId);
|
|
88
|
+
const srcDir = sessionStateDir(dataDir, sessionId, tenantId);
|
|
81
89
|
const srcWorkspace = join(srcDir, WORKSPACE_DIR);
|
|
82
90
|
if (!existsSync(srcWorkspace)) {
|
|
83
91
|
return false;
|
|
@@ -94,23 +102,23 @@ export function restoreSessionState(dataDir, sessionId, workspaceDir) {
|
|
|
94
102
|
/**
|
|
95
103
|
* Check if persisted state exists for a session.
|
|
96
104
|
*/
|
|
97
|
-
export function hasPersistedState(dataDir, sessionId) {
|
|
98
|
-
const srcWorkspace = join(sessionStateDir(dataDir, sessionId), WORKSPACE_DIR);
|
|
105
|
+
export function hasPersistedState(dataDir, sessionId, tenantId = 'default') {
|
|
106
|
+
const srcWorkspace = join(sessionStateDir(dataDir, sessionId, tenantId), WORKSPACE_DIR);
|
|
99
107
|
return existsSync(srcWorkspace);
|
|
100
108
|
}
|
|
101
109
|
/**
|
|
102
110
|
* Delete persisted state for a session.
|
|
103
111
|
*/
|
|
104
|
-
export function deleteSessionState(dataDir, sessionId) {
|
|
105
|
-
const dir = sessionStateDir(dataDir, sessionId);
|
|
112
|
+
export function deleteSessionState(dataDir, sessionId, tenantId = 'default') {
|
|
113
|
+
const dir = sessionStateDir(dataDir, sessionId, tenantId);
|
|
106
114
|
rmSync(dir, { recursive: true, force: true });
|
|
107
115
|
}
|
|
108
116
|
/**
|
|
109
117
|
* Read metadata for a persisted session state.
|
|
110
118
|
*/
|
|
111
|
-
export function getStateMetadata(dataDir, sessionId) {
|
|
119
|
+
export function getStateMetadata(dataDir, sessionId, tenantId = 'default') {
|
|
112
120
|
try {
|
|
113
|
-
const metaPath = join(sessionStateDir(dataDir, sessionId), METADATA_FILE);
|
|
121
|
+
const metaPath = join(sessionStateDir(dataDir, sessionId, tenantId), METADATA_FILE);
|
|
114
122
|
if (!existsSync(metaPath))
|
|
115
123
|
return null;
|
|
116
124
|
return JSON.parse(readFileSync(metaPath, 'utf-8'));
|
|
@@ -125,15 +133,15 @@ export function getStateMetadata(dataDir, sessionId) {
|
|
|
125
133
|
* Returns true on success, false if no store configured or upload fails.
|
|
126
134
|
* Best-effort: logs errors, doesn't throw.
|
|
127
135
|
*/
|
|
128
|
-
export async function syncStateToCloud(dataDir, sessionId) {
|
|
136
|
+
export async function syncStateToCloud(dataDir, sessionId, tenantId = 'default') {
|
|
129
137
|
try {
|
|
130
138
|
const store = await getSnapshotStore();
|
|
131
139
|
if (!store)
|
|
132
140
|
return false;
|
|
133
|
-
const srcDir = join(sessionStateDir(dataDir, sessionId), WORKSPACE_DIR);
|
|
141
|
+
const srcDir = join(sessionStateDir(dataDir, sessionId, tenantId), WORKSPACE_DIR);
|
|
134
142
|
if (!existsSync(srcDir))
|
|
135
143
|
return false;
|
|
136
|
-
const tarPath = join(sessionStateDir(dataDir, sessionId), 'workspace.tar.gz');
|
|
144
|
+
const tarPath = join(sessionStateDir(dataDir, sessionId, tenantId), 'workspace.tar.gz');
|
|
137
145
|
try {
|
|
138
146
|
execSync(`tar czf ${JSON.stringify(tarPath)} -C ${JSON.stringify(srcDir)} .`, {
|
|
139
147
|
stdio: 'pipe',
|
|
@@ -159,12 +167,12 @@ export async function syncStateToCloud(dataDir, sessionId) {
|
|
|
159
167
|
* Download workspace tarball from cloud storage and extract into the local persist directory.
|
|
160
168
|
* Returns true if state was restored, false if store not configured or key not found.
|
|
161
169
|
*/
|
|
162
|
-
export async function restoreStateFromCloud(dataDir, sessionId) {
|
|
170
|
+
export async function restoreStateFromCloud(dataDir, sessionId, tenantId = 'default') {
|
|
163
171
|
try {
|
|
164
172
|
const store = await getSnapshotStore();
|
|
165
173
|
if (!store)
|
|
166
174
|
return false;
|
|
167
|
-
const stateDir = sessionStateDir(dataDir, sessionId);
|
|
175
|
+
const stateDir = sessionStateDir(dataDir, sessionId, tenantId);
|
|
168
176
|
const tarPath = join(stateDir, 'workspace.tar.gz');
|
|
169
177
|
const destDir = join(stateDir, WORKSPACE_DIR);
|
|
170
178
|
mkdirSync(stateDir, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-persistence.js","sourceRoot":"","sources":["../src/state-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,6DAA6D;AAC7D,wEAAwE;AACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,cAAc;IACd,MAAM;IACN,aAAa;IACb,QAAQ;IACR,MAAM;IACN,aAAa;IACb,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,SAAS,eAAe,CAAC,OAAe,EAAE,SAAiB;
|
|
1
|
+
{"version":3,"file":"state-persistence.js","sourceRoot":"","sources":["../src/state-persistence.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ash-ai/sandbox",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,20 +11,21 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
|
-
"dist"
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md"
|
|
15
16
|
],
|
|
16
17
|
"publishConfig": {
|
|
17
18
|
"access": "public"
|
|
18
19
|
},
|
|
19
20
|
"repository": {
|
|
20
21
|
"type": "git",
|
|
21
|
-
"url": "https://github.com/ash-ai/ash.git",
|
|
22
|
+
"url": "https://github.com/ash-ai-org/ash-ai.git",
|
|
22
23
|
"directory": "packages/sandbox"
|
|
23
24
|
},
|
|
24
25
|
"license": "MIT",
|
|
25
26
|
"description": "Sandbox management: process spawning, pool, bridge client, resource limits, state persistence",
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"@ash-ai/shared": "0.0.
|
|
28
|
+
"@ash-ai/shared": "0.0.2"
|
|
28
29
|
},
|
|
29
30
|
"peerDependencies": {
|
|
30
31
|
"@aws-sdk/client-s3": "^3.700.0",
|