@inetafrica/open-claudia 3.0.7 → 3.0.8
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/Dockerfile +5 -26
- package/core/providers/codex.js +4 -2
- package/package.json +1 -1
- package/test-provider-codex.js +2 -2
- package/test-provider-dream.js +1 -1
- package/test-provider-language.js +5 -6
package/Dockerfile
CHANGED
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
curl \
|
|
7
|
-
ffmpeg \
|
|
8
|
-
ca-certificates \
|
|
9
|
-
git \
|
|
10
|
-
jq \
|
|
11
|
-
python3 \
|
|
12
|
-
python3-pip \
|
|
13
|
-
build-essential \
|
|
14
|
-
sudo \
|
|
15
|
-
openssh-client \
|
|
16
|
-
rsync \
|
|
17
|
-
chromium \
|
|
18
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
1
|
+
# Release image. The slow system layer (apt + chromium, ~250 packages) lives
|
|
2
|
+
# in Dockerfile.base, published as the `:base` tag — rebuilt only when that
|
|
3
|
+
# file changes. This build is minutes: fresh agent CLIs + app source.
|
|
4
|
+
ARG BASE_IMAGE=git.coders.africa:5050/kazee/agent-space/open-claudia:base
|
|
5
|
+
FROM ${BASE_IMAGE}
|
|
19
6
|
|
|
20
7
|
# Install Claude Code CLI
|
|
21
8
|
RUN curl -fsSL https://claude.ai/install.sh | sh || \
|
|
@@ -31,14 +18,6 @@ RUN npm install -g @openai/codex
|
|
|
31
18
|
RUN npm install -g agent-browser
|
|
32
19
|
ENV AGENT_BROWSER_EXECUTABLE_PATH=/usr/bin/chromium
|
|
33
20
|
|
|
34
|
-
# Create non-root user (Claude Code refuses --dangerously-skip-permissions as root)
|
|
35
|
-
# node:20-slim already has uid/gid 1000 (node user). Create claudia with different IDs.
|
|
36
|
-
RUN groupadd -g 1001 claudia && useradd -u 1001 -g 1001 -m -d /data claudia
|
|
37
|
-
|
|
38
|
-
# Allow claudia to install packages at runtime without a password
|
|
39
|
-
RUN echo "claudia ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /usr/bin/apt" > /etc/sudoers.d/claudia-apt && \
|
|
40
|
-
chmod 0440 /etc/sudoers.d/claudia-apt
|
|
41
|
-
|
|
42
21
|
# Create app directory
|
|
43
22
|
WORKDIR /app
|
|
44
23
|
|
package/core/providers/codex.js
CHANGED
|
@@ -6,8 +6,10 @@ const { createJsonlDecoder } = require("./events");
|
|
|
6
6
|
const { createCodexParserState, normalizeCodexEvent } = require("./codex-events");
|
|
7
7
|
const { createCodexHookTransport } = require("./codex-hook");
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
const
|
|
9
|
+
// gpt-5.6-sol-pro is rejected on ChatGPT-plan auth (400 from the API); it needs API-key billing.
|
|
10
|
+
const CODEX_MODELS = Object.freeze(["gpt-5.6-sol", "gpt-5.6-sol-pro", "gpt-5.6-terra", "gpt-5.6-luna"]);
|
|
11
|
+
// max + ultra verified live against codex 0.144 (ultra = proactive multi-agent behavior).
|
|
12
|
+
const CODEX_EFFORT_VALUES = Object.freeze(["minimal", "low", "medium", "high", "xhigh", "max", "ultra"]);
|
|
11
13
|
const REQUIRED_EXEC_HELP_FLAGS = Object.freeze(["--config", "--json", "--sandbox", "--image", "--model", "--skip-git-repo-check"]);
|
|
12
14
|
const REQUIRED_RESUME_HELP_FLAGS = Object.freeze(["--config", "--json", "--image", "--model", "--skip-git-repo-check"]);
|
|
13
15
|
|
package/package.json
CHANGED
package/test-provider-codex.js
CHANGED
|
@@ -46,7 +46,7 @@ assert.strictEqual(provider.label, "OpenAI Codex");
|
|
|
46
46
|
assert.strictEqual(provider.isAvailable(), true);
|
|
47
47
|
assert.strictEqual(provider.executable(), "/fixture/codex");
|
|
48
48
|
assert.strictEqual(provider.defaultModel(), "gpt-5-codex");
|
|
49
|
-
assert.deepStrictEqual(provider.modelChoices(), ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"]);
|
|
49
|
+
assert.deepStrictEqual(provider.modelChoices(), ["gpt-5.6-sol", "gpt-5.6-sol-pro", "gpt-5.6-terra", "gpt-5.6-luna"]);
|
|
50
50
|
assert.ok(!provider.modelChoices().includes("o4-mini"));
|
|
51
51
|
assert.deepStrictEqual(provider.compatibilityStatus(), {
|
|
52
52
|
state: "compatible",
|
|
@@ -164,7 +164,7 @@ assert.throws(
|
|
|
164
164
|
(error) => error && error.code === "UNSUPPORTED_PROVIDER_CAPABILITY",
|
|
165
165
|
);
|
|
166
166
|
assert.throws(
|
|
167
|
-
() => provider.buildMainInvocation(simpleContext({ providerSettings: { effort: "
|
|
167
|
+
() => provider.buildMainInvocation(simpleContext({ providerSettings: { effort: "bogus", budget: null, worktree: false } })),
|
|
168
168
|
(error) => error && error.code === "UNSUPPORTED_PROVIDER_SETTING",
|
|
169
169
|
);
|
|
170
170
|
assert.throws(
|
package/test-provider-dream.js
CHANGED
|
@@ -243,7 +243,7 @@ async function providerProbe(kind) {
|
|
|
243
243
|
assert.ok(record.argv.includes("max"), "Claude retains maximum dream effort");
|
|
244
244
|
} else {
|
|
245
245
|
assert.ok(record.argv.includes("--output-schema"));
|
|
246
|
-
assert.ok(record.argv.some((arg) => /model_reasoning_effort=.*
|
|
246
|
+
assert.ok(record.argv.some((arg) => /model_reasoning_effort=.*max/.test(arg)), "max effort passes through natively since codex 0.144 supports it");
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
|
|
@@ -32,12 +32,11 @@ assert.doesNotMatch(setup, /Your Claude Code bot is connected|Description=Claude
|
|
|
32
32
|
|
|
33
33
|
const pkg = JSON.parse(read("package.json"));
|
|
34
34
|
assert.match(pkg.description, /provider-agnostic coding-agent harness/i);
|
|
35
|
-
// 3.0.
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
assert.strictEqual(pkg.version, "3.0.7", "release version must remain unchanged without explicit approval");
|
|
35
|
+
// 3.0.8 approved by Sumeet 2026-07-12 (fast-path release after the v3.0.7
|
|
36
|
+
// docker image was cancelled mid-build: same code as 3.0.7 — zombie-poll-loop
|
|
37
|
+
// fix + turn-observer restore — plus the pre-baked :base CI image and codex
|
|
38
|
+
// gpt-5.6-sol-pro / max / ultra support).
|
|
39
|
+
assert.strictEqual(pkg.version, "3.0.8", "release version must remain unchanged without explicit approval");
|
|
41
40
|
for (const keyword of ["claude", "codex", "coding-agent", "provider-agnostic"]) {
|
|
42
41
|
assert.ok(pkg.keywords.includes(keyword), `package keyword missing: ${keyword}`);
|
|
43
42
|
}
|