@vybestack/llxprt-code 0.9.0 → 0.10.0-nightly.260304.84decda38
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 +14 -11
- package/dist/package.json +3 -3
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/utils/sandbox-ssh.test.js +73 -50
- package/dist/src/utils/sandbox-ssh.test.js.map +1 -1
- package/dist/src/utils/sandbox.d.ts +15 -3
- package/dist/src/utils/sandbox.js +61 -47
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
<h1>
|
|
2
|
+
<img src="docs/assets/llxprt.svg" alt="LLxprt logo" width="42" />
|
|
3
|
+
<a href="https://vybestack.dev/llxprt-code.html">LLxprt Code</a>
|
|
4
|
+
</h1>
|
|
2
5
|
|
|
3
6
|
[](https://github.com/vybestack/llxprt-code/actions/workflows/ci.yml)
|
|
4
|
-
[](https://discord.gg/Wc6dZqWWYv) 
|
|
5
8
|
|
|
6
9
|

|
|
7
10
|
|
|
@@ -45,7 +48,7 @@ Get started immediately with powerful LLM options:
|
|
|
45
48
|
- **Load Balancer Profiles**: Balance requests across providers or accounts with automatic failover
|
|
46
49
|
- **Free Tier Support**: Start coding immediately with Gemini or Qwen free tiers
|
|
47
50
|
- **Provider Flexibility**: Switch between any Anthropic, Gemini, OpenAI, Kimi, or OpenAI-compatible provider
|
|
48
|
-
- **Top Open Models**: Works seamlessly with GLM
|
|
51
|
+
- **Top Open Models**: Works seamlessly with GLM 5, Kimi K2.5, MiniMax M2.5, and Qwen 3 Coder Next
|
|
49
52
|
- **Local Models**: Run models locally with LM Studio, llama.cpp for complete privacy
|
|
50
53
|
- **Privacy First**: No telemetry by default, local processing available
|
|
51
54
|
- **Subagent Flexibility**: Create agents with different models, providers, or settings
|
|
@@ -103,7 +106,7 @@ llxprt
|
|
|
103
106
|
- **Multi-Account Failover** - Configure multiple OAuth buckets that failover automatically on rate limits
|
|
104
107
|
- **Load Balancer Profiles** - Balance across providers/accounts with roundrobin or failover policies
|
|
105
108
|
- **Extensive Provider Support** - Anthropic, Gemini, OpenAI, Kimi, and any OpenAI-compatible provider [**Provider Guide →**](./docs/providers/quick-reference.md)
|
|
106
|
-
- **Top Open Models** - GLM
|
|
109
|
+
- **Top Open Models** - GLM 5, Kimi K2.5, MiniMax M2.5, Qwen 3 Coder Next
|
|
107
110
|
- **Local Model Support** - LM Studio, llama.cpp, Ollama for complete privacy
|
|
108
111
|
- **Profile System** - Save provider configurations and model settings
|
|
109
112
|
- **Advanced Subagents** - Isolated AI assistants with different models/providers
|
|
@@ -138,7 +141,7 @@ llxprt "Generate unit tests for payment module" > tests/payment.test.js
|
|
|
138
141
|
|
|
139
142
|
LLxprt Code works seamlessly with the best open-weight models:
|
|
140
143
|
|
|
141
|
-
### Kimi K2
|
|
144
|
+
### Kimi K2.5
|
|
142
145
|
|
|
143
146
|
- **Context Window**: 262,144 tokens
|
|
144
147
|
- **Architecture**: Trillion-parameter MoE (32B active)
|
|
@@ -147,27 +150,27 @@ LLxprt Code works seamlessly with the best open-weight models:
|
|
|
147
150
|
|
|
148
151
|
```bash
|
|
149
152
|
/provider kimi
|
|
150
|
-
/model kimi-
|
|
153
|
+
/model kimi-for-coding
|
|
151
154
|
# Or via Synthetic/Chutes:
|
|
152
155
|
/provider synthetic
|
|
153
|
-
/model hf:moonshotai/Kimi-K2
|
|
156
|
+
/model hf:moonshotai/Kimi-K2.5
|
|
154
157
|
```
|
|
155
158
|
|
|
156
|
-
### GLM
|
|
159
|
+
### GLM 5
|
|
157
160
|
|
|
158
161
|
- **Context Window**: 200,000 tokens
|
|
159
162
|
- **Max Output**: 131,072 tokens
|
|
160
163
|
- **Architecture**: Mixture-of-Experts with 355B total parameters (32B active)
|
|
161
164
|
- **Strengths**: Coding, multi-step planning, tool integration
|
|
162
165
|
|
|
163
|
-
### MiniMax M2.
|
|
166
|
+
### MiniMax M2.5
|
|
164
167
|
|
|
165
168
|
- **Context Window**: 196,608 tokens
|
|
166
169
|
- **Architecture**: MoE with 230B total parameters (10B active)
|
|
167
170
|
- **Strengths**: Coding workflows, multi-step agents, tool calling
|
|
168
171
|
- **Cost**: Only 8% of Claude Sonnet, ~2x faster
|
|
169
172
|
|
|
170
|
-
###
|
|
173
|
+
### Qwen 3 Coder Next
|
|
171
174
|
|
|
172
175
|
- **Context Window**: 262,144 tokens
|
|
173
176
|
- **Max Output**: 65,536 tokens
|
|
@@ -211,7 +214,7 @@ Create specialized AI assistants with isolated contexts and different configurat
|
|
|
211
214
|
Each subagent can be configured with:
|
|
212
215
|
|
|
213
216
|
- **Different providers** (Gemini vs Anthropic vs Qwen vs Local)
|
|
214
|
-
- **Different models** (Flash vs Sonnet vs GLM
|
|
217
|
+
- **Different models** (Flash vs Sonnet vs GLM 5 vs Custom)
|
|
215
218
|
- **Different tool access** (Restrict or allow specific tools)
|
|
216
219
|
- **Different settings** (Temperature, timeouts, max turns)
|
|
217
220
|
- **Isolated runtime context** (No memory or state crossover)
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vybestack/llxprt-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0-nightly.260304.84decda38",
|
|
4
4
|
"description": "LLxprt Code",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"dist"
|
|
35
35
|
],
|
|
36
36
|
"config": {
|
|
37
|
-
"sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.
|
|
37
|
+
"sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.10.0-nightly.260304.84decda38"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@agentclientprotocol/sdk": "^0.14.1",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@iarna/toml": "^2.2.5",
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
46
46
|
"@types/update-notifier": "^6.0.8",
|
|
47
|
-
"@vybestack/llxprt-code-core": "0.
|
|
47
|
+
"@vybestack/llxprt-code-core": "0.10.0-nightly.260304.84decda38",
|
|
48
48
|
"ansi-regex": "^6.2.2",
|
|
49
49
|
"chalk": "^5.3.0",
|
|
50
50
|
"cli-spinners": "2.9.2",
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
7
7
|
import * as child_process from 'node:child_process';
|
|
8
8
|
import fs from 'node:fs';
|
|
9
|
+
import os from 'node:os';
|
|
9
10
|
vi.mock('node:child_process');
|
|
10
|
-
|
|
11
|
+
vi.mock('node:fs/promises');
|
|
12
|
+
import { setupSshAgentForwarding, setupSshAgentDockerMacOS, setupSshAgentDockerLinux, getPodmanMachineConnection, setupSshAgentPodmanMacOS, setupCredentialProxyPodmanMacOS, setupCredentialProxyDockerMacOS, createTcpToUdsBridge, } from './sandbox.js';
|
|
11
13
|
describe('setupSshAgentDockerMacOS', () => {
|
|
12
14
|
beforeEach(() => {
|
|
13
15
|
vi.resetAllMocks();
|
|
@@ -15,31 +17,28 @@ describe('setupSshAgentDockerMacOS', () => {
|
|
|
15
17
|
afterEach(() => {
|
|
16
18
|
vi.restoreAllMocks();
|
|
17
19
|
});
|
|
18
|
-
it('
|
|
19
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('Docker Desktop'));
|
|
20
|
+
it('uses TCP bridge and returns cleanup and entrypointPrefix', async () => {
|
|
20
21
|
const args = [];
|
|
21
|
-
await setupSshAgentDockerMacOS(args);
|
|
22
|
-
|
|
23
|
-
expect(
|
|
24
|
-
expect(
|
|
22
|
+
const result = await setupSshAgentDockerMacOS(args, '/tmp/auth.sock');
|
|
23
|
+
expect(result.cleanup).toBeDefined();
|
|
24
|
+
expect(result.entrypointPrefix).toBeDefined();
|
|
25
|
+
expect(result.entrypointPrefix).toContain('TCP4:host.docker.internal:');
|
|
26
|
+
expect(args).toContain('SSH_AUTH_SOCK=/tmp/ssh-agent');
|
|
27
|
+
result.cleanup();
|
|
25
28
|
});
|
|
26
|
-
it('warns and
|
|
27
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('Alpine Linux'));
|
|
29
|
+
it('warns and returns empty when no sshAuthSock provided', async () => {
|
|
28
30
|
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
29
31
|
const args = [];
|
|
30
|
-
await setupSshAgentDockerMacOS(args);
|
|
32
|
+
const result = await setupSshAgentDockerMacOS(args);
|
|
33
|
+
expect(result).toEqual({});
|
|
31
34
|
expect(args).toHaveLength(0);
|
|
32
|
-
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('
|
|
35
|
+
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('SSH agent forwarding disabled'));
|
|
33
36
|
});
|
|
34
|
-
it('
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const args = [];
|
|
40
|
-
await setupSshAgentDockerMacOS(args);
|
|
41
|
-
expect(args).toHaveLength(0);
|
|
42
|
-
expect(warnSpy).toHaveBeenCalled();
|
|
37
|
+
it('does not call docker info', async () => {
|
|
38
|
+
await setupSshAgentDockerMacOS([], '/tmp/auth.sock').then((r) => r.cleanup?.());
|
|
39
|
+
const execCalls = vi.mocked(child_process.execSync).mock.calls;
|
|
40
|
+
const dockerInfoCalls = execCalls.filter((c) => String(c[0]).includes('docker info'));
|
|
41
|
+
expect(dockerInfoCalls).toHaveLength(0);
|
|
43
42
|
});
|
|
44
43
|
});
|
|
45
44
|
describe('getPodmanMachineConnection', () => {
|
|
@@ -533,40 +532,14 @@ describe('setupCredentialProxyDockerMacOS', () => {
|
|
|
533
532
|
result.cleanup();
|
|
534
533
|
});
|
|
535
534
|
});
|
|
536
|
-
describe('setupSshAgentDockerMacOS -
|
|
535
|
+
describe('setupSshAgentDockerMacOS - TCP bridge', () => {
|
|
537
536
|
beforeEach(() => {
|
|
538
537
|
vi.resetAllMocks();
|
|
539
538
|
});
|
|
540
539
|
afterEach(() => {
|
|
541
540
|
vi.restoreAllMocks();
|
|
542
541
|
});
|
|
543
|
-
it('
|
|
544
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('Docker Desktop'));
|
|
545
|
-
const args = [];
|
|
546
|
-
const result = await setupSshAgentDockerMacOS(args, '/tmp/auth.sock');
|
|
547
|
-
const vol = args.find((a) => a.includes('/run/host-services/ssh-auth.sock'));
|
|
548
|
-
expect(vol).toBeDefined();
|
|
549
|
-
expect(args).toContain('SSH_AUTH_SOCK=/ssh-agent');
|
|
550
|
-
expect(result).toEqual({});
|
|
551
|
-
});
|
|
552
|
-
it('falls back to TCP bridge when Docker Desktop not detected', async () => {
|
|
553
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('Alpine Linux'));
|
|
554
|
-
const args = [];
|
|
555
|
-
const result = await setupSshAgentDockerMacOS(args, '/tmp/auth.sock');
|
|
556
|
-
expect(result.cleanup).toBeDefined();
|
|
557
|
-
expect(result.entrypointPrefix).toBeDefined();
|
|
558
|
-
expect(args).toContain('SSH_AUTH_SOCK=/tmp/ssh-agent');
|
|
559
|
-
result.cleanup();
|
|
560
|
-
});
|
|
561
|
-
it('returns SshAgentResult with cleanup and entrypointPrefix on fallback', async () => {
|
|
562
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('OrbStack'));
|
|
563
|
-
const result = await setupSshAgentDockerMacOS([], '/tmp/auth.sock');
|
|
564
|
-
expect(result.cleanup).toBeDefined();
|
|
565
|
-
expect(result.entrypointPrefix).toBeDefined();
|
|
566
|
-
result.cleanup();
|
|
567
|
-
});
|
|
568
|
-
it('fallback socat command uses host.docker.internal', async () => {
|
|
569
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('colima'));
|
|
542
|
+
it('socat command uses host.docker.internal', async () => {
|
|
570
543
|
const result = await setupSshAgentDockerMacOS([], '/tmp/auth.sock');
|
|
571
544
|
expect(result.entrypointPrefix).toContain('command -v socat');
|
|
572
545
|
expect(result.entrypointPrefix).toContain('rm -f /tmp/ssh-agent');
|
|
@@ -574,12 +547,62 @@ describe('setupSshAgentDockerMacOS - fallback', () => {
|
|
|
574
547
|
expect(result.entrypointPrefix).not.toContain('127.0.0.1');
|
|
575
548
|
result.cleanup();
|
|
576
549
|
});
|
|
577
|
-
it('
|
|
578
|
-
vi.mocked(child_process.execSync).mockReturnValue(Buffer.from('colima'));
|
|
550
|
+
it('does NOT add --network host', async () => {
|
|
579
551
|
const args = [];
|
|
580
552
|
const result = await setupSshAgentDockerMacOS(args, '/tmp/auth.sock');
|
|
581
553
|
expect(args).not.toContain('--network');
|
|
582
554
|
result.cleanup?.();
|
|
583
555
|
});
|
|
556
|
+
it('cleanup is idempotent', async () => {
|
|
557
|
+
const result = await setupSshAgentDockerMacOS([], '/tmp/auth.sock');
|
|
558
|
+
result.cleanup();
|
|
559
|
+
result.cleanup();
|
|
560
|
+
});
|
|
561
|
+
});
|
|
562
|
+
describe('setupSshAgentDockerLinux', () => {
|
|
563
|
+
const origGetuid = process.getuid;
|
|
564
|
+
beforeEach(() => {
|
|
565
|
+
vi.resetAllMocks();
|
|
566
|
+
});
|
|
567
|
+
afterEach(() => {
|
|
568
|
+
process.getuid = origGetuid;
|
|
569
|
+
vi.restoreAllMocks();
|
|
570
|
+
});
|
|
571
|
+
it('uses direct bind-mount when host uid is 1000', async () => {
|
|
572
|
+
process.getuid = () => 1000;
|
|
573
|
+
const args = [];
|
|
574
|
+
const result = await setupSshAgentDockerLinux(args, '/tmp/auth.sock');
|
|
575
|
+
expect(result).toEqual({});
|
|
576
|
+
expect(args).toContain('SSH_AUTH_SOCK=/ssh-agent');
|
|
577
|
+
const vol = args.find((a) => a.includes('/tmp/auth.sock:/ssh-agent'));
|
|
578
|
+
expect(vol).toBeDefined();
|
|
579
|
+
});
|
|
580
|
+
it('falls back to TCP bridge when host uid differs from container uid', async () => {
|
|
581
|
+
process.getuid = () => 501;
|
|
582
|
+
// shouldUseCurrentUserInSandbox returns false when os-release is unavailable
|
|
583
|
+
const { readFile } = await import('node:fs/promises');
|
|
584
|
+
vi.mocked(readFile).mockRejectedValue(new Error('not found'));
|
|
585
|
+
vi.spyOn(os, 'platform').mockReturnValue('linux');
|
|
586
|
+
const args = [];
|
|
587
|
+
const result = await setupSshAgentDockerLinux(args, '/tmp/auth.sock');
|
|
588
|
+
expect(result.cleanup).toBeDefined();
|
|
589
|
+
expect(result.entrypointPrefix).toContain('TCP4:host.docker.internal:');
|
|
590
|
+
expect(args).toContain('--add-host=host.docker.internal:host-gateway');
|
|
591
|
+
expect(args).toContain('SSH_AUTH_SOCK=/tmp/ssh-agent');
|
|
592
|
+
result.cleanup();
|
|
593
|
+
});
|
|
594
|
+
it('uses direct bind-mount on Debian/Ubuntu (shouldUseCurrentUserInSandbox)', async () => {
|
|
595
|
+
process.getuid = () => 501;
|
|
596
|
+
const { readFile } = await import('node:fs/promises');
|
|
597
|
+
vi.mocked(readFile).mockResolvedValue(Buffer.from('ID=ubuntu' + String.fromCharCode(10) + 'VERSION_ID="22.04"'));
|
|
598
|
+
vi.spyOn(os, 'platform').mockReturnValue('linux');
|
|
599
|
+
// shouldUseCurrentUserInSandbox logs an INFO message via console.error on Debian/Ubuntu
|
|
600
|
+
const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
601
|
+
const args = [];
|
|
602
|
+
const result = await setupSshAgentDockerLinux(args, '/tmp/auth.sock');
|
|
603
|
+
expect(result).toEqual({});
|
|
604
|
+
expect(args).toContain('SSH_AUTH_SOCK=/ssh-agent');
|
|
605
|
+
expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Defaulting to use current user UID/GID'));
|
|
606
|
+
});
|
|
584
607
|
});
|
|
585
608
|
//# sourceMappingURL=sandbox-ssh.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ssh.test.js","sourceRoot":"","sources":["../../../src/utils/sandbox-ssh.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox-ssh.test.js","sourceRoot":"","sources":["../../../src/utils/sandbox-ssh.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,12 +52,24 @@ export declare function createTcpToUdsBridge(udsPath: string): Promise<{
|
|
|
52
52
|
server: net.Server;
|
|
53
53
|
}>;
|
|
54
54
|
/**
|
|
55
|
-
* Sets up SSH agent forwarding for Docker on macOS
|
|
56
|
-
* magic socket (/run/host-services/ssh-auth.sock).
|
|
55
|
+
* Sets up SSH agent forwarding for Docker on macOS via a TCP-to-UDS bridge.
|
|
57
56
|
*
|
|
58
|
-
*
|
|
57
|
+
* Docker Desktop's magic socket (/run/host-services/ssh-auth.sock) is mounted
|
|
58
|
+
* as root:root 0660 inside the VM, which is inaccessible to the non-root
|
|
59
|
+
* container user (uid 1000 'node'). Instead, we use the same TCP bridge
|
|
60
|
+
* approach that works for Podman: a host-side Node.js TCP server proxies
|
|
61
|
+
* connections to the host SSH_AUTH_SOCK, and socat inside the container
|
|
62
|
+
* connects back via host.docker.internal.
|
|
59
63
|
*/
|
|
60
64
|
export declare function setupSshAgentDockerMacOS(args: string[], sshAuthSock?: string): Promise<SshAgentResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Sets up SSH agent forwarding for Docker on Linux.
|
|
67
|
+
*
|
|
68
|
+
* Tries direct socket bind-mount first (works when container uid matches the
|
|
69
|
+
* socket owner). Falls back to the TCP bridge when the socket permissions
|
|
70
|
+
* would prevent the container user from connecting.
|
|
71
|
+
*/
|
|
72
|
+
export declare function setupSshAgentDockerLinux(args: string[], sshAuthSock: string): Promise<SshAgentResult>;
|
|
61
73
|
/**
|
|
62
74
|
* Parses the default Podman machine connection from `podman system connection list`.
|
|
63
75
|
* Returns SSH connection details needed for the reverse tunnel.
|
|
@@ -120,6 +120,9 @@ export async function setupSshAgentForwarding(config, args, options = {}) {
|
|
|
120
120
|
}
|
|
121
121
|
const platform = os.platform();
|
|
122
122
|
if (platform === 'linux') {
|
|
123
|
+
if (config.command === 'docker') {
|
|
124
|
+
return setupSshAgentDockerLinux(args, sshAuthSock);
|
|
125
|
+
}
|
|
123
126
|
setupSshAgentLinux(config, args, sshAuthSock);
|
|
124
127
|
return {};
|
|
125
128
|
}
|
|
@@ -179,59 +182,70 @@ export async function createTcpToUdsBridge(udsPath) {
|
|
|
179
182
|
});
|
|
180
183
|
}
|
|
181
184
|
/**
|
|
182
|
-
* Sets up SSH agent forwarding for Docker on macOS
|
|
183
|
-
* magic socket (/run/host-services/ssh-auth.sock).
|
|
185
|
+
* Sets up SSH agent forwarding for Docker on macOS via a TCP-to-UDS bridge.
|
|
184
186
|
*
|
|
185
|
-
*
|
|
187
|
+
* Docker Desktop's magic socket (/run/host-services/ssh-auth.sock) is mounted
|
|
188
|
+
* as root:root 0660 inside the VM, which is inaccessible to the non-root
|
|
189
|
+
* container user (uid 1000 'node'). Instead, we use the same TCP bridge
|
|
190
|
+
* approach that works for Podman: a host-side Node.js TCP server proxies
|
|
191
|
+
* connections to the host SSH_AUTH_SOCK, and socat inside the container
|
|
192
|
+
* connects back via host.docker.internal.
|
|
186
193
|
*/
|
|
187
194
|
export async function setupSshAgentDockerMacOS(args, sshAuthSock) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
})
|
|
192
|
-
.toString()
|
|
193
|
-
.trim();
|
|
194
|
-
const isDesktop = /docker desktop/i.test(info);
|
|
195
|
-
if (isDesktop) {
|
|
196
|
-
const magicSocket = '/run/host-services/ssh-auth.sock';
|
|
197
|
-
args.push('--volume', `${magicSocket}:${CONTAINER_SSH_AGENT_SOCK}`);
|
|
198
|
-
args.push('--env', `SSH_AUTH_SOCK=${CONTAINER_SSH_AGENT_SOCK}`);
|
|
199
|
-
return {};
|
|
200
|
-
}
|
|
201
|
-
if (!sshAuthSock) {
|
|
202
|
-
console.warn('Docker Desktop not detected and no SSH_AUTH_SOCK available. ' +
|
|
203
|
-
'SSH agent forwarding disabled.');
|
|
204
|
-
return {};
|
|
205
|
-
}
|
|
206
|
-
const { port, server } = await createTcpToUdsBridge(sshAuthSock);
|
|
207
|
-
const containerSshAgentSock = '/tmp/ssh-agent';
|
|
208
|
-
const entrypointPrefix = `command -v socat >/dev/null 2>&1 || { echo "ERROR: socat not found — SSH agent forwarding requires socat in the sandbox image" >&2; }; ` +
|
|
209
|
-
`rm -f ${containerSshAgentSock}; ` +
|
|
210
|
-
`socat UNIX-LISTEN:${containerSshAgentSock},fork TCP4:host.docker.internal:${port} &`;
|
|
211
|
-
args.push('--env', `SSH_AUTH_SOCK=${containerSshAgentSock}`);
|
|
212
|
-
let cleanedUp = false;
|
|
213
|
-
const cleanup = () => {
|
|
214
|
-
if (cleanedUp) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
cleanedUp = true;
|
|
218
|
-
try {
|
|
219
|
-
server.close();
|
|
220
|
-
}
|
|
221
|
-
catch {
|
|
222
|
-
// ignore
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
return {
|
|
226
|
-
cleanup,
|
|
227
|
-
entrypointPrefix,
|
|
228
|
-
};
|
|
195
|
+
if (!sshAuthSock) {
|
|
196
|
+
console.warn('No SSH_AUTH_SOCK available. SSH agent forwarding disabled.');
|
|
197
|
+
return {};
|
|
229
198
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
199
|
+
return setupSshAgentDockerBridge(args, sshAuthSock);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Sets up SSH agent forwarding for Docker on Linux.
|
|
203
|
+
*
|
|
204
|
+
* Tries direct socket bind-mount first (works when container uid matches the
|
|
205
|
+
* socket owner). Falls back to the TCP bridge when the socket permissions
|
|
206
|
+
* would prevent the container user from connecting.
|
|
207
|
+
*/
|
|
208
|
+
export async function setupSshAgentDockerLinux(args, sshAuthSock) {
|
|
209
|
+
const willMatchHostUser = await shouldUseCurrentUserInSandbox();
|
|
210
|
+
const hostUid = process.getuid?.() ?? -1;
|
|
211
|
+
if (willMatchHostUser || hostUid === 1000) {
|
|
212
|
+
// Container uid will match the socket owner — direct mount works
|
|
213
|
+
setupSshAgentLinux({ command: 'docker' }, args, sshAuthSock);
|
|
233
214
|
return {};
|
|
234
215
|
}
|
|
216
|
+
// Container runs as uid 1000 but host uid differs — TCP bridge fallback
|
|
217
|
+
args.push('--add-host=host.docker.internal:host-gateway');
|
|
218
|
+
return setupSshAgentDockerBridge(args, sshAuthSock);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Shared TCP bridge setup for Docker SSH agent forwarding (macOS and Linux
|
|
222
|
+
* fallback). Creates a host-side TCP server that proxies to SSH_AUTH_SOCK,
|
|
223
|
+
* and injects a socat relay into the container entrypoint.
|
|
224
|
+
*/
|
|
225
|
+
async function setupSshAgentDockerBridge(args, sshAuthSock) {
|
|
226
|
+
const { port, server } = await createTcpToUdsBridge(sshAuthSock);
|
|
227
|
+
const containerSshAgentSock = '/tmp/ssh-agent';
|
|
228
|
+
const entrypointPrefix = `command -v socat >/dev/null 2>&1 || { echo "ERROR: socat not found — SSH agent forwarding requires socat in the sandbox image" >&2; }; ` +
|
|
229
|
+
`rm -f ${containerSshAgentSock}; ` +
|
|
230
|
+
`socat UNIX-LISTEN:${containerSshAgentSock},fork TCP4:host.docker.internal:${port} &`;
|
|
231
|
+
args.push('--env', `SSH_AUTH_SOCK=${containerSshAgentSock}`);
|
|
232
|
+
let cleanedUp = false;
|
|
233
|
+
const cleanup = () => {
|
|
234
|
+
if (cleanedUp) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
cleanedUp = true;
|
|
238
|
+
try {
|
|
239
|
+
server.close();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// ignore
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
return {
|
|
246
|
+
cleanup,
|
|
247
|
+
entrypointPrefix,
|
|
248
|
+
};
|
|
235
249
|
}
|
|
236
250
|
/**
|
|
237
251
|
* Parses the default Podman machine connection from `podman system connection list`.
|