@emseepea/testing 0.23.4 → 0.23.6
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 +9 -1
- package/package.json +1 -1
- package/semantic/provider.mjs +6 -14
package/README.md
CHANGED
|
@@ -109,15 +109,23 @@ EMSEEPEA_CODEX_MODEL=gpt-5.5 emseepea-test --provider codex-local eval
|
|
|
109
109
|
|
|
110
110
|
`codex-local` uses the existing Codex CLI sign-in without copying it.
|
|
111
111
|
`codex-ci` requires `OPENAI_API_KEY` from the CI secret store. Both providers
|
|
112
|
-
|
|
112
|
+
record the installed CLI version as provenance, run `codex exec --json`, resume the actual
|
|
113
113
|
Codex session for follow-ups, ignore user configuration, and pre-approve only
|
|
114
114
|
the discovered tools from the test server.
|
|
115
115
|
|
|
116
|
+
CLI eligibility is established by the invocation and event contracts rather
|
|
117
|
+
than a version cutoff. An unsupported invocation or invalid, incomplete or
|
|
118
|
+
forbidden event still fails qualification.
|
|
119
|
+
|
|
116
120
|
An isolated command policy denies shell launches and spawned shell environments
|
|
117
121
|
inherit no provider credentials. The runner also disables Codex account apps,
|
|
118
122
|
plugins, remote plugins, multi-agent execution, web search, shell tools, and
|
|
119
123
|
unified execution for each one-shot and resumed native invocation.
|
|
120
124
|
|
|
125
|
+
The isolated model process preserves configured proxy and certificate-trust
|
|
126
|
+
settings so authentication works on managed networks. These transport settings
|
|
127
|
+
do not enable shell tools or inherit unrelated service credentials.
|
|
128
|
+
|
|
121
129
|
The invocation configuration sets the default account-app state to disabled,
|
|
122
130
|
omits account-app instructions, and disables Codex app, plugin, and tool
|
|
123
131
|
suggestion features.
|
package/package.json
CHANGED
package/semantic/provider.mjs
CHANGED
|
@@ -6,7 +6,6 @@ import { scriptedElicitations } from "./elicitation.mjs";
|
|
|
6
6
|
|
|
7
7
|
const claudeModel = "claude-sonnet-4-6";
|
|
8
8
|
const mcpServerName = "emseepea_eval";
|
|
9
|
-
const minimumCodexCliVersion = "0.162.0";
|
|
10
9
|
const codexEmptyDiscoveryTools = new Map([
|
|
11
10
|
["list_mcp_resources", "resources"],
|
|
12
11
|
["list_mcp_resource_templates", "resourceTemplates"],
|
|
@@ -44,9 +43,6 @@ export async function modelVersion(provider = "claude-local") {
|
|
|
44
43
|
const result = await runProcess(command, ["--version"], { env: modelEnvironment({}) });
|
|
45
44
|
const version = result.stdout.trim().match(/(?:codex-cli\s+)?(\d+\.\d+\.\d+)\b/)?.[1];
|
|
46
45
|
if (result.code !== 0 || !version) throw new Error(`Could not verify ${codex ? "Codex" : "Claude"} CLI version`);
|
|
47
|
-
if (codex && compareVersions(version, minimumCodexCliVersion) < 0) {
|
|
48
|
-
throw new Error(`Codex CLI ${version} is unsupported; use ${minimumCodexCliVersion} or later`);
|
|
49
|
-
}
|
|
50
46
|
return version;
|
|
51
47
|
}
|
|
52
48
|
|
|
@@ -677,16 +673,6 @@ function classifyCodexFailure(stderr) {
|
|
|
677
673
|
return "unknown";
|
|
678
674
|
}
|
|
679
675
|
|
|
680
|
-
function compareVersions(left, right) {
|
|
681
|
-
const a = left.split(".").map(Number);
|
|
682
|
-
const b = right.split(".").map(Number);
|
|
683
|
-
for (let index = 0; index < Math.max(a.length, b.length); index += 1) {
|
|
684
|
-
const difference = (a[index] ?? 0) - (b[index] ?? 0);
|
|
685
|
-
if (difference !== 0) return difference;
|
|
686
|
-
}
|
|
687
|
-
return 0;
|
|
688
|
-
}
|
|
689
|
-
|
|
690
676
|
function codexEvidenceError(message, category) {
|
|
691
677
|
return Object.assign(new Error(message), {
|
|
692
678
|
providerFailureCategory: codexFailureCategories.has(category) ? category : "unknown",
|
|
@@ -726,7 +712,13 @@ function forbiddenItemError(items) {
|
|
|
726
712
|
}
|
|
727
713
|
|
|
728
714
|
function modelEnvironment(extra) {
|
|
715
|
+
const transport = Object.fromEntries([
|
|
716
|
+
"HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "NO_PROXY",
|
|
717
|
+
"http_proxy", "https_proxy", "all_proxy", "no_proxy",
|
|
718
|
+
"SSL_CERT_FILE", "SSL_CERT_DIR", "NODE_EXTRA_CA_CERTS",
|
|
719
|
+
].map((name) => [name, process.env[name]]));
|
|
729
720
|
return Object.fromEntries(Object.entries({
|
|
721
|
+
...transport,
|
|
730
722
|
CI: "true",
|
|
731
723
|
ENABLE_TOOL_SEARCH: "false",
|
|
732
724
|
LANG: process.env.LANG ?? "C.UTF-8",
|