@task-handoff/node-agent 0.0.31 → 0.0.33

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.
@@ -33,6 +33,15 @@ load_private_config() {
33
33
  fi
34
34
  }
35
35
 
36
+ start_node_agent_unix_proxy() {
37
+ if [ -z "${TASK_HANDOFF_NODE_AGENT_SOCKET_PATH:-}" ]; then
38
+ return
39
+ fi
40
+ node /run/task-handoff/bootstrap/node-agent-unix-proxy.mjs \
41
+ "${TASK_HANDOFF_NODE_AGENT_SOCKET_PATH}" \
42
+ "${TASK_HANDOFF_NODE_AGENT_PROXY_PORT:-19001}" &
43
+ }
44
+
36
45
  if [ -n "${TASK_HANDOFF_WORKSPACE_SUBDIRECTORY:-}" ]; then
37
46
  export TASK_HANDOFF_WORKSPACE="${TASK_HANDOFF_WORKSPACE:-/workspace}/${TASK_HANDOFF_WORKSPACE_SUBDIRECTORY}"
38
47
  unset TASK_HANDOFF_WORKSPACE_SUBDIRECTORY
@@ -40,6 +49,7 @@ fi
40
49
 
41
50
  if [ "$(id -u)" = "0" ] && [ "${TASK_HANDOFF_PRIVILEGE_DROPPED:-0}" != "1" ]; then
42
51
  load_private_config
52
+ start_node_agent_unix_proxy
43
53
  mkdir -p /data /home/agent
44
54
  chown agent:agent /data /home/agent
45
55
  if [ "${TASK_HANDOFF_WORKSPACE_MODE:-}" = "git-clone" ]; then
@@ -0,0 +1,26 @@
1
+ import http from "node:http";
2
+
3
+ const socketPath = process.argv[2];
4
+ const port = Number(process.argv[3] || "19001");
5
+ if (!socketPath || !Number.isInteger(port) || port < 1 || port > 65535) {
6
+ throw new Error("Usage: node-agent-unix-proxy.mjs <socket-path> [port]");
7
+ }
8
+
9
+ const server = http.createServer((request, response) => {
10
+ const upstream = http.request({
11
+ socketPath,
12
+ method: request.method,
13
+ path: request.url,
14
+ headers: request.headers,
15
+ }, (upstreamResponse) => {
16
+ response.writeHead(upstreamResponse.statusCode || 502, upstreamResponse.headers);
17
+ upstreamResponse.pipe(response);
18
+ });
19
+ upstream.on("error", (error) => {
20
+ if (!response.headersSent) response.writeHead(502, { "content-type": "application/json" });
21
+ response.end(JSON.stringify({ error: { code: "NODE_AGENT_CONTAINER_IPC_UNAVAILABLE", message: error.message } }));
22
+ });
23
+ request.pipe(upstream);
24
+ });
25
+
26
+ server.listen(port, "127.0.0.1");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@task-handoff/node-agent",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "description": "Prebuilt TaskHandoff node agent runtime.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "commonjs",
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "packageName": "@task-handoff/controlled-instance",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "platform": "linux",
5
5
  "arch": "universal",
6
6
  "formatVersion": 1,
7
7
  "launcherAbi": 1,
8
8
  "entrypoint": "dist/controlled-instance-cli.js",
9
- "sha256": "7515742c1c29efb81a2eef984a4eec4d4bf14f498655780772c84820dccb9ee3"
9
+ "sha256": "433e6ee69d3e4b7dd14891386fc5915453aef8f043be1000c77be9eafea85d6a"
10
10
  }
@@ -0,0 +1 @@
1
+ a10033fa7c4e158f25cf2377682ba302a33839a45f6aaf15a596a09eaeb85d05 controlled-instance-runtime-0.0.33-linux-universal.tar.gz
@@ -1 +0,0 @@
1
- c2537f952358765c3477dc8b19ae0fa5509ea06d5db581be3f8d480233b5c0ba controlled-instance-runtime-0.0.31-linux-universal.tar.gz