@right-link/paperclip-plugin-codex-remote 0.3.1
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/LICENSE +21 -0
- package/README.md +77 -0
- package/dist/cli/format-event.d.ts +2 -0
- package/dist/cli/format-event.d.ts.map +1 -0
- package/dist/cli/format-event.js +213 -0
- package/dist/cli/format-event.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/quota-probe.d.ts +3 -0
- package/dist/cli/quota-probe.d.ts.map +1 -0
- package/dist/cli/quota-probe.js +97 -0
- package/dist/cli/quota-probe.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/server/adapter.d.ts +16 -0
- package/dist/server/adapter.d.ts.map +1 -0
- package/dist/server/adapter.js +157 -0
- package/dist/server/adapter.js.map +1 -0
- package/dist/server/adapter.test.d.ts +2 -0
- package/dist/server/adapter.test.d.ts.map +1 -0
- package/dist/server/adapter.test.js +84 -0
- package/dist/server/adapter.test.js.map +1 -0
- package/dist/server/codex-args.d.ts +13 -0
- package/dist/server/codex-args.d.ts.map +1 -0
- package/dist/server/codex-args.js +60 -0
- package/dist/server/codex-args.js.map +1 -0
- package/dist/server/codex-args.test.d.ts +2 -0
- package/dist/server/codex-args.test.d.ts.map +1 -0
- package/dist/server/codex-args.test.js +94 -0
- package/dist/server/codex-args.test.js.map +1 -0
- package/dist/server/codex-home.d.ts +47 -0
- package/dist/server/codex-home.d.ts.map +1 -0
- package/dist/server/codex-home.js +378 -0
- package/dist/server/codex-home.js.map +1 -0
- package/dist/server/codex-home.test.d.ts +2 -0
- package/dist/server/codex-home.test.d.ts.map +1 -0
- package/dist/server/codex-home.test.js +244 -0
- package/dist/server/codex-home.test.js.map +1 -0
- package/dist/server/execute.d.ts +16 -0
- package/dist/server/execute.d.ts.map +1 -0
- package/dist/server/execute.js +906 -0
- package/dist/server/execute.js.map +1 -0
- package/dist/server/execute.remote.test.d.ts +2 -0
- package/dist/server/execute.remote.test.d.ts.map +1 -0
- package/dist/server/execute.remote.test.js +487 -0
- package/dist/server/execute.remote.test.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +57 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/parse.d.ts +22 -0
- package/dist/server/parse.d.ts.map +1 -0
- package/dist/server/parse.js +213 -0
- package/dist/server/parse.js.map +1 -0
- package/dist/server/parse.test.d.ts +2 -0
- package/dist/server/parse.test.d.ts.map +1 -0
- package/dist/server/parse.test.js +107 -0
- package/dist/server/parse.test.js.map +1 -0
- package/dist/server/quota-spawn-error.test.d.ts +2 -0
- package/dist/server/quota-spawn-error.test.d.ts.map +1 -0
- package/dist/server/quota-spawn-error.test.js +77 -0
- package/dist/server/quota-spawn-error.test.js.map +1 -0
- package/dist/server/quota.d.ts +64 -0
- package/dist/server/quota.d.ts.map +1 -0
- package/dist/server/quota.js +432 -0
- package/dist/server/quota.js.map +1 -0
- package/dist/server/sandbox-env.d.ts +4 -0
- package/dist/server/sandbox-env.d.ts.map +1 -0
- package/dist/server/sandbox-env.js +23 -0
- package/dist/server/sandbox-env.js.map +1 -0
- package/dist/server/skills.d.ts +8 -0
- package/dist/server/skills.d.ts.map +1 -0
- package/dist/server/skills.js +24 -0
- package/dist/server/skills.js.map +1 -0
- package/dist/server/tailscale.d.ts +24 -0
- package/dist/server/tailscale.d.ts.map +1 -0
- package/dist/server/tailscale.js +95 -0
- package/dist/server/tailscale.js.map +1 -0
- package/dist/server/test.d.ts +3 -0
- package/dist/server/test.d.ts.map +1 -0
- package/dist/server/test.js +811 -0
- package/dist/server/test.js.map +1 -0
- package/dist/server/test.remote.test.d.ts +2 -0
- package/dist/server/test.remote.test.d.ts.map +1 -0
- package/dist/server/test.remote.test.js +257 -0
- package/dist/server/test.remote.test.js.map +1 -0
- package/dist/ui/build-config.d.ts +3 -0
- package/dist/ui/build-config.d.ts.map +1 -0
- package/dist/ui/build-config.js +113 -0
- package/dist/ui/build-config.js.map +1 -0
- package/dist/ui/build-config.test.d.ts +2 -0
- package/dist/ui/build-config.test.d.ts.map +1 -0
- package/dist/ui/build-config.test.js +49 -0
- package/dist/ui/build-config.test.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/parse-stdout.d.ts +3 -0
- package/dist/ui/parse-stdout.d.ts.map +1 -0
- package/dist/ui/parse-stdout.js +261 -0
- package/dist/ui/parse-stdout.js.map +1 -0
- package/dist/ui/parse-stdout.test.d.ts +2 -0
- package/dist/ui/parse-stdout.test.d.ts.map +1 -0
- package/dist/ui/parse-stdout.test.js +77 -0
- package/dist/ui/parse-stdout.test.js.map +1 -0
- package/dist/ui-parser.d.ts +2 -0
- package/dist/ui-parser.d.ts.map +1 -0
- package/dist/ui-parser.js +245 -0
- package/dist/ui-parser.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { runAdapterExecutionTargetShellCommand, } from "@paperclipai/adapter-utils/execution-target";
|
|
2
|
+
// Adapter-driven Tailscale bring-up.
|
|
3
|
+
//
|
|
4
|
+
// Ported from the Cloudflare bridge Worker's `ensureTailscale` +
|
|
5
|
+
// `withTailscaleProxyEnv` so the sandbox provider/Worker can stay stock. The
|
|
6
|
+
// sandbox image ships `tailscale` + the `tailscale-up` helper; the Tailscale
|
|
7
|
+
// auth key arrives through the environment's env vars (Paperclip
|
|
8
|
+
// `envVars` → adapter `config.env`); and codex_remote brings the tailnet up
|
|
9
|
+
// itself before running Codex, then routes Codex's traffic through the
|
|
10
|
+
// userspace proxy.
|
|
11
|
+
const TAILSCALE_SOCKS_PROXY = "socks5://127.0.0.1:1055";
|
|
12
|
+
const TAILSCALE_HTTP_PROXY = "http://127.0.0.1:1056";
|
|
13
|
+
const TAILSCALE_PROXY_ENV = {
|
|
14
|
+
ALL_PROXY: TAILSCALE_SOCKS_PROXY,
|
|
15
|
+
all_proxy: TAILSCALE_SOCKS_PROXY,
|
|
16
|
+
HTTP_PROXY: TAILSCALE_HTTP_PROXY,
|
|
17
|
+
http_proxy: TAILSCALE_HTTP_PROXY,
|
|
18
|
+
HTTPS_PROXY: TAILSCALE_HTTP_PROXY,
|
|
19
|
+
https_proxy: TAILSCALE_HTTP_PROXY,
|
|
20
|
+
};
|
|
21
|
+
// Keep localhost direct so the Paperclip callback bridge (127.0.0.1) is never
|
|
22
|
+
// routed through the tailnet proxy.
|
|
23
|
+
const NO_PROXY_LOCAL = ["127.0.0.1", "localhost", "::1"];
|
|
24
|
+
function nonEmpty(value) {
|
|
25
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
26
|
+
}
|
|
27
|
+
export function readTailscaleAuthKey(envConfig) {
|
|
28
|
+
return nonEmpty(envConfig.TAILSCALE_AUTHKEY);
|
|
29
|
+
}
|
|
30
|
+
function mergeNoProxy(existing) {
|
|
31
|
+
const values = new Set((existing ?? "")
|
|
32
|
+
.split(",")
|
|
33
|
+
.map((value) => value.trim())
|
|
34
|
+
.filter(Boolean));
|
|
35
|
+
for (const value of NO_PROXY_LOCAL)
|
|
36
|
+
values.add(value);
|
|
37
|
+
return Array.from(values).join(",");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Mutates `env` in place to route outbound traffic through the sandbox's
|
|
41
|
+
* userspace-Tailscale proxy, leaving localhost direct. Mirrors the bridge
|
|
42
|
+
* Worker's `withTailscaleProxyEnv`.
|
|
43
|
+
*/
|
|
44
|
+
export function applyTailscaleProxyEnv(env) {
|
|
45
|
+
Object.assign(env, TAILSCALE_PROXY_ENV);
|
|
46
|
+
const noProxy = mergeNoProxy(env.NO_PROXY ?? env.no_proxy);
|
|
47
|
+
env.NO_PROXY = noProxy;
|
|
48
|
+
env.no_proxy = noProxy;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Brings up Tailscale inside a remote sandbox by running the image's
|
|
52
|
+
* `tailscale-up` helper with the auth key from the environment's env vars.
|
|
53
|
+
* No-op unless the target is a sandbox and `TAILSCALE_AUTHKEY` is set. Throws
|
|
54
|
+
* on failure so a misconfigured tailnet stops the run before Codex tries (and
|
|
55
|
+
* fails) to reach the model provider.
|
|
56
|
+
*/
|
|
57
|
+
export async function ensureSandboxTailscaleUp(input) {
|
|
58
|
+
const target = input.target;
|
|
59
|
+
if (!target || target.kind !== "remote" || target.transport !== "sandbox")
|
|
60
|
+
return false;
|
|
61
|
+
const authKey = readTailscaleAuthKey(input.envConfig);
|
|
62
|
+
if (!authKey)
|
|
63
|
+
return false;
|
|
64
|
+
const env = { TAILSCALE_AUTHKEY: authKey };
|
|
65
|
+
const hostname = nonEmpty(input.envConfig.TAILSCALE_HOSTNAME);
|
|
66
|
+
if (hostname)
|
|
67
|
+
env.TAILSCALE_HOSTNAME = hostname;
|
|
68
|
+
const extraArgs = nonEmpty(input.envConfig.TAILSCALE_EXTRA_ARGS);
|
|
69
|
+
if (extraArgs)
|
|
70
|
+
env.TAILSCALE_EXTRA_ARGS = extraArgs;
|
|
71
|
+
const script = [
|
|
72
|
+
"set -eu",
|
|
73
|
+
"if ! command -v tailscale-up >/dev/null 2>&1; then",
|
|
74
|
+
' echo "tailscale-up helper not found in sandbox image" >&2',
|
|
75
|
+
" exit 127",
|
|
76
|
+
"fi",
|
|
77
|
+
"tailscale-up",
|
|
78
|
+
].join("\n");
|
|
79
|
+
const result = await runAdapterExecutionTargetShellCommand(input.runId, target, script, {
|
|
80
|
+
cwd: input.cwd,
|
|
81
|
+
env,
|
|
82
|
+
timeoutSec: Math.min(Math.max(input.timeoutSec, 1), 60),
|
|
83
|
+
graceSec: 5,
|
|
84
|
+
onLog: input.onLog,
|
|
85
|
+
});
|
|
86
|
+
if (result.timedOut) {
|
|
87
|
+
throw new Error("Timed out bringing up Tailscale in the sandbox before starting Codex.");
|
|
88
|
+
}
|
|
89
|
+
if ((result.exitCode ?? 1) !== 0) {
|
|
90
|
+
const detail = [result.stderr.trim(), result.stdout.trim()].filter(Boolean).join("\n");
|
|
91
|
+
throw new Error(`Failed to bring up Tailscale in the sandbox${detail ? `: ${detail}` : "."}`);
|
|
92
|
+
}
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=tailscale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailscale.js","sourceRoot":"","sources":["../../src/server/tailscale.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/server/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AA2hBpC,wBAAsB,eAAe,CACnC,GAAG,EAAE,6BAA6B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAuXvC"}
|