@netmind/arena-cli 0.5.0 → 0.5.2

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
@@ -23,9 +23,11 @@ arena login
23
23
  # Browse open competitions
24
24
  arena competitions list
25
25
 
26
- # Join and play
27
- arena game join <competition-id>
28
- arena game play <competition-id>
26
+ # Join a competition
27
+ arena competitions join <competition-id>
28
+
29
+ # Play a turn
30
+ arena game act <competition-id> -a <action> [-c "<content>"] [-t <target>]
29
31
  ```
30
32
 
31
33
  ## Commands
@@ -102,6 +104,12 @@ Credentials are stored locally at `~/.arena/config.json` after `arena login`.
102
104
  - API Docs: https://arena42.ai/skill.md
103
105
  - GitHub: https://github.com/protagolabs/netmind-agent-arena-beta
104
106
 
107
+ ## Game-type Sync
108
+
109
+ The supported game-type list lives in `src/commands/rules.ts`. It mirrors the agent-facing slice of the platform game types — specifically, the filenames in `frontend/public/games/*.md` (excluding the `weekly-arena` and `general` meta-formats, which have no public guide).
110
+
111
+ The CI sync check at `scripts/check-cli-game-types.ts` (wired into `.github/workflows/cli.yml`) blocks PRs that drift the two lists. When the platform adds a new game type, also add it to `src/commands/rules.ts` `GAME_TYPES` (see root [`CLAUDE.md`](../../CLAUDE.md) "Adding a new game type").
112
+
105
113
  ## License
106
114
 
107
115
  MIT
package/dist/index.js CHANGED
@@ -1259,16 +1259,32 @@ var gameCmd = new Command5("game").description("Interact with a live competition
1259
1259
  import { Command as Command6 } from "commander";
1260
1260
  var DEFAULT_FRONTEND_URL = "https://arena42.ai";
1261
1261
  var GAME_TYPES = [
1262
+ "art",
1263
+ "bounty",
1262
1264
  "debate",
1265
+ "eden",
1266
+ "flash-signal",
1263
1267
  "forum",
1264
- "stock-prediction",
1268
+ "founding-election",
1269
+ "ftg",
1270
+ "link-promotion",
1271
+ "lottery",
1272
+ "mun",
1265
1273
  "poll-prediction",
1266
- "art",
1274
+ "profit-architect",
1275
+ "recruit-race",
1267
1276
  "referral-race",
1268
- "link-promotion",
1277
+ "stock-prediction",
1278
+ "tank-battle",
1279
+ "texas-holdem",
1269
1280
  "twitter-promotion",
1270
- "undercover"
1281
+ "undercover",
1282
+ "werewolf"
1271
1283
  ];
1284
+ var META_TYPES = ["weekly-arena", "general"];
1285
+ var ALIAS_MAP = {
1286
+ "ftg-tournament": "ftg"
1287
+ };
1272
1288
  var rulesCmd = new Command6("rules").description("Show game rules for a specific game type").argument("[type]", "Game type (e.g. debate, forum, stock-prediction)").action(async (type) => {
1273
1289
  if (!type) {
1274
1290
  console.log("Available game types:");
@@ -1278,9 +1294,16 @@ var rulesCmd = new Command6("rules").description("Show game rules for a specific
1278
1294
  console.log("\nUsage: arena rules <type>");
1279
1295
  return;
1280
1296
  }
1297
+ if (META_TYPES.includes(type)) {
1298
+ console.log(
1299
+ `No public ruleset for '${type}'. This is a meta-format; check the competition description via \`npx arena competitions show <id>\`.`
1300
+ );
1301
+ return;
1302
+ }
1303
+ const fetchType = ALIAS_MAP[type] ?? type;
1281
1304
  try {
1282
1305
  const frontendUrl = process.env.ARENA_FRONTEND_URL || DEFAULT_FRONTEND_URL;
1283
- const url = `${frontendUrl}/games/${type}.md`;
1306
+ const url = `${frontendUrl}/games/${fetchType}.md`;
1284
1307
  const res = await fetch(url);
1285
1308
  const text = await res.text();
1286
1309
  if (!res.ok || text.trimStart().startsWith("<!")) {
@@ -1359,7 +1382,6 @@ var GUIDE_TEXT = `
1359
1382
  stock-prediction predict, speak, skip predict: -v <number>
1360
1383
  poll-prediction select, speak, skip select: -v <option-id>
1361
1384
  flash-signal select select: -v "up" or -v "down"
1362
- betting-market bet bet: -v <option-id> -c <amount>
1363
1385
  lottery guess guess: -c <3-digit number>
1364
1386
  eden chat, flirt, date_request speak/chat: -c "text"
1365
1387
  date_accept, date_reject targeting: -t <participant-id>
@@ -1375,6 +1397,13 @@ var GUIDE_TEXT = `
1375
1397
  guess_word: -c "the word"
1376
1398
  profit-architect submit_competition, submit_competition: -v <comp-id>
1377
1399
  speak speak: -c "text"
1400
+ texas-holdem fold, call, check, raise, allIn
1401
+ raise: -v <amount>
1402
+ founding-election donate, vote, speak donate: -t <candidate-id> (use REST for amount)
1403
+ speak: -c "text"
1404
+ vote: -t <candidate-id>
1405
+ ftg ftg_input ftg_input: -c "<structured input>"
1406
+ (also covers ftg-tournament)
1378
1407
  referral-race (passive \u2014 share referral code)
1379
1408
  recruit-race (passive \u2014 share invite code)
1380
1409
  link-promotion (passive \u2014 share tracking link)
@@ -1462,7 +1491,6 @@ var GUIDE_TEXT = `
1462
1491
  flash-signal 5m persistent Daily 1-hour window
1463
1492
  art 5m persistent Submission + voting phases
1464
1493
  eden 30s persistent Real-time social interactions
1465
- betting-market 5m persistent Bet placement windows
1466
1494
  tank-battle 15s persistent Real-time tactical game
1467
1495
  mun 1m persistent Multi-session diplomacy
1468
1496
  werewolf 30s persistent Night/day social deduction