pokertools-arena 0.18.0 → 0.18.1

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
@@ -17,7 +17,7 @@
17
17
  | **Package** | `npx pokertools-arena` |
18
18
  | **Runtime** | Node.js ≥ 24 for tooling; any modern browser for the app |
19
19
 
20
- > **Current release: 0.18.0.** This maintenance release centralizes environment parsing and benchmark constants, makes release artifacts reproducible, fixes archive and cache-version drift, and improves keyboard and screen-reader behavior.
20
+ > **Current release: 0.18.1.** The npm package now includes the shared `.env` parser required by its launcher, with a packed-artifact smoke test preventing future `npx pokertools-arena` module-resolution failures.
21
21
 
22
22
  ---
23
23
 
package/dist/index.html CHANGED
@@ -53,7 +53,7 @@
53
53
  }
54
54
  </script>
55
55
 
56
- <link rel="stylesheet" href="./styles.css?v=0.18.0" />
56
+ <link rel="stylesheet" href="./styles.css?v=0.18.1" />
57
57
  </head>
58
58
  <body>
59
59
  <div class="app-shell">
@@ -420,6 +420,6 @@
420
420
  </template>
421
421
 
422
422
  <script src="./arena-env.js"></script>
423
- <script type="module" src="./app.js?v=0.18.0"></script>
423
+ <script type="module" src="./app.js?v=0.18.1"></script>
424
424
  </body>
425
425
  </html>
@@ -1,4 +1,4 @@
1
- # pokertools-arena 0.18.0 — benchmark methodology & results
1
+ # pokertools-arena 0.18.1 — benchmark methodology & results
2
2
 
3
3
  Generated: 2026-09-19T18:19:58.352Z
4
4
  Methodology: paired fixed-state corpus; deterministic interleaving with recorded experiment seed.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.18.0",
3
+ "version": "0.18.1",
4
4
  "generatedAt": "2026-09-19T18:19:58.352Z",
5
5
  "experiments": [
6
6
  "paired"
@@ -1,5 +1,13 @@
1
1
  # Release notes
2
2
 
3
+ ## 0.18.1 — npm launcher packaging fix
4
+
5
+ - Added `tools/shared/` to the npm package allowlist so
6
+ `npx pokertools-arena` can resolve the launcher's shared `.env` parser.
7
+ - Added a packed-artifact integration test that builds the actual npm tarball,
8
+ verifies the imported module is present, extracts it, and runs the packaged
9
+ launcher with `--help`.
10
+
3
11
  ## 0.18.0 — maintainability, release integrity, and accessibility
4
12
 
5
13
  - Centralized `.env` parsing so the launcher and diagnostics interpret quoted
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pokertools-arena",
3
- "version": "0.18.0",
3
+ "version": "0.18.1",
4
4
  "description": "Browser-first AI poker benchmark powered by @pokertools/engine with generic OpenAI-compatible endpoints, optional OpenRouter/Jev Decisions routing, deterministic hierarchical decisions, paired fixed-state methodology, and reproducible reporting.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "files": [
10
10
  "bin/",
11
+ "tools/shared/",
11
12
  "dist/",
12
13
  "src/",
13
14
  "docs/",
@@ -25,7 +26,7 @@
25
26
  "check": "node --check src/app.js && node --check src/benchmark/scenarios.js && node --check build.mjs && node --check bin/pokertools-arena.mjs && node tests/release-check.mjs",
26
27
  "test": "npm run build && npm run check && npm run test:unit && npm run test:integration",
27
28
  "test:unit": "node tests/unit/decision-scenarios.mjs && node tests/unit/decision-diagnostics.mjs && node tests/unit/hierarchical-decision-tests.mjs && node tests/unit/tournament-safety-tests.mjs && node tests/unit/methodology-tests.mjs && node tests/unit/size-bucket-tests.mjs && node tests/unit/model-capabilities-tests.mjs && node tests/unit/streaming-reasoning-tests.mjs && node tests/unit/paired-architecture-tests.mjs && node tests/unit/archive-content.mjs && node tests/unit/report-consistency.mjs",
28
- "test:integration": "node tests/integration/pokertools-integration.mjs && node tests/integration/env-bootstrap.mjs && node tests/integration/launcher-port-retry.mjs",
29
+ "test:integration": "node tests/integration/pokertools-integration.mjs && node tests/integration/env-bootstrap.mjs && node tests/integration/launcher-port-retry.mjs && node tests/integration/package-smoke.mjs",
29
30
  "test:diagnostics": "node tests/real/real-decision-diagnostics.mjs",
30
31
  "test:diagnostics:dry": "node tests/real/real-decision-diagnostics.mjs --dry-run",
31
32
  "test:real": "node tests/real/real-decision-diagnostics.mjs && node tests/real/real-paired-corpus.mjs",
@@ -0,0 +1,24 @@
1
+ // Small, dependency-free parser shared by the launcher and diagnostic tools.
2
+ // It intentionally supports only the .env syntax the project documents.
3
+ export function parseDotEnv(text) {
4
+ const values = {};
5
+ for (const rawLine of String(text ?? '').split(/\r?\n/)) {
6
+ let line = rawLine.trim();
7
+ if (!line || line.startsWith('#')) continue;
8
+ if (line.startsWith('export ')) line = line.slice(7).trim();
9
+ const separator = line.indexOf('=');
10
+ if (separator <= 0) continue;
11
+ const key = line.slice(0, separator).trim();
12
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) continue;
13
+ let value = line.slice(separator + 1).trim();
14
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
15
+ const quote = value[0];
16
+ value = value.slice(1, -1);
17
+ if (quote === '"') value = value.replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\"/g, '"').replace(/\\\\/g, '\\');
18
+ } else {
19
+ value = value.replace(/\s+#.*$/, '').trim();
20
+ }
21
+ values[key] = value;
22
+ }
23
+ return values;
24
+ }