@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 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
- support Codex CLI 0.162.0 or later, run `codex exec --json`, resume the actual
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emseepea/testing",
3
- "version": "0.23.4",
3
+ "version": "0.23.6",
4
4
  "description": "MCP integration and semantic testing helpers",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -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",