@lythos/skill-arena 0.18.0 → 0.19.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 +14 -13
- package/package.json +8 -7
- package/src/cli.ts +1 -0
- package/src/player.ts +2 -0
- package/src/runner.ts +1 -0
package/README.md
CHANGED
|
@@ -16,20 +16,20 @@
|
|
|
16
16
|
```bash
|
|
17
17
|
bun add -d @lythos/skill-arena
|
|
18
18
|
# or use directly
|
|
19
|
-
bunx @lythos/skill-arena@0.
|
|
19
|
+
bunx @lythos/skill-arena@0.19.1 <command>
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Quick Start
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
# single — test one deck (most common)
|
|
26
|
-
bunx @lythos/skill-arena@0.
|
|
26
|
+
bunx @lythos/skill-arena@0.19.1 single \
|
|
27
27
|
--deck ./examples/decks/scout.toml \
|
|
28
28
|
--brief "Generate auth flow diagram" \
|
|
29
29
|
--out ./output
|
|
30
30
|
|
|
31
31
|
# single with explicit player
|
|
32
|
-
bunx @lythos/skill-arena@0.
|
|
32
|
+
bunx @lythos/skill-arena@0.19.1 single \
|
|
33
33
|
--deck ./examples/decks/scout.toml \
|
|
34
34
|
--brief "Generate auth flow diagram" \
|
|
35
35
|
--player kimi \
|
|
@@ -37,10 +37,10 @@ bunx @lythos/skill-arena@0.18.0 single \
|
|
|
37
37
|
|
|
38
38
|
# cross-deck vs — compare two decks (agent-orchestrated)
|
|
39
39
|
# Create arena.toml declaring sides with different decks, then:
|
|
40
|
-
bunx @lythos/skill-arena@0.
|
|
40
|
+
bunx @lythos/skill-arena@0.19.1 vs --config ./arena.toml
|
|
41
41
|
|
|
42
42
|
# cross-player vs — compare kimi vs codex (CLI only)
|
|
43
|
-
bunx @lythos/skill-arena@0.
|
|
43
|
+
bunx @lythos/skill-arena@0.19.1 vs --config ./arena.toml --player kimi
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
**What happens**: Agent creates isolated `/tmp` workdir per side, `deck link` skills, spawns parallel subagents, collects artifacts, judge scores outputs. Parent deck restored after.
|
|
@@ -50,14 +50,14 @@ bunx @lythos/skill-arena@0.18.0 vs --config ./arena.toml --player kimi
|
|
|
50
50
|
### `single` — one deck, one task
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
bunx @lythos/skill-arena@0.
|
|
53
|
+
bunx @lythos/skill-arena@0.19.1 single \
|
|
54
54
|
--deck ./deck.toml \
|
|
55
55
|
--brief "Produce a .docx report with radar chart" \
|
|
56
56
|
--timeout 600000 \
|
|
57
57
|
--out ./output
|
|
58
58
|
|
|
59
59
|
# with explicit player
|
|
60
|
-
bunx @lythos/skill-arena@0.
|
|
60
|
+
bunx @lythos/skill-arena@0.19.1 single \
|
|
61
61
|
--deck ./deck.toml \
|
|
62
62
|
--brief "Produce a .docx report with radar chart" \
|
|
63
63
|
--player kimi \
|
|
@@ -67,14 +67,14 @@ bunx @lythos/skill-arena@0.18.0 single \
|
|
|
67
67
|
### `vs` — multi-deck comparison
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
bunx @lythos/skill-arena@0.
|
|
71
|
-
bunx @lythos/skill-arena@0.
|
|
70
|
+
bunx @lythos/skill-arena@0.19.1 vs --config ./arena.toml
|
|
71
|
+
bunx @lythos/skill-arena@0.19.1 vs --config ./arena.toml --dry-run
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
### `prepare-workdir` — isolate + link skills (agent-orchestrated)
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
bunx @lythos/skill-arena@0.
|
|
77
|
+
bunx @lythos/skill-arena@0.19.1 prepare-workdir \
|
|
78
78
|
--deck ./skill-deck.toml \
|
|
79
79
|
--out /tmp/arena-side-a \
|
|
80
80
|
--brief "task description"
|
|
@@ -85,7 +85,7 @@ Creates `/tmp`-isolated workdir with deck copied, AGENTS.md written, and `deck l
|
|
|
85
85
|
### `archive` — collect agent outputs (agent-orchestrated)
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
bunx @lythos/skill-arena@0.
|
|
88
|
+
bunx @lythos/skill-arena@0.19.1 archive \
|
|
89
89
|
--from /tmp/arena-side-a \
|
|
90
90
|
--to ./playground/output \
|
|
91
91
|
--sides side-a
|
|
@@ -96,7 +96,7 @@ Copies agent artifacts from workdir(s) to output, skipping internal files (`.cla
|
|
|
96
96
|
### `viz` — render results (WIP — HTML report generation pending)
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
bunx @lythos/skill-arena@0.
|
|
99
|
+
bunx @lythos/skill-arena@0.19.1 viz runs/arena-<id>/
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
## Parameters
|
|
@@ -105,7 +105,7 @@ bunx @lythos/skill-arena@0.18.0 viz runs/arena-<id>/
|
|
|
105
105
|
|------|---------|-------------|
|
|
106
106
|
| `--brief "<text>"` | single | Inline task brief |
|
|
107
107
|
| `--deck <path\|url>` | single | Deck file (URL auto-fetched) |
|
|
108
|
-
| `--player <name>` | single, vs | Agent player: kimi\|codex\|deepseek\|claude |
|
|
108
|
+
| `--player <name>` | single, vs | Agent player: kimi\|codex\|deepseek\|deepseek-harness\|claude |
|
|
109
109
|
| `--timeout <ms>` | single | Subagent timeout (300000–600000 for complex tasks) |
|
|
110
110
|
| `--from <dir>` | archive | Source workdir |
|
|
111
111
|
| `--to <dir>` | archive | Output directory |
|
|
@@ -122,6 +122,7 @@ For cross-player mode, install at least one agent CLI:
|
|
|
122
122
|
uv tool install kimi-cli # kimi (recommended default)
|
|
123
123
|
npm i -g @openai/codex # codex
|
|
124
124
|
# deepseek: bundled with desktop app or pip install deepseek-cli
|
|
125
|
+
npm i -g @deepseek-ai/dsh # deepseek-harness (alias: dsh) — needs Node >= 22.19 + DEEPSEEK_API_KEY
|
|
125
126
|
# claude: set ANTHROPIC_API_KEY (SDK, no CLI binary needed)
|
|
126
127
|
```
|
|
127
128
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lythos/skill-arena",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "Skill Arena — benchmark skill effectiveness with controlled-variable comparison",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agent",
|
|
@@ -42,15 +42,16 @@
|
|
|
42
42
|
"bun": ">=1.0.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@lythos/cold-pool": "^0.
|
|
46
|
-
"@lythos/infra": "^0.
|
|
47
|
-
"@lythos/test-utils": "^0.
|
|
45
|
+
"@lythos/cold-pool": "^0.19.1",
|
|
46
|
+
"@lythos/infra": "^0.19.1",
|
|
47
|
+
"@lythos/test-utils": "^0.19.1",
|
|
48
48
|
"zod": "^3.24.0",
|
|
49
49
|
"zod-to-json-schema": "^3.25.2"
|
|
50
50
|
},
|
|
51
51
|
"optionalDependencies": {
|
|
52
|
-
"@lythos/agent-adapter-claude-sdk": "^0.
|
|
53
|
-
"@lythos/agent-adapter-deepseek-serve": "^0.
|
|
54
|
-
"@lythos/agent-adapter-
|
|
52
|
+
"@lythos/agent-adapter-claude-sdk": "^0.19.1",
|
|
53
|
+
"@lythos/agent-adapter-deepseek-serve": "^0.19.1",
|
|
54
|
+
"@lythos/agent-adapter-deepseek-harness": "^0.19.1",
|
|
55
|
+
"@lythos/agent-adapter-codex": "^0.19.1"
|
|
55
56
|
}
|
|
56
57
|
}
|
package/src/cli.ts
CHANGED
|
@@ -317,6 +317,7 @@ async function singleRun(args: string[], io: ArenaCliIO) {
|
|
|
317
317
|
const { useAgent } = await import('@lythos/test-utils/agents')
|
|
318
318
|
try { await import('@lythos/agent-adapter-claude-sdk') } catch { /* package not installed */ }
|
|
319
319
|
try { await import('@lythos/agent-adapter-deepseek-serve') } catch { /* package not installed */ }
|
|
320
|
+
try { await import('@lythos/agent-adapter-deepseek-harness') } catch { /* package not installed */ }
|
|
320
321
|
try { await import('@lythos/agent-adapter-codex') } catch { /* package not installed */ }
|
|
321
322
|
const { resolvePlayer, playerAliasNote } = await import('./player')
|
|
322
323
|
|
package/src/player.ts
CHANGED
|
@@ -18,6 +18,8 @@ const BUILTIN_PLAYERS: Record<string, string> = {
|
|
|
18
18
|
'kimi': 'kimi',
|
|
19
19
|
'kimi-code': 'kimi', // renamed upstream — users guess the new name (ADR-20260828004129233)
|
|
20
20
|
'deepseek': 'deepseek',
|
|
21
|
+
'deepseek-harness': 'deepseek-harness',
|
|
22
|
+
'dsh': 'deepseek-harness', // upstream binary name (ADR-20260828004129233)
|
|
21
23
|
'codex': 'codex',
|
|
22
24
|
'cursor': 'cursor',
|
|
23
25
|
'gemini': 'gemini',
|
package/src/runner.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { ArenaManifest, Player, type JudgeInput, type Evidence, type JudgeVerdic
|
|
|
9
9
|
import type { ArenaManifest as ArenaManifestType } from '@lythos/test-utils/schema'
|
|
10
10
|
try { await import('@lythos/agent-adapter-claude-sdk') } catch { /* package not installed */ }
|
|
11
11
|
try { await import('@lythos/agent-adapter-deepseek-serve') } catch { /* package not installed */ }
|
|
12
|
+
try { await import('@lythos/agent-adapter-deepseek-harness') } catch { /* package not installed */ }
|
|
12
13
|
try { await import('@lythos/agent-adapter-codex') } catch { /* package not installed */ }
|
|
13
14
|
import { runComparativeJudge } from './comparative-judge'
|
|
14
15
|
import { parseArenaToml, buildExecutionPlan, type ArenaToml, type ExecutionPlan } from './arena-toml'
|