arc402-cli 1.4.23 → 1.4.25
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/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +21 -3
- package/dist/daemon/index.js.map +1 -1
- package/package.json +4 -3
- package/workroom/Dockerfile +56 -0
- package/workroom/Dockerfile.gpu +74 -0
- package/workroom/arena-policy.yaml +152 -0
- package/workroom/credentials.template.toml +167 -0
- package/workroom/derive-policy.sh +84 -0
- package/workroom/dns-refresh.sh +57 -0
- package/workroom/entrypoint.sh +235 -0
- package/workroom/policy-parser.sh +25 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAChF,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACvD,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7E,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjF,uBAAuB,IAAI,cAAc,EAAE,CAAC;IAC5C,sBAAsB,IAAI,cAAc,EAAE,CAAC;IAC3C,uBAAuB,IAAI,MAAM,CAAC;IAClC,KAAK,IAAI,IAAI,CAAC;CACf;AAyYD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,YAAY;QACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC;CACF;AAED,wBAAsB,SAAS,CAAC,UAAU,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAChF,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACvD,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7E,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjF,uBAAuB,IAAI,cAAc,EAAE,CAAC;IAC5C,sBAAsB,IAAI,cAAc,EAAE,CAAC;IAC3C,uBAAuB,IAAI,MAAM,CAAC;IAClC,KAAK,IAAI,IAAI,CAAC;CACf;AAyYD,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,YAAY;QACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC;CACF;AAED,wBAAsB,SAAS,CAAC,UAAU,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqqCjE"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -720,6 +720,21 @@ async function runDaemon(foreground = false) {
|
|
|
720
720
|
});
|
|
721
721
|
}
|
|
722
722
|
const PUBLIC_GET_PATHS = new Set(["/", "/health", "/agent", "/capabilities", "/status"]);
|
|
723
|
+
// Protocol POST endpoints — open to external agents (no daemon token required).
|
|
724
|
+
// These are inbound P2P messages: hire proposals, handshakes, delivery notifications, etc.
|
|
725
|
+
// EIP-191 signature in the request body is the trust mechanism, not the daemon bearer token.
|
|
726
|
+
// The bearer token is for operator/admin actions only (approve, reject, status).
|
|
727
|
+
const PUBLIC_POST_PATHS = new Set([
|
|
728
|
+
"/hire",
|
|
729
|
+
"/hire/accepted",
|
|
730
|
+
"/handshake",
|
|
731
|
+
"/message",
|
|
732
|
+
"/delivery",
|
|
733
|
+
"/delivery/accepted",
|
|
734
|
+
"/dispute",
|
|
735
|
+
"/dispute/resolved",
|
|
736
|
+
"/workroom/status",
|
|
737
|
+
]);
|
|
723
738
|
// CORS whitelist — localhost for local tooling, arc402.xyz for the web app
|
|
724
739
|
const CORS_WHITELIST = new Set(["localhost", "127.0.0.1", "arc402.xyz", "app.arc402.xyz"]);
|
|
725
740
|
const httpServer = http.createServer(async (req, res) => {
|
|
@@ -751,9 +766,12 @@ async function runDaemon(foreground = false) {
|
|
|
751
766
|
res.end(JSON.stringify({ error: "too_many_requests" }));
|
|
752
767
|
return;
|
|
753
768
|
}
|
|
754
|
-
// Auth
|
|
755
|
-
//
|
|
756
|
-
|
|
769
|
+
// Auth: protocol POST endpoints are open (P2P — external agents have no daemon token).
|
|
770
|
+
// Operator GET paths and all non-protocol POSTs require the daemon bearer token.
|
|
771
|
+
// /job/* GET routes use party-based EIP-191 auth (verifyPartyAccess), not bearer token.
|
|
772
|
+
const isPublicPost = req.method === "POST" && PUBLIC_POST_PATHS.has(pathname);
|
|
773
|
+
const isPublicGet = req.method === "GET" && (PUBLIC_GET_PATHS.has(pathname) || pathname.startsWith("/job/"));
|
|
774
|
+
if (!isPublicPost && !isPublicGet) {
|
|
757
775
|
const authHeader = req.headers["authorization"] ?? "";
|
|
758
776
|
const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : "";
|
|
759
777
|
if (token !== apiToken) {
|
package/dist/daemon/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arc402-cli",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.25",
|
|
4
4
|
"description": "ARC-402 CLI for discovery, negotiation payloads, hire/remediation/dispute workflows, and network reads",
|
|
5
5
|
"bin": {
|
|
6
6
|
"arc402": "./dist/index.js"
|
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/",
|
|
11
|
-
"
|
|
11
|
+
"workroom/"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc",
|
|
15
|
-
"test": "node --test test/**/*.test.js"
|
|
15
|
+
"test": "node --test test/**/*.test.js",
|
|
16
|
+
"prepublishOnly": "npm run build && node -e \"const fs=require('fs'),path=require('path'); const src=path.resolve(__dirname,'../workroom'); const dst=path.resolve(__dirname,'workroom'); if(fs.existsSync(src)){fs.cpSync(src,dst,{recursive:true}); console.log('Copied workroom/ into package');} else { console.warn('WARNING: ../workroom not found — workroom files will be missing from package'); }\""
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
19
|
"@arc402/sdk": "^0.6.0",
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
FROM node:22-slim
|
|
2
|
+
|
|
3
|
+
# Runtime dependencies for network enforcement + diagnostics
|
|
4
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
5
|
+
iptables curl dnsutils iproute2 procps jq ca-certificates python3 make g++ \
|
|
6
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
7
|
+
|
|
8
|
+
# Install arc402-cli globally — Linux-compiled native binaries (better-sqlite3, etc.)
|
|
9
|
+
# This runs at image build time so native addons compile for Linux, not the host OS.
|
|
10
|
+
# ARG allows pinning a specific version: docker build --build-arg ARC402_CLI_VERSION=1.4.19
|
|
11
|
+
ARG ARC402_CLI_VERSION=latest
|
|
12
|
+
RUN npm install -g arc402-cli@${ARC402_CLI_VERSION} --build-from-source 2>&1 | tail -5
|
|
13
|
+
# Stamp the CLI version as an image label so workroom start can detect stale images.
|
|
14
|
+
LABEL arc402.cli.version=${ARC402_CLI_VERSION}
|
|
15
|
+
|
|
16
|
+
# Create workroom user with the same UID/GID as the host user (default: 1000).
|
|
17
|
+
# This ensures bind-mounted volumes are readable/writable without permission fights.
|
|
18
|
+
# Override at build time: docker build --build-arg HOST_UID=1001 --build-arg HOST_GID=1001
|
|
19
|
+
ARG HOST_UID=1000
|
|
20
|
+
ARG HOST_GID=1000
|
|
21
|
+
# node:22-slim already has a 'node' user at UID 1000. Rename it to 'workroom'
|
|
22
|
+
# so the container user matches the host user (bind mount permissions).
|
|
23
|
+
RUN usermod -l workroom -d /workroom -m node \
|
|
24
|
+
&& groupmod -n workroom node \
|
|
25
|
+
&& usermod -u ${HOST_UID} workroom 2>/dev/null || true \
|
|
26
|
+
&& groupmod -g ${HOST_GID} workroom 2>/dev/null || true
|
|
27
|
+
|
|
28
|
+
# Workroom scripts
|
|
29
|
+
COPY entrypoint.sh /entrypoint.sh
|
|
30
|
+
COPY dns-refresh.sh /dns-refresh.sh
|
|
31
|
+
COPY policy-parser.sh /policy-parser.sh
|
|
32
|
+
COPY derive-policy.sh /derive-policy.sh
|
|
33
|
+
RUN chmod +x /entrypoint.sh /dns-refresh.sh /policy-parser.sh /derive-policy.sh
|
|
34
|
+
|
|
35
|
+
# Job workspace directory
|
|
36
|
+
RUN mkdir -p /workroom/jobs && chown workroom:workroom /workroom/jobs
|
|
37
|
+
|
|
38
|
+
# OpenClaw runtime directory (mounted from host)
|
|
39
|
+
RUN mkdir -p /workroom/openclaw && chown workroom:workroom /workroom/openclaw
|
|
40
|
+
|
|
41
|
+
# Worker specialisation directories (created by worker init, but ensure they exist)
|
|
42
|
+
RUN mkdir -p /workroom/.arc402/worker/{knowledge,datasets,skills,memory} \
|
|
43
|
+
&& chown -R workroom:workroom /workroom/.arc402
|
|
44
|
+
|
|
45
|
+
# Home directory for workroom user (auth files mounted here)
|
|
46
|
+
RUN mkdir -p /home/workroom/.openclaw && chown -R workroom:workroom /home/workroom
|
|
47
|
+
|
|
48
|
+
# Arena directories — feed index, profile cache, daemon state, approval queue
|
|
49
|
+
RUN mkdir -p /workroom/arena/{feed,profile,state,queue} \
|
|
50
|
+
&& chown -R workroom:workroom /workroom/arena
|
|
51
|
+
|
|
52
|
+
# Default arena policy (can be overridden by mount)
|
|
53
|
+
COPY arena-policy.yaml /workroom/defaults/arena-policy.yaml
|
|
54
|
+
|
|
55
|
+
WORKDIR /workroom
|
|
56
|
+
ENTRYPOINT ["/entrypoint.sh"]
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# ARC-402 GPU Workroom
|
|
2
|
+
# CUDA-enabled variant of the standard workroom container.
|
|
3
|
+
# Run with: docker run --gpus all --runtime=nvidia arc402-workroom:gpu
|
|
4
|
+
#
|
|
5
|
+
# Build:
|
|
6
|
+
# docker build -f workroom/Dockerfile.gpu -t arc402-workroom:gpu workroom/
|
|
7
|
+
|
|
8
|
+
FROM nvidia/cuda:12.4.0-runtime-ubuntu22.04
|
|
9
|
+
|
|
10
|
+
# ─── System dependencies ──────────────────────────────────────────────────────
|
|
11
|
+
|
|
12
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
13
|
+
# Same runtime deps as base Dockerfile
|
|
14
|
+
iptables curl dnsutils iproute2 procps jq ca-certificates \
|
|
15
|
+
# GPU metering
|
|
16
|
+
python3-minimal \
|
|
17
|
+
# Node.js 22 (LTS) via NodeSource
|
|
18
|
+
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
19
|
+
&& apt-get install -y --no-install-recommends nodejs \
|
|
20
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
21
|
+
|
|
22
|
+
# ─── NVIDIA container toolkit check ──────────────────────────────────────────
|
|
23
|
+
# nvidia-smi is provided by the host driver mounted into the container.
|
|
24
|
+
# Validate it's accessible at container startup (see entrypoint.sh).
|
|
25
|
+
# NVIDIA_VISIBLE_DEVICES and NVIDIA_DRIVER_CAPABILITIES must be set at runtime.
|
|
26
|
+
|
|
27
|
+
ENV NVIDIA_VISIBLE_DEVICES=all
|
|
28
|
+
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
|
29
|
+
|
|
30
|
+
# ─── User setup (mirrors base Dockerfile) ────────────────────────────────────
|
|
31
|
+
|
|
32
|
+
ARG HOST_UID=1000
|
|
33
|
+
ARG HOST_GID=1000
|
|
34
|
+
|
|
35
|
+
# Ubuntu 22.04 ships with ubuntu user at UID 1000; rename to workroom.
|
|
36
|
+
RUN groupadd -f -g ${HOST_GID} workroom 2>/dev/null || true \
|
|
37
|
+
&& useradd -u ${HOST_UID} -g ${HOST_GID} -m -d /workroom -s /bin/bash workroom 2>/dev/null \
|
|
38
|
+
|| usermod -u ${HOST_UID} -g ${HOST_GID} -d /workroom workroom 2>/dev/null || true
|
|
39
|
+
|
|
40
|
+
# ─── Workroom scripts ─────────────────────────────────────────────────────────
|
|
41
|
+
|
|
42
|
+
COPY entrypoint.sh /entrypoint.sh
|
|
43
|
+
COPY dns-refresh.sh /dns-refresh.sh
|
|
44
|
+
COPY policy-parser.sh /policy-parser.sh
|
|
45
|
+
COPY derive-policy.sh /derive-policy.sh
|
|
46
|
+
RUN chmod +x /entrypoint.sh /dns-refresh.sh /policy-parser.sh /derive-policy.sh
|
|
47
|
+
|
|
48
|
+
# ─── Directory layout (same as base Dockerfile) ───────────────────────────────
|
|
49
|
+
|
|
50
|
+
RUN mkdir -p /workroom/jobs && chown workroom:workroom /workroom/jobs
|
|
51
|
+
RUN mkdir -p /workroom/openclaw && chown workroom:workroom /workroom/openclaw
|
|
52
|
+
RUN mkdir -p /workroom/.arc402/worker/{knowledge,datasets,skills,memory} \
|
|
53
|
+
&& chown -R workroom:workroom /workroom/.arc402
|
|
54
|
+
RUN mkdir -p /home/workroom/.openclaw && chown -R workroom:workroom /home/workroom
|
|
55
|
+
RUN mkdir -p /workroom/arena/{feed,profile,state,queue} && chown -R workroom:workroom /workroom/arena
|
|
56
|
+
|
|
57
|
+
# ─── GPU-specific directories ─────────────────────────────────────────────────
|
|
58
|
+
|
|
59
|
+
# Compute session data directory (metrics + reports written by metering daemon)
|
|
60
|
+
RUN mkdir -p /workroom/.arc402/compute && chown workroom:workroom /workroom/.arc402/compute
|
|
61
|
+
|
|
62
|
+
# ─── Default arena policy ─────────────────────────────────────────────────────
|
|
63
|
+
|
|
64
|
+
COPY arena-policy.yaml /workroom/defaults/arena-policy.yaml
|
|
65
|
+
|
|
66
|
+
WORKDIR /workroom
|
|
67
|
+
ENTRYPOINT ["/entrypoint.sh"]
|
|
68
|
+
|
|
69
|
+
# ─── Runtime labels ───────────────────────────────────────────────────────────
|
|
70
|
+
|
|
71
|
+
LABEL org.opencontainers.image.title="arc402-workroom-gpu"
|
|
72
|
+
LABEL org.opencontainers.image.description="ARC-402 GPU workroom — CUDA 12.4, nvidia-smi metering"
|
|
73
|
+
LABEL arc402.gpu="true"
|
|
74
|
+
LABEL arc402.cuda.version="12.4.0"
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# ARC-402 Arena Policy — extends the base workroom policy
|
|
2
|
+
# This file defines the network, spend, and behavior boundaries for Arena operations
|
|
3
|
+
# running inside the Workroom container.
|
|
4
|
+
#
|
|
5
|
+
# Merged with openshell-policy.yaml at workroom startup.
|
|
6
|
+
# Arena-specific policies are additive — they don't override base security.
|
|
7
|
+
|
|
8
|
+
version: 1
|
|
9
|
+
|
|
10
|
+
# ─── Arena Network Policy ──────────────────────────────────────────────────────
|
|
11
|
+
# Which external hosts Arena processes can reach from inside the Workroom.
|
|
12
|
+
# Everything else is DROP via iptables.
|
|
13
|
+
|
|
14
|
+
arena_network:
|
|
15
|
+
# Base mainnet RPC — for contract reads and transaction submission
|
|
16
|
+
base_rpc:
|
|
17
|
+
endpoints:
|
|
18
|
+
- host: mainnet.base.org
|
|
19
|
+
port: 443
|
|
20
|
+
- host: base-mainnet.g.alchemy.com
|
|
21
|
+
port: 443
|
|
22
|
+
- host: base.llamarpc.com
|
|
23
|
+
port: 443
|
|
24
|
+
|
|
25
|
+
# ARC-402 infrastructure — relay, API, public pages
|
|
26
|
+
arc402_infra:
|
|
27
|
+
endpoints:
|
|
28
|
+
- host: api.arc402.xyz
|
|
29
|
+
port: 443
|
|
30
|
+
- host: arc402.xyz
|
|
31
|
+
port: 443
|
|
32
|
+
- host: relay.arc402.xyz
|
|
33
|
+
port: 443
|
|
34
|
+
- host: gigabrain.arc402.xyz
|
|
35
|
+
port: 443
|
|
36
|
+
|
|
37
|
+
# ERC-4337 bundler — for UserOp submission
|
|
38
|
+
bundler:
|
|
39
|
+
endpoints:
|
|
40
|
+
- host: public.pimlico.io
|
|
41
|
+
port: 443
|
|
42
|
+
|
|
43
|
+
# Notifications — Telegram alerts for arena events
|
|
44
|
+
notifications:
|
|
45
|
+
endpoints:
|
|
46
|
+
- host: api.telegram.org
|
|
47
|
+
port: 443
|
|
48
|
+
|
|
49
|
+
# Data feeds — for prediction round research (read-only intelligence)
|
|
50
|
+
# Add specific API hosts as needed. Each addition is a policy decision.
|
|
51
|
+
data_feeds:
|
|
52
|
+
endpoints:
|
|
53
|
+
- host: api.coingecko.com
|
|
54
|
+
port: 443
|
|
55
|
+
- host: pro-api.coinmarketcap.com
|
|
56
|
+
port: 443
|
|
57
|
+
|
|
58
|
+
# ─── Arena Spend Policy ────────────────────────────────────────────────────────
|
|
59
|
+
# Workroom-level spend limits. These are ADDITIONAL to PolicyEngine onchain limits.
|
|
60
|
+
# The tighter of the two always wins.
|
|
61
|
+
#
|
|
62
|
+
# These are enforced by the Arena daemon before submitting transactions.
|
|
63
|
+
# They protect against bugs, not just malice.
|
|
64
|
+
|
|
65
|
+
arena_spend:
|
|
66
|
+
handshake:
|
|
67
|
+
max_per_handshake_eth: "0.01" # max ETH tip per handshake
|
|
68
|
+
max_per_handshake_usdc: "10.00" # max USDC tip per handshake
|
|
69
|
+
daily_count_cap: 50 # mirrors contract cap
|
|
70
|
+
daily_spend_cap_eth: "0.5" # total handshake spend per day
|
|
71
|
+
daily_spend_cap_usdc: "100.00" # total handshake USDC spend per day
|
|
72
|
+
|
|
73
|
+
arena:
|
|
74
|
+
max_stake_per_round_eth: "0.1" # max stake per prediction round
|
|
75
|
+
max_stake_per_round_usdc: "50.00"
|
|
76
|
+
daily_rounds_cap: 10 # max rounds entered per day
|
|
77
|
+
daily_spend_cap_eth: "1.0" # total arena spend per day
|
|
78
|
+
daily_spend_cap_usdc: "500.00"
|
|
79
|
+
|
|
80
|
+
subscriptions:
|
|
81
|
+
max_per_subscription_eth: "0.05" # max per subscription payment
|
|
82
|
+
max_per_subscription_usdc: "25.00"
|
|
83
|
+
max_active_subscriptions: 20 # cap on simultaneous subscriptions
|
|
84
|
+
|
|
85
|
+
# ─── Arena Behavior Policy ─────────────────────────────────────────────────────
|
|
86
|
+
# Controls what the Arena daemon can do autonomously vs what requires approval.
|
|
87
|
+
|
|
88
|
+
arena_behavior:
|
|
89
|
+
# Autonomous actions — daemon can do these without human approval
|
|
90
|
+
autonomous:
|
|
91
|
+
- send_handshake # respond to inbound handshakes
|
|
92
|
+
- post_status # publish status updates
|
|
93
|
+
- index_feed # consume and index feed events
|
|
94
|
+
- update_profile # refresh profile metadata
|
|
95
|
+
|
|
96
|
+
# Approval-required actions — daemon queues these for human review
|
|
97
|
+
approval_required:
|
|
98
|
+
- enter_arena_round # stake money on prediction
|
|
99
|
+
- back_agent # back another agent's forecast
|
|
100
|
+
- create_subscription # open a paid subscription channel
|
|
101
|
+
- publish_newsletter # publish content to subscribers
|
|
102
|
+
- join_squad # join a research squad
|
|
103
|
+
|
|
104
|
+
# Forbidden actions — daemon cannot do these at all
|
|
105
|
+
forbidden:
|
|
106
|
+
- modify_wallet_policy # never change its own spending rules
|
|
107
|
+
- transfer_ownership # never transfer wallet ownership
|
|
108
|
+
- upgrade_registry # never propose registry updates
|
|
109
|
+
- whitelist_contracts # never add new contract whitelists
|
|
110
|
+
|
|
111
|
+
# ─── Arena Daemon Config ───────────────────────────────────────────────────────
|
|
112
|
+
# How the Arena daemon runs inside the Workroom.
|
|
113
|
+
|
|
114
|
+
arena_daemon:
|
|
115
|
+
# Feed indexer — listens for HandshakeSent, NewConnection, arena events
|
|
116
|
+
indexer:
|
|
117
|
+
poll_interval_seconds: 30
|
|
118
|
+
start_block: "latest" # or specific block number
|
|
119
|
+
contracts:
|
|
120
|
+
- name: handshake
|
|
121
|
+
address: "" # filled after deployment
|
|
122
|
+
events:
|
|
123
|
+
- HandshakeSent
|
|
124
|
+
- NewConnection
|
|
125
|
+
# Future: ArenaRound events added here
|
|
126
|
+
|
|
127
|
+
# Status publisher — posts agent status updates
|
|
128
|
+
status:
|
|
129
|
+
auto_publish: false # manual by default
|
|
130
|
+
max_per_day: 10
|
|
131
|
+
|
|
132
|
+
# Discovery — how the agent finds other agents
|
|
133
|
+
discovery:
|
|
134
|
+
refresh_interval_seconds: 300
|
|
135
|
+
trending_window_hours: 24
|
|
136
|
+
|
|
137
|
+
# ─── Arena Filesystem Policy ───────────────────────────────────────────────────
|
|
138
|
+
# What Arena processes can read and write inside the Workroom.
|
|
139
|
+
|
|
140
|
+
arena_filesystem:
|
|
141
|
+
read_write:
|
|
142
|
+
- /workroom/arena/feed # indexed feed data
|
|
143
|
+
- /workroom/arena/profile # agent profile cache
|
|
144
|
+
- /workroom/arena/state # daemon state (last block, etc.)
|
|
145
|
+
- /workroom/arena/queue # approval queue for human review
|
|
146
|
+
|
|
147
|
+
read_only:
|
|
148
|
+
- /workroom/runtime # CLI and daemon code
|
|
149
|
+
- /workroom/.arc402 # policy files
|
|
150
|
+
|
|
151
|
+
forbidden:
|
|
152
|
+
- /workroom/.arc402/keys # private keys (injected as env vars only)
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
# ARC-402 Workroom Credentials Template
|
|
3
|
+
#
|
|
4
|
+
# This file configures LLM provider access for your workroom worker.
|
|
5
|
+
# Copy to ~/.arc402/worker/credentials.toml and fill in your keys.
|
|
6
|
+
#
|
|
7
|
+
# NEVER commit this file. It is gitignored by default.
|
|
8
|
+
# The workroom setup script reads this to:
|
|
9
|
+
# 1. Pass API keys as Docker env vars (never written to disk in container)
|
|
10
|
+
# 2. Auto-generate network policy entries (iptables whitelist)
|
|
11
|
+
#
|
|
12
|
+
# Two modes:
|
|
13
|
+
# Tier 1 (recommended): Use OpenClaw as your worker runtime.
|
|
14
|
+
# → OpenClaw's openclaw.json already has all provider configs.
|
|
15
|
+
# → You DON'T need this file. Everything is auto-derived.
|
|
16
|
+
# → Set runtime = "openclaw" in worker/config.json.
|
|
17
|
+
#
|
|
18
|
+
# Tier 2 (advanced): Bring your own harness (raw Claude Code, Codex, etc.)
|
|
19
|
+
# → Fill in the providers below for your chosen harness.
|
|
20
|
+
# → The setup script generates matching iptables rules.
|
|
21
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
22
|
+
|
|
23
|
+
# ── Anthropic (Claude Code) ─────────────────────────────────────────────────
|
|
24
|
+
# Two auth modes:
|
|
25
|
+
# api_key: Direct API key (pay per token)
|
|
26
|
+
# oauth: Max subscription OAuth (unlimited, mounted from host)
|
|
27
|
+
|
|
28
|
+
[providers.anthropic]
|
|
29
|
+
enabled = false
|
|
30
|
+
auth = "api_key" # "api_key" or "oauth"
|
|
31
|
+
env = "ANTHROPIC_API_KEY" # Set this env var on the host
|
|
32
|
+
# oauth_token_path = "~/.claude/oauth" # For OAuth mode (mounted read-only)
|
|
33
|
+
hosts = ["api.anthropic.com"]
|
|
34
|
+
|
|
35
|
+
# ── OpenAI (Codex, GPT) ────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
[providers.openai]
|
|
38
|
+
enabled = false
|
|
39
|
+
auth = "api_key"
|
|
40
|
+
env = "OPENAI_API_KEY"
|
|
41
|
+
hosts = ["api.openai.com"]
|
|
42
|
+
|
|
43
|
+
# ── OpenAI Codex (dedicated endpoint) ──────────────────────────────────────
|
|
44
|
+
|
|
45
|
+
[providers.openai_codex]
|
|
46
|
+
enabled = false
|
|
47
|
+
auth = "api_key"
|
|
48
|
+
env = "OPENAI_API_KEY" # Same key as OpenAI
|
|
49
|
+
hosts = ["api.openai.com"] # Same endpoint
|
|
50
|
+
|
|
51
|
+
# ── Google (Gemini) ─────────────────────────────────────────────────────────
|
|
52
|
+
|
|
53
|
+
[providers.google]
|
|
54
|
+
enabled = false
|
|
55
|
+
auth = "api_key"
|
|
56
|
+
env = "GOOGLE_API_KEY"
|
|
57
|
+
# Alternative: service account JSON
|
|
58
|
+
# service_account_path = "~/.config/gcloud/application_default_credentials.json"
|
|
59
|
+
hosts = ["generativelanguage.googleapis.com"]
|
|
60
|
+
|
|
61
|
+
# ── OpenRouter ──────────────────────────────────────────────────────────────
|
|
62
|
+
# Routes to multiple providers (Anthropic, OpenAI, Google, etc.)
|
|
63
|
+
# Single key, many models.
|
|
64
|
+
|
|
65
|
+
[providers.openrouter]
|
|
66
|
+
enabled = false
|
|
67
|
+
auth = "api_key"
|
|
68
|
+
env = "OPENROUTER_API_KEY"
|
|
69
|
+
hosts = ["openrouter.ai"]
|
|
70
|
+
|
|
71
|
+
# ── Mistral ─────────────────────────────────────────────────────────────────
|
|
72
|
+
|
|
73
|
+
[providers.mistral]
|
|
74
|
+
enabled = false
|
|
75
|
+
auth = "api_key"
|
|
76
|
+
env = "MISTRAL_API_KEY"
|
|
77
|
+
hosts = ["api.mistral.ai"]
|
|
78
|
+
|
|
79
|
+
# ── Groq ────────────────────────────────────────────────────────────────────
|
|
80
|
+
|
|
81
|
+
[providers.groq]
|
|
82
|
+
enabled = false
|
|
83
|
+
auth = "api_key"
|
|
84
|
+
env = "GROQ_API_KEY"
|
|
85
|
+
hosts = ["api.groq.com"]
|
|
86
|
+
|
|
87
|
+
# ── Together AI ─────────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
[providers.together]
|
|
90
|
+
enabled = false
|
|
91
|
+
auth = "api_key"
|
|
92
|
+
env = "TOGETHER_API_KEY"
|
|
93
|
+
hosts = ["api.together.xyz"]
|
|
94
|
+
|
|
95
|
+
# ── Fireworks AI ────────────────────────────────────────────────────────────
|
|
96
|
+
|
|
97
|
+
[providers.fireworks]
|
|
98
|
+
enabled = false
|
|
99
|
+
auth = "api_key"
|
|
100
|
+
env = "FIREWORKS_API_KEY"
|
|
101
|
+
hosts = ["api.fireworks.ai"]
|
|
102
|
+
|
|
103
|
+
# ── DeepSeek ────────────────────────────────────────────────────────────────
|
|
104
|
+
|
|
105
|
+
[providers.deepseek]
|
|
106
|
+
enabled = false
|
|
107
|
+
auth = "api_key"
|
|
108
|
+
env = "DEEPSEEK_API_KEY"
|
|
109
|
+
hosts = ["api.deepseek.com"]
|
|
110
|
+
|
|
111
|
+
# ── Cohere ──────────────────────────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
[providers.cohere]
|
|
114
|
+
enabled = false
|
|
115
|
+
auth = "api_key"
|
|
116
|
+
env = "COHERE_API_KEY"
|
|
117
|
+
hosts = ["api.cohere.ai"]
|
|
118
|
+
|
|
119
|
+
# ── Perplexity ──────────────────────────────────────────────────────────────
|
|
120
|
+
|
|
121
|
+
[providers.perplexity]
|
|
122
|
+
enabled = false
|
|
123
|
+
auth = "api_key"
|
|
124
|
+
env = "PERPLEXITY_API_KEY"
|
|
125
|
+
hosts = ["api.perplexity.ai"]
|
|
126
|
+
|
|
127
|
+
# ── xAI (Grok) ─────────────────────────────────────────────────────────────
|
|
128
|
+
|
|
129
|
+
[providers.xai]
|
|
130
|
+
enabled = false
|
|
131
|
+
auth = "api_key"
|
|
132
|
+
env = "XAI_API_KEY"
|
|
133
|
+
hosts = ["api.x.ai"]
|
|
134
|
+
|
|
135
|
+
# ── Custom Provider ─────────────────────────────────────────────────────────
|
|
136
|
+
# Add your own provider. The setup script reads `hosts` to generate
|
|
137
|
+
# iptables rules and `env` to mount the key into the container.
|
|
138
|
+
|
|
139
|
+
# [providers.custom_provider]
|
|
140
|
+
# enabled = false
|
|
141
|
+
# auth = "api_key"
|
|
142
|
+
# env = "CUSTOM_API_KEY"
|
|
143
|
+
# hosts = ["api.custom-provider.com"]
|
|
144
|
+
|
|
145
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
146
|
+
# USAGE:
|
|
147
|
+
#
|
|
148
|
+
# 1. Copy this file:
|
|
149
|
+
# cp credentials.template.toml ~/.arc402/worker/credentials.toml
|
|
150
|
+
#
|
|
151
|
+
# 2. Enable the providers you need:
|
|
152
|
+
# Set enabled = true for each provider you want
|
|
153
|
+
#
|
|
154
|
+
# 3. Set your API keys as environment variables:
|
|
155
|
+
# export ANTHROPIC_API_KEY="sk-ant-..."
|
|
156
|
+
# export OPENAI_API_KEY="sk-..."
|
|
157
|
+
#
|
|
158
|
+
# 4. Run workroom setup (reads credentials, generates network policy):
|
|
159
|
+
# arc402 workroom init
|
|
160
|
+
#
|
|
161
|
+
# 5. The workroom container will:
|
|
162
|
+
# - Receive your API keys as Docker env vars (never on disk)
|
|
163
|
+
# - Have iptables rules allowing only your enabled providers' hosts
|
|
164
|
+
# - Block all other outbound network traffic
|
|
165
|
+
#
|
|
166
|
+
# For OpenClaw users (Tier 1): skip all of this. OpenClaw handles it.
|
|
167
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
# ARC-402 Policy Derivation — Auto-generate network policy from OpenClaw config
|
|
4
|
+
#
|
|
5
|
+
# Reads the OpenClaw configuration to determine which LLM providers are
|
|
6
|
+
# configured, then ensures those endpoints are in the workroom network policy.
|
|
7
|
+
#
|
|
8
|
+
# Usage: ./derive-policy.sh [openclaw-config-path] [policy-output-path]
|
|
9
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
|
|
12
|
+
OPENCLAW_CONFIG="${1:-$HOME/.openclaw/openclaw.json}"
|
|
13
|
+
POLICY_FILE="${2:-$HOME/.arc402/openshell-policy.yaml}"
|
|
14
|
+
|
|
15
|
+
# Known LLM provider → endpoint mapping
|
|
16
|
+
declare -A PROVIDER_HOSTS
|
|
17
|
+
PROVIDER_HOSTS=(
|
|
18
|
+
["anthropic"]="api.anthropic.com"
|
|
19
|
+
["openai"]="api.openai.com"
|
|
20
|
+
["google"]="generativelanguage.googleapis.com"
|
|
21
|
+
["mistral"]="api.mistral.ai"
|
|
22
|
+
["groq"]="api.groq.com"
|
|
23
|
+
["openrouter"]="openrouter.ai"
|
|
24
|
+
["together"]="api.together.xyz"
|
|
25
|
+
["fireworks"]="api.fireworks.ai"
|
|
26
|
+
["deepseek"]="api.deepseek.com"
|
|
27
|
+
["cohere"]="api.cohere.ai"
|
|
28
|
+
["perplexity"]="api.perplexity.ai"
|
|
29
|
+
["xai"]="api.x.ai"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
if [ ! -f "$OPENCLAW_CONFIG" ]; then
|
|
33
|
+
echo "[derive-policy] OpenClaw config not found: $OPENCLAW_CONFIG"
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
if [ ! -f "$POLICY_FILE" ]; then
|
|
38
|
+
echo "[derive-policy] Policy file not found: $POLICY_FILE"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
echo "[derive-policy] Reading OpenClaw config: $OPENCLAW_CONFIG"
|
|
43
|
+
|
|
44
|
+
# Extract configured providers from openclaw.json
|
|
45
|
+
# Look for provider keys in models/providers config
|
|
46
|
+
CONFIGURED_PROVIDERS=$(jq -r '
|
|
47
|
+
(.models // {} | keys[]) // empty,
|
|
48
|
+
(.providers // {} | keys[]) // empty
|
|
49
|
+
' "$OPENCLAW_CONFIG" 2>/dev/null | sort -u)
|
|
50
|
+
|
|
51
|
+
ADDED=0
|
|
52
|
+
for provider in $CONFIGURED_PROVIDERS; do
|
|
53
|
+
# Normalize provider name (strip prefixes like "openai-codex" → "openai")
|
|
54
|
+
base_provider=$(echo "$provider" | sed 's/-.*//')
|
|
55
|
+
|
|
56
|
+
host="${PROVIDER_HOSTS[$base_provider]:-}"
|
|
57
|
+
if [ -z "$host" ]; then
|
|
58
|
+
continue
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# Check if host is already in the policy
|
|
62
|
+
if grep -q "$host" "$POLICY_FILE" 2>/dev/null; then
|
|
63
|
+
echo "[derive-policy] Already in policy: $host (for $provider)"
|
|
64
|
+
continue
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# Append to policy file
|
|
68
|
+
cat >> "$POLICY_FILE" << EOF
|
|
69
|
+
${base_provider}_api:
|
|
70
|
+
name: ${base_provider}-llm-api
|
|
71
|
+
endpoints:
|
|
72
|
+
- host: ${host}
|
|
73
|
+
port: 443
|
|
74
|
+
protocol: rest
|
|
75
|
+
tls: terminate
|
|
76
|
+
enforcement: enforce
|
|
77
|
+
access: read-write
|
|
78
|
+
binaries: *a1
|
|
79
|
+
EOF
|
|
80
|
+
echo "[derive-policy] Added: $host (for $provider)"
|
|
81
|
+
ADDED=$((ADDED + 1))
|
|
82
|
+
done
|
|
83
|
+
|
|
84
|
+
echo "[derive-policy] Done. $ADDED new provider endpoints added to policy."
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
# ARC-402 Workroom DNS Refresh
|
|
4
|
+
#
|
|
5
|
+
# Periodically re-resolves policy hostnames and updates iptables rules.
|
|
6
|
+
# Handles CDN IP rotation, failover, and DNS changes without container restart.
|
|
7
|
+
#
|
|
8
|
+
# Runs as root in the background. The entrypoint starts this automatically.
|
|
9
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
|
|
12
|
+
readonly POLICY_FILE="${1:-/workroom/.arc402/openshell-policy.yaml}"
|
|
13
|
+
readonly REFRESH_INTERVAL="${ARC402_DNS_REFRESH_SECONDS:-300}"
|
|
14
|
+
readonly RULES_LOG="/workroom/.arc402/iptables-rules.log"
|
|
15
|
+
|
|
16
|
+
log() { echo "[dns-refresh] $*"; }
|
|
17
|
+
|
|
18
|
+
log "Starting (interval: ${REFRESH_INTERVAL}s, policy: $POLICY_FILE)"
|
|
19
|
+
|
|
20
|
+
while true; do
|
|
21
|
+
sleep "$REFRESH_INTERVAL"
|
|
22
|
+
|
|
23
|
+
log "Refreshing..."
|
|
24
|
+
|
|
25
|
+
# Flush and rebuild OUTPUT chain from scratch
|
|
26
|
+
# This is atomic from the kernel's perspective — no gap in enforcement.
|
|
27
|
+
iptables -F OUTPUT 2>/dev/null || true
|
|
28
|
+
|
|
29
|
+
# Core rules (always present)
|
|
30
|
+
iptables -A OUTPUT -o lo -j ACCEPT
|
|
31
|
+
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
32
|
+
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
|
|
33
|
+
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
|
|
34
|
+
|
|
35
|
+
# Re-resolve and apply
|
|
36
|
+
RULE_COUNT=0
|
|
37
|
+
while IFS=: read -r host port; do
|
|
38
|
+
[ -z "$host" ] && continue
|
|
39
|
+
port="${port:-443}"
|
|
40
|
+
|
|
41
|
+
ips=$(getent ahosts "$host" 2>/dev/null | awk '{print $1}' | sort -u || true)
|
|
42
|
+
if [ -z "$ips" ]; then
|
|
43
|
+
log "WARN: Could not resolve $host"
|
|
44
|
+
continue
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
while IFS= read -r ip; do
|
|
48
|
+
iptables -A OUTPUT -p tcp -d "$ip" --dport "$port" -j ACCEPT
|
|
49
|
+
RULE_COUNT=$((RULE_COUNT + 1))
|
|
50
|
+
done <<< "$ips"
|
|
51
|
+
done < <(/policy-parser.sh "$POLICY_FILE")
|
|
52
|
+
|
|
53
|
+
# Log updated rules
|
|
54
|
+
iptables -L OUTPUT -n --line-numbers > "$RULES_LOG" 2>/dev/null || true
|
|
55
|
+
|
|
56
|
+
log "Refreshed: $RULE_COUNT rules applied"
|
|
57
|
+
done
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
# ARC-402 Workroom Entrypoint
|
|
4
|
+
#
|
|
5
|
+
# This is the governed execution environment for hired work. The entrypoint:
|
|
6
|
+
# 1. Reads the workroom policy (YAML → host:port pairs)
|
|
7
|
+
# 2. Resolves all hostnames to IPs while DNS is still open
|
|
8
|
+
# 3. Applies iptables rules: ALLOW resolved IPs, DROP everything else
|
|
9
|
+
# 4. Starts the DNS refresh daemon for IP rotation
|
|
10
|
+
# 5. Drops privileges and starts the ARC-402 daemon
|
|
11
|
+
#
|
|
12
|
+
# Runs as root for iptables setup. Drops to 'workroom' user for the daemon.
|
|
13
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
set -euo pipefail
|
|
15
|
+
|
|
16
|
+
# ─── log() must be defined first — used throughout ────────────────────────────
|
|
17
|
+
log() { echo "[workroom] $*"; }
|
|
18
|
+
|
|
19
|
+
readonly POLICY_FILE="/workroom/.arc402/openshell-policy.yaml"
|
|
20
|
+
readonly RULES_LOG="/workroom/.arc402/iptables-rules.log"
|
|
21
|
+
readonly ARENA_POLICY="/workroom/.arc402/arena-policy.yaml"
|
|
22
|
+
readonly ARENA_DEFAULT="/workroom/defaults/arena-policy.yaml"
|
|
23
|
+
|
|
24
|
+
# ─── Locate globally installed arc402-cli (Linux-native binaries) ─────────────
|
|
25
|
+
# The image runs npm install -g arc402-cli --build-from-source at build time.
|
|
26
|
+
# We must always use this global install for native addons (better-sqlite3 etc.),
|
|
27
|
+
# never the host mount which carries macOS/Windows binaries.
|
|
28
|
+
GLOBAL_NPM_ROOT=$(npm root -g 2>/dev/null || echo "")
|
|
29
|
+
GLOBAL_CLI_ROOT="${GLOBAL_NPM_ROOT}/arc402-cli"
|
|
30
|
+
GLOBAL_DAEMON="${GLOBAL_CLI_ROOT}/dist/daemon/index.js"
|
|
31
|
+
log "Global npm root: ${GLOBAL_NPM_ROOT:-not found}"
|
|
32
|
+
log "Global cli root: ${GLOBAL_CLI_ROOT}"
|
|
33
|
+
|
|
34
|
+
# NODE_PATH: if a host dist/ is mounted (--dev mode), require() calls from it
|
|
35
|
+
# must still resolve native addons from the Linux global install.
|
|
36
|
+
# Set unconditionally — harmless if the mount doesn't exist.
|
|
37
|
+
if [ -d "${GLOBAL_CLI_ROOT}/node_modules" ]; then
|
|
38
|
+
export NODE_PATH="${GLOBAL_CLI_ROOT}/node_modules${NODE_PATH:+:$NODE_PATH}"
|
|
39
|
+
log "NODE_PATH → ${GLOBAL_CLI_ROOT}/node_modules (Linux-native addons)"
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# ─── Resolve daemon entry point ───────────────────────────────────────────────
|
|
43
|
+
# Production (no --dev mount): /workroom/runtime/dist/daemon/index.js won't exist.
|
|
44
|
+
# → use global install directly.
|
|
45
|
+
# Dev (--dev mount): mounted dist/ exists, global node_modules via NODE_PATH.
|
|
46
|
+
# → use mounted dist so JS changes propagate without rebuild.
|
|
47
|
+
if [ -f "/workroom/runtime/dist/daemon/index.js" ]; then
|
|
48
|
+
DAEMON_ENTRY="/workroom/runtime/dist/daemon/index.js"
|
|
49
|
+
log "Daemon: host dist/ mount (dev mode)"
|
|
50
|
+
elif [ -f "${GLOBAL_DAEMON}" ]; then
|
|
51
|
+
DAEMON_ENTRY="${GLOBAL_DAEMON}"
|
|
52
|
+
log "Daemon: global install (production)"
|
|
53
|
+
else
|
|
54
|
+
DAEMON_ENTRY=""
|
|
55
|
+
fi
|
|
56
|
+
readonly DAEMON_ENTRY
|
|
57
|
+
|
|
58
|
+
# ─── Validate prerequisites ────────────────────────────────────────────────
|
|
59
|
+
|
|
60
|
+
if [ ! -f "$POLICY_FILE" ]; then
|
|
61
|
+
log "ERROR: Policy file not found at $POLICY_FILE"
|
|
62
|
+
log "Run 'arc402 workroom init' on the host first."
|
|
63
|
+
exit 1
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
# ─── Phase 0b: Auto-derive LLM provider endpoints from OpenClaw config ────
|
|
67
|
+
#
|
|
68
|
+
# If OpenClaw config is mounted, read it and ensure all configured LLM
|
|
69
|
+
# providers have their API endpoints in the network policy. This runs
|
|
70
|
+
# BEFORE host resolution so the derived hosts get resolved too.
|
|
71
|
+
|
|
72
|
+
OPENCLAW_CONFIG="/home/workroom/.openclaw/openclaw.json"
|
|
73
|
+
if [ -f "$OPENCLAW_CONFIG" ]; then
|
|
74
|
+
log "OpenClaw config found — deriving LLM provider endpoints..."
|
|
75
|
+
/derive-policy.sh "$OPENCLAW_CONFIG" "$POLICY_FILE" || log "WARN: Policy derivation failed (non-fatal)"
|
|
76
|
+
else
|
|
77
|
+
log "No OpenClaw config mounted — using static policy only"
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# ─── Phase 1: Resolve all policy hosts (DNS is still open) ─────────────────
|
|
81
|
+
#
|
|
82
|
+
# We resolve hostnames BEFORE applying the DROP policy. Once DROP is active,
|
|
83
|
+
# only explicitly allowed IPs are reachable. By resolving first, we capture
|
|
84
|
+
# the current DNS state into concrete IP rules.
|
|
85
|
+
|
|
86
|
+
declare -a RESOLVED_IPS=()
|
|
87
|
+
declare -a RESOLVED_PORTS=()
|
|
88
|
+
RESOLVE_COUNT=0
|
|
89
|
+
|
|
90
|
+
resolve_policy_hosts() {
|
|
91
|
+
local policy_file="$1"
|
|
92
|
+
|
|
93
|
+
while IFS=: read -r host port; do
|
|
94
|
+
[ -z "$host" ] && continue
|
|
95
|
+
port="${port:-443}"
|
|
96
|
+
|
|
97
|
+
local ips
|
|
98
|
+
ips=$(getent ahosts "$host" 2>/dev/null | awk '{print $1}' | sort -u || true)
|
|
99
|
+
|
|
100
|
+
if [ -z "$ips" ]; then
|
|
101
|
+
log "WARN: Could not resolve $host — skipping"
|
|
102
|
+
continue
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
local ip_count
|
|
106
|
+
ip_count=$(echo "$ips" | wc -l | tr -d ' ')
|
|
107
|
+
log "Resolved: $host → $ip_count IPs"
|
|
108
|
+
|
|
109
|
+
while IFS= read -r ip; do
|
|
110
|
+
RESOLVED_IPS+=("$ip")
|
|
111
|
+
RESOLVED_PORTS+=("$port")
|
|
112
|
+
RESOLVE_COUNT=$((RESOLVE_COUNT + 1))
|
|
113
|
+
done <<< "$ips"
|
|
114
|
+
done < <(/policy-parser.sh "$policy_file")
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
log "Resolving policy hosts..."
|
|
118
|
+
resolve_policy_hosts "$POLICY_FILE"
|
|
119
|
+
|
|
120
|
+
# Also resolve arena policy if present
|
|
121
|
+
if [ -f "$ARENA_POLICY" ]; then
|
|
122
|
+
resolve_policy_hosts "$ARENA_POLICY"
|
|
123
|
+
elif [ -f "$ARENA_DEFAULT" ]; then
|
|
124
|
+
resolve_policy_hosts "$ARENA_DEFAULT"
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
# ─── Phase 2: Apply network enforcement ────────────────────────────────────
|
|
128
|
+
#
|
|
129
|
+
# Default policy: DROP all outbound.
|
|
130
|
+
# Exceptions: loopback, established connections, DNS, and resolved policy hosts.
|
|
131
|
+
#
|
|
132
|
+
# DNS is allowed broadly (not just 127.0.0.11) because the daemon and worker
|
|
133
|
+
# need to resolve hostnames at runtime. The iptables rules restrict which IPs
|
|
134
|
+
# are reachable, so DNS resolution alone doesn't grant access — only hosts
|
|
135
|
+
# whose IPs match a rule can actually be connected to.
|
|
136
|
+
|
|
137
|
+
iptables -P OUTPUT DROP 2>/dev/null || true
|
|
138
|
+
iptables -F OUTPUT 2>/dev/null || true
|
|
139
|
+
|
|
140
|
+
# Core rules: loopback, established, DNS
|
|
141
|
+
iptables -A OUTPUT -o lo -j ACCEPT
|
|
142
|
+
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
143
|
+
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
|
|
144
|
+
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
|
|
145
|
+
|
|
146
|
+
log "Default policy: DROP all outbound (except loopback, established, DNS)"
|
|
147
|
+
|
|
148
|
+
# Apply resolved IP rules
|
|
149
|
+
for i in "${!RESOLVED_IPS[@]}"; do
|
|
150
|
+
iptables -A OUTPUT -p tcp -d "${RESOLVED_IPS[$i]}" --dport "${RESOLVED_PORTS[$i]}" -j ACCEPT
|
|
151
|
+
done
|
|
152
|
+
|
|
153
|
+
log "$RESOLVE_COUNT iptables rules applied"
|
|
154
|
+
|
|
155
|
+
# ─── Phase 3: Log applied rules ───────────────────────────────────────────
|
|
156
|
+
|
|
157
|
+
iptables -L OUTPUT -n --line-numbers > "$RULES_LOG" 2>/dev/null || true
|
|
158
|
+
log "Rules logged to $RULES_LOG"
|
|
159
|
+
|
|
160
|
+
# ─── Phase 4: Start DNS refresh daemon ─────────────────────────────────────
|
|
161
|
+
#
|
|
162
|
+
# Hostnames may resolve to different IPs over time (CDN rotation, failover).
|
|
163
|
+
# The refresh daemon re-resolves all policy hosts periodically and atomically
|
|
164
|
+
# updates iptables rules.
|
|
165
|
+
|
|
166
|
+
/dns-refresh.sh "$POLICY_FILE" &
|
|
167
|
+
local_dns_pid=$!
|
|
168
|
+
log "DNS refresh daemon started (PID: $local_dns_pid, interval: ${ARC402_DNS_REFRESH_SECONDS:-300}s)"
|
|
169
|
+
|
|
170
|
+
# ─── Phase 5: Validate daemon entry point ──────────────────────────────────
|
|
171
|
+
|
|
172
|
+
if [ -z "$DAEMON_ENTRY" ] || [ ! -f "$DAEMON_ENTRY" ]; then
|
|
173
|
+
log "ERROR: Daemon entry point not found."
|
|
174
|
+
log "Tried: /workroom/runtime/dist/daemon/index.js (host --dev mount)"
|
|
175
|
+
log "Tried: ${GLOBAL_DAEMON} (global npm install inside image)"
|
|
176
|
+
log "Rebuild the workroom image: arc402 workroom init"
|
|
177
|
+
exit 1
|
|
178
|
+
fi
|
|
179
|
+
log "Daemon entry: $DAEMON_ENTRY"
|
|
180
|
+
|
|
181
|
+
# ─── Phase 5b: Worker identity + agent runtimes on PATH ────────────────────
|
|
182
|
+
|
|
183
|
+
WORKER_DIR="/workroom/.arc402/worker"
|
|
184
|
+
|
|
185
|
+
# Verify worker identity
|
|
186
|
+
if [ -f "$WORKER_DIR/SOUL.md" ]; then
|
|
187
|
+
log "Worker SOUL.md: found"
|
|
188
|
+
else
|
|
189
|
+
log "WARN: No worker SOUL.md — agent will use generic identity"
|
|
190
|
+
log " Run 'arc402 worker init' on the host to create one"
|
|
191
|
+
fi
|
|
192
|
+
|
|
193
|
+
if [ -f "$WORKER_DIR/config.json" ]; then
|
|
194
|
+
WORKER_NAME=$(jq -r '.name // "unnamed"' "$WORKER_DIR/config.json" 2>/dev/null || echo "unnamed")
|
|
195
|
+
WORKER_CAPS=$(jq -r '.capabilities // [] | join(", ")' "$WORKER_DIR/config.json" 2>/dev/null || echo "none")
|
|
196
|
+
log "Worker: $WORKER_NAME | Capabilities: $WORKER_CAPS"
|
|
197
|
+
else
|
|
198
|
+
log "WARN: No worker config.json"
|
|
199
|
+
fi
|
|
200
|
+
|
|
201
|
+
# Check knowledge/datasets/skills directories
|
|
202
|
+
for dir in knowledge datasets skills; do
|
|
203
|
+
if [ -d "$WORKER_DIR/$dir" ]; then
|
|
204
|
+
count=$(find "$WORKER_DIR/$dir" -type f 2>/dev/null | wc -l)
|
|
205
|
+
log "Worker $dir/: $count files"
|
|
206
|
+
fi
|
|
207
|
+
done
|
|
208
|
+
|
|
209
|
+
# Add agent runtimes to PATH
|
|
210
|
+
PATH_ADDITIONS=""
|
|
211
|
+
# OpenClaw (preferred runtime)
|
|
212
|
+
if [ -d "/workroom/openclaw" ]; then
|
|
213
|
+
PATH_ADDITIONS="/workroom/openclaw:$PATH_ADDITIONS"
|
|
214
|
+
log "OpenClaw runtime found at /workroom/openclaw"
|
|
215
|
+
fi
|
|
216
|
+
# Claude Code
|
|
217
|
+
if [ -d "/workroom/claude-code" ]; then
|
|
218
|
+
PATH_ADDITIONS="/workroom/claude-code:$PATH_ADDITIONS"
|
|
219
|
+
log "Claude Code found at /workroom/claude-code"
|
|
220
|
+
fi
|
|
221
|
+
if [ -n "$PATH_ADDITIONS" ]; then
|
|
222
|
+
export PATH="$PATH_ADDITIONS$PATH"
|
|
223
|
+
fi
|
|
224
|
+
|
|
225
|
+
# Verify Claude auth
|
|
226
|
+
if [ -f "/home/workroom/.claude.json" ]; then
|
|
227
|
+
log "AUTH OK: Claude auth file found"
|
|
228
|
+
else
|
|
229
|
+
log "WARN: No Claude auth — mount -v ~/.claude.json:/home/workroom/.claude.json:ro"
|
|
230
|
+
fi
|
|
231
|
+
|
|
232
|
+
# ─── Phase 6: Drop privileges and start daemon ────────────────────────────
|
|
233
|
+
|
|
234
|
+
log "Starting ARC-402 daemon as user 'workroom'..."
|
|
235
|
+
exec su -s /bin/bash workroom -c "export PATH='$PATH' && export ARC402_WORKER_DIR='$WORKER_DIR' && node $DAEMON_ENTRY --foreground"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
# ARC-402 Workroom Policy Parser
|
|
4
|
+
#
|
|
5
|
+
# Reads the workroom policy YAML and outputs HOST:PORT pairs, one per line.
|
|
6
|
+
# Used by the entrypoint and DNS refresh scripts to build iptables rules.
|
|
7
|
+
#
|
|
8
|
+
# Input: YAML file with network_policies.<name>.endpoints[].host/port
|
|
9
|
+
# Output: hostname:port (one per line, to stdout)
|
|
10
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
readonly POLICY_FILE="${1:-/workroom/.arc402/openshell-policy.yaml}"
|
|
14
|
+
|
|
15
|
+
if [ ! -f "$POLICY_FILE" ]; then
|
|
16
|
+
echo "ERROR: Policy file not found: $POLICY_FILE" >&2
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Extract host:port pairs from the YAML network_policies section.
|
|
21
|
+
# Each policy block contains endpoints with host and port fields.
|
|
22
|
+
awk '
|
|
23
|
+
/host:/ { gsub(/.*host: */, ""); host = $0 }
|
|
24
|
+
/port:/ { gsub(/.*port: */, ""); if (host != "") { print host ":" $0; host = "" } }
|
|
25
|
+
' "$POLICY_FILE"
|