@larkup/sandbox 0.1.3 → 0.1.4
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +26 -0
- package/.turbo/turbo-type-check.log +4 -0
- package/CHANGELOG.md +8 -0
- package/dist/providers/daytona.js +1 -1
- package/dist/registry.js +1 -1
- package/package.json +2 -2
- package/src/providers/daytona.test.ts +16 -5
- package/src/providers/daytona.ts +1 -1
- package/src/registry.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
> @larkup/sandbox@0.1.4 test /Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/packages/sandbox
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
RUN v4.1.11 /Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup/packages/sandbox
|
|
7
|
+
|
|
8
|
+
✓ src/registry.test.ts (9 tests) 3ms
|
|
9
|
+
✓ src/providers/modal.test.ts (4 tests) 10ms
|
|
10
|
+
✓ src/providers/e2b.test.ts (9 tests) 5ms
|
|
11
|
+
✓ src/providers/browserbase.test.ts (5 tests) 4ms
|
|
12
|
+
✓ src/remote-exec.test.ts (14 tests) 12ms
|
|
13
|
+
✓ src/providers/northflank.test.ts (7 tests) 26ms
|
|
14
|
+
✓ src/providers/flyio.test.ts (6 tests) 4ms
|
|
15
|
+
✓ src/providers/daytona.test.ts (5 tests) 9ms
|
|
16
|
+
✓ src/local-runner.test.ts (1 test) 191ms
|
|
17
|
+
✓ src/providers/webcontainers.test.ts (3 tests) 5ms
|
|
18
|
+
✓ src/providers/vercel.test.ts (6 tests) 35ms
|
|
19
|
+
✓ src/sandbox-manager.test.ts (2 tests) 5ms
|
|
20
|
+
✓ src/providers/cloudflare.test.ts (6 tests) 9ms
|
|
21
|
+
|
|
22
|
+
Test Files 13 passed (13)
|
|
23
|
+
Tests 77 passed (77)
|
|
24
|
+
Start at 02:57:15
|
|
25
|
+
Duration 1.60s (transform 2.39s, setup 0ms, import 4.20s, tests 320ms, environment 2ms)
|
|
26
|
+
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @larkup/sandbox
|
|
2
2
|
|
|
3
|
+
## 0.1.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 847b502: Keep global installs and updates quiet and compatible by aligning Apache Arrow with LanceDB's
|
|
8
|
+
supported peer range, shipping the marketplace TypeScript runtime loader, and using the renamed
|
|
9
|
+
Daytona SDK package. Public tarballs also scrub local project state from all traced workspaces.
|
|
10
|
+
|
|
3
11
|
## 0.1.3
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { DEFAULT_TIMEOUT_MS, failedResult, runScriptedExecution, safeCleanup, withTimeout, } from '../remote-exec.js';
|
|
12
12
|
async function loadSdk() {
|
|
13
|
-
return (await import('@
|
|
13
|
+
return (await import('@daytona/sdk'));
|
|
14
14
|
}
|
|
15
15
|
function requireFields(credentials) {
|
|
16
16
|
const apiKey = credentials.apiKey?.trim();
|
package/dist/registry.js
CHANGED
|
@@ -114,7 +114,7 @@ export const SANDBOX_PROVIDERS = {
|
|
|
114
114
|
id: 'daytona',
|
|
115
115
|
label: 'Daytona',
|
|
116
116
|
description: 'Elastic infrastructure for running AI-generated code in fast, isolated sandboxes.',
|
|
117
|
-
sdkPackage: '@
|
|
117
|
+
sdkPackage: '@daytona/sdk',
|
|
118
118
|
docsUrl: 'https://www.daytona.io/docs/en/sandboxes/',
|
|
119
119
|
icon: '/icons/daytonaio.png',
|
|
120
120
|
executionSupport: 'full',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@larkup/sandbox",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"e2b": "^2.39.0",
|
|
42
42
|
"@vercel/sandbox": "^3.0.0",
|
|
43
43
|
"modal": "^0.9.0",
|
|
44
|
-
"@
|
|
44
|
+
"@daytona/sdk": "^0.204.1",
|
|
45
45
|
"@browserbasehq/sdk": "^2.17.0",
|
|
46
46
|
"playwright-core": "^1.62.1",
|
|
47
47
|
"@fly/sprites": "^0.2.0",
|
|
@@ -5,7 +5,7 @@ const deleteMock = vi.fn();
|
|
|
5
5
|
const createMock = vi.fn();
|
|
6
6
|
const listMock = vi.fn();
|
|
7
7
|
|
|
8
|
-
vi.mock('@
|
|
8
|
+
vi.mock('@daytona/sdk', () => ({
|
|
9
9
|
Daytona: vi.fn().mockImplementation(function () {
|
|
10
10
|
return { create: createMock, list: listMock };
|
|
11
11
|
}),
|
|
@@ -18,12 +18,17 @@ beforeEach(() => {
|
|
|
18
18
|
deleteMock.mockReset();
|
|
19
19
|
createMock.mockReset();
|
|
20
20
|
listMock.mockReset();
|
|
21
|
-
createMock.mockResolvedValue({
|
|
21
|
+
createMock.mockResolvedValue({
|
|
22
|
+
process: { executeCommand: executeCommandMock },
|
|
23
|
+
delete: deleteMock,
|
|
24
|
+
});
|
|
22
25
|
});
|
|
23
26
|
|
|
24
27
|
describe('daytonaAdapter.verifyCredentials', () => {
|
|
25
28
|
it('requires an API key', async () => {
|
|
26
|
-
await expect(daytonaAdapter.verifyCredentials({})).rejects.toThrow(
|
|
29
|
+
await expect(daytonaAdapter.verifyCredentials({})).rejects.toThrow(
|
|
30
|
+
'Daytona API key is required.',
|
|
31
|
+
);
|
|
27
32
|
});
|
|
28
33
|
|
|
29
34
|
it('uses list() as the cheap credential check', async () => {
|
|
@@ -38,7 +43,10 @@ describe('daytonaAdapter.verifyCredentials', () => {
|
|
|
38
43
|
describe('daytonaAdapter.execute — merged stdout/stderr', () => {
|
|
39
44
|
it('puts successful output in stdout only', async () => {
|
|
40
45
|
executeCommandMock.mockResolvedValue({ exitCode: 0, result: 'all good\n' });
|
|
41
|
-
const result = await daytonaAdapter.execute(
|
|
46
|
+
const result = await daytonaAdapter.execute(
|
|
47
|
+
{ code: 'print(1)', language: 'python' },
|
|
48
|
+
{ apiKey: 'k' },
|
|
49
|
+
);
|
|
42
50
|
expect(result.stdout).toBe('all good\n');
|
|
43
51
|
expect(result.stderr).toBe('');
|
|
44
52
|
expect(result.exitCode).toBe(0);
|
|
@@ -46,7 +54,10 @@ describe('daytonaAdapter.execute — merged stdout/stderr', () => {
|
|
|
46
54
|
|
|
47
55
|
it('mirrors the combined output into stderr when the command fails', async () => {
|
|
48
56
|
executeCommandMock.mockResolvedValue({ exitCode: 1, result: 'Traceback...\n' });
|
|
49
|
-
const result = await daytonaAdapter.execute(
|
|
57
|
+
const result = await daytonaAdapter.execute(
|
|
58
|
+
{ code: 'raise ValueError()', language: 'python' },
|
|
59
|
+
{ apiKey: 'k' },
|
|
60
|
+
);
|
|
50
61
|
expect(result.stdout).toBe('Traceback...\n');
|
|
51
62
|
expect(result.stderr).toBe('Traceback...\n');
|
|
52
63
|
expect(result.exitCode).toBe(1);
|
package/src/providers/daytona.ts
CHANGED
|
@@ -48,7 +48,7 @@ interface DaytonaModule {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
async function loadSdk(): Promise<DaytonaModule> {
|
|
51
|
-
return (await import('@
|
|
51
|
+
return (await import('@daytona/sdk')) as unknown as DaytonaModule;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function requireFields(credentials: Record<string, string>): { apiKey: string; apiUrl?: string } {
|
package/src/registry.ts
CHANGED
|
@@ -126,7 +126,7 @@ export const SANDBOX_PROVIDERS: Record<
|
|
|
126
126
|
label: 'Daytona',
|
|
127
127
|
description:
|
|
128
128
|
'Elastic infrastructure for running AI-generated code in fast, isolated sandboxes.',
|
|
129
|
-
sdkPackage: '@
|
|
129
|
+
sdkPackage: '@daytona/sdk',
|
|
130
130
|
docsUrl: 'https://www.daytona.io/docs/en/sandboxes/',
|
|
131
131
|
icon: '/icons/daytonaio.png',
|
|
132
132
|
executionSupport: 'full',
|