@varsity-arena/agent 0.1.3 → 0.3.0

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.
Files changed (74) hide show
  1. package/README.md +107 -16
  2. package/dist/cli.js +306 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/dashboard/index.html +519 -0
  5. package/dist/dashboard/serve.d.ts +6 -0
  6. package/dist/dashboard/serve.js +180 -0
  7. package/dist/dashboard/serve.js.map +1 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +70 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/setup/backend-probe.js +13 -3
  12. package/dist/setup/backend-probe.js.map +1 -1
  13. package/dist/setup/bootstrap-python.js +1 -1
  14. package/dist/setup/bootstrap-python.js.map +1 -1
  15. package/dist/setup/client-configs.d.ts +22 -1
  16. package/dist/setup/client-configs.js +137 -0
  17. package/dist/setup/client-configs.js.map +1 -1
  18. package/dist/setup/detect-python.js +1 -1
  19. package/dist/setup/detect-python.js.map +1 -1
  20. package/dist/setup/openclaw-config.d.ts +45 -0
  21. package/dist/setup/openclaw-config.js +154 -0
  22. package/dist/setup/openclaw-config.js.map +1 -0
  23. package/dist/tools/platform-composite.d.ts +47 -0
  24. package/dist/tools/platform-composite.js +27 -0
  25. package/dist/tools/platform-composite.js.map +1 -0
  26. package/dist/tools/platform-discovery.d.ts +107 -0
  27. package/dist/tools/platform-discovery.js +61 -0
  28. package/dist/tools/platform-discovery.js.map +1 -0
  29. package/dist/tools/platform-hub.d.ts +35 -0
  30. package/dist/tools/platform-hub.js +21 -0
  31. package/dist/tools/platform-hub.js.map +1 -0
  32. package/dist/tools/platform-leaderboard.d.ts +95 -0
  33. package/dist/tools/platform-leaderboard.js +49 -0
  34. package/dist/tools/platform-leaderboard.js.map +1 -0
  35. package/dist/tools/platform-live.d.ts +71 -0
  36. package/dist/tools/platform-live.js +27 -0
  37. package/dist/tools/platform-live.js.map +1 -0
  38. package/dist/tools/platform-market.d.ts +112 -0
  39. package/dist/tools/platform-market.js +58 -0
  40. package/dist/tools/platform-market.js.map +1 -0
  41. package/dist/tools/platform-notifications.d.ts +76 -0
  42. package/dist/tools/platform-notifications.js +37 -0
  43. package/dist/tools/platform-notifications.js.map +1 -0
  44. package/dist/tools/platform-predictions.d.ts +118 -0
  45. package/dist/tools/platform-predictions.js +44 -0
  46. package/dist/tools/platform-predictions.js.map +1 -0
  47. package/dist/tools/platform-profile.d.ts +181 -0
  48. package/dist/tools/platform-profile.js +92 -0
  49. package/dist/tools/platform-profile.js.map +1 -0
  50. package/dist/tools/platform-registration.d.ts +71 -0
  51. package/dist/tools/platform-registration.js +27 -0
  52. package/dist/tools/platform-registration.js.map +1 -0
  53. package/dist/tools/platform-seasons.d.ts +47 -0
  54. package/dist/tools/platform-seasons.js +23 -0
  55. package/dist/tools/platform-seasons.js.map +1 -0
  56. package/dist/tools/platform-social.d.ts +72 -0
  57. package/dist/tools/platform-social.js +36 -0
  58. package/dist/tools/platform-social.js.map +1 -0
  59. package/dist/tools/platform-system.d.ts +70 -0
  60. package/dist/tools/platform-system.js +34 -0
  61. package/dist/tools/platform-system.js.map +1 -0
  62. package/dist/tools/runtime-config.d.ts +34 -0
  63. package/dist/tools/runtime-config.js +102 -0
  64. package/dist/tools/runtime-config.js.map +1 -0
  65. package/dist/tools/runtime-start.d.ts +4 -0
  66. package/dist/tools/runtime-start.js +8 -2
  67. package/dist/tools/runtime-start.js.map +1 -1
  68. package/dist/util/home.d.ts +2 -0
  69. package/dist/util/home.js +5 -1
  70. package/dist/util/home.js.map +1 -1
  71. package/dist/util/paths.d.ts +10 -1
  72. package/dist/util/paths.js +12 -1
  73. package/dist/util/paths.js.map +1 -1
  74. package/package.json +9 -5
@@ -1 +1 @@
1
- {"version":3,"file":"client-configs.js","sourceRoot":"","sources":["../../src/setup/client-configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC,SAAS,WAAW,CAClB,IAAY,EACZ,UAAkB,EAClB,KAAqB;IAErB,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GACV,QAAQ,CAAC,UAAsC,IAAI,EAAE,CAAC;IACzD,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAC5B,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;IAE9B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,SAAiB,CAAC;IACtB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,SAAS,GAAG,OAAO,CACjB,OAAO,EAAE,EACT,SAAS,EACT,qBAAqB,EACrB,QAAQ,CACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;QAC/B,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7D,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;QAC/B,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAGrB;IACF,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,MAAM,EAAE,WAAW;CACpB,CAAC"}
1
+ {"version":3,"file":"client-configs.js","sourceRoot":"","sources":["../../src/setup/client-configs.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export function checkPythonEnvironment(arenaRoot) {
35
35
  return { ok: false, python, venv, deps, errors };
36
36
  // Check deps
37
37
  try {
38
- const result = spawnSync(python, ["-c", "import mcp; import arena_agent"], {
38
+ const result = spawnSync(python, ["-c", "import mcp; import arena_agent; import numpy; import talib"], {
39
39
  stdio: "pipe",
40
40
  cwd: arenaRoot,
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"detect-python.js","sourceRoot":"","sources":["../../src/setup/detect-python.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAUrD,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,aAAa;IACb,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAE3E,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,UAAU,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,aAAa,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,uCAAuC,SAAS,QAAQ,CAC7D,CAAC;QACF,oBAAoB;QACpB,IAAI,CAAC;YACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE9D,aAAa;IACb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,EACN,CAAC,IAAI,EAAE,gCAAgC,CAAC,EACxC;YACE,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;SACf,CACF,CAAC;QACF,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,wDAAwD;YAC1D,CAAC,CAAC,6BAA6B,MAAM,sBAAsB,SAAS,MAAM,CAC7E,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CACT,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"detect-python.js","sourceRoot":"","sources":["../../src/setup/detect-python.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAUrD,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,aAAa;IACb,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAE3E,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,UAAU,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,aAAa,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,uCAAuC,SAAS,QAAQ,CAC7D,CAAC;QACF,oBAAoB;QACpB,IAAI,CAAC;YACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE9D,aAAa;IACb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,EACN,CAAC,IAAI,EAAE,4DAA4D,CAAC,EACpE;YACE,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;SACf,CACF,CAAC;QACF,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,wDAAwD;YAC1D,CAAC,CAAC,6BAA6B,MAAM,sBAAsB,SAAS,MAAM,CAC7E,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CACT,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACjE,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { ArenaHomeState } from "../util/home.js";
2
+ export type OpenClawMode = "cli" | "mcp";
3
+ export interface AcpxMcpServerEntry {
4
+ command: string;
5
+ args: string[];
6
+ env?: Record<string, string>;
7
+ }
8
+ export interface OpenClawGlobalConfig {
9
+ acp?: {
10
+ backend?: string;
11
+ [key: string]: unknown;
12
+ };
13
+ plugins?: {
14
+ entries?: {
15
+ acpx?: {
16
+ config?: {
17
+ mcpServers?: Record<string, AcpxMcpServerEntry>;
18
+ [key: string]: unknown;
19
+ };
20
+ [key: string]: unknown;
21
+ };
22
+ [key: string]: unknown;
23
+ };
24
+ [key: string]: unknown;
25
+ };
26
+ [key: string]: unknown;
27
+ }
28
+ export declare function openclawGlobalConfigPath(): string;
29
+ export declare function readOpenClawGlobalConfig(): OpenClawGlobalConfig | null;
30
+ export declare function writeOpenClawGlobalConfig(config: OpenClawGlobalConfig): void;
31
+ /**
32
+ * Pure function: merges arena MCP server entry into an OpenClaw global config.
33
+ * Never includes VARSITY_API_KEY — only ARENA_ROOT.
34
+ */
35
+ export declare function mergeArenaMcpServer(existing: OpenClawGlobalConfig | null, arenaRoot: string): OpenClawGlobalConfig;
36
+ export declare function openclawWorkspaceValid(home: string, agentId?: string): {
37
+ valid: boolean;
38
+ issues: string[];
39
+ };
40
+ export declare function openclawAgentRegistered(agentId?: string): boolean;
41
+ export interface OpenClawDiagnostic {
42
+ display: string[];
43
+ errors: string[];
44
+ }
45
+ export declare function diagnoseOpenClaw(home: string, state: ArenaHomeState | null): OpenClawDiagnostic;
@@ -0,0 +1,154 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { resolve } from "node:path";
4
+ const OPENCLAW_AGENT_ID = "arena-trader";
5
+ export function openclawGlobalConfigPath() {
6
+ return resolve(homedir(), ".openclaw", "openclaw.json");
7
+ }
8
+ export function readOpenClawGlobalConfig() {
9
+ const configPath = openclawGlobalConfigPath();
10
+ if (!existsSync(configPath))
11
+ return null;
12
+ try {
13
+ return JSON.parse(readFileSync(configPath, "utf-8"));
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ export function writeOpenClawGlobalConfig(config) {
20
+ const configPath = openclawGlobalConfigPath();
21
+ mkdirSync(resolve(configPath, ".."), { recursive: true });
22
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
23
+ }
24
+ /**
25
+ * Pure function: merges arena MCP server entry into an OpenClaw global config.
26
+ * Never includes VARSITY_API_KEY — only ARENA_ROOT.
27
+ */
28
+ export function mergeArenaMcpServer(existing, arenaRoot) {
29
+ const config = existing ? structuredClone(existing) : {};
30
+ // Ensure acp.backend = "acpx"
31
+ if (!config.acp)
32
+ config.acp = {};
33
+ config.acp.backend = "acpx";
34
+ // Ensure plugins.entries.acpx is enabled with mcpServers path
35
+ if (!config.plugins)
36
+ config.plugins = {};
37
+ if (!config.plugins.entries)
38
+ config.plugins.entries = {};
39
+ if (!config.plugins.entries.acpx)
40
+ config.plugins.entries.acpx = {};
41
+ config.plugins.entries.acpx.enabled = true;
42
+ if (!config.plugins.entries.acpx.config)
43
+ config.plugins.entries.acpx.config = {};
44
+ if (!config.plugins.entries.acpx.config.mcpServers) {
45
+ config.plugins.entries.acpx.config.mcpServers = {};
46
+ }
47
+ config.plugins.entries.acpx.config.mcpServers.arena = {
48
+ command: "arena-mcp",
49
+ args: ["serve"],
50
+ env: { ARENA_ROOT: arenaRoot },
51
+ };
52
+ return config;
53
+ }
54
+ export function openclawWorkspaceValid(home, agentId = OPENCLAW_AGENT_ID) {
55
+ const workspace = resolve(home, "openclaw", agentId);
56
+ const issues = [];
57
+ if (!existsSync(workspace)) {
58
+ issues.push(`Workspace directory missing: ${workspace}`);
59
+ return { valid: false, issues };
60
+ }
61
+ if (!existsSync(resolve(workspace, "AGENTS.md"))) {
62
+ issues.push(`Missing AGENTS.md in workspace: ${workspace}`);
63
+ }
64
+ if (!existsSync(resolve(workspace, "IDENTITY.md"))) {
65
+ issues.push(`Missing IDENTITY.md in workspace: ${workspace}`);
66
+ }
67
+ return { valid: issues.length === 0, issues };
68
+ }
69
+ export function openclawAgentRegistered(agentId = OPENCLAW_AGENT_ID) {
70
+ return existsSync(resolve(homedir(), ".openclaw", "agents", agentId));
71
+ }
72
+ /**
73
+ * Check if VARSITY_API_KEY appears anywhere in the OpenClaw global config JSON.
74
+ */
75
+ function configContainsApiKey(config) {
76
+ return JSON.stringify(config).includes("VARSITY_API_KEY");
77
+ }
78
+ export function diagnoseOpenClaw(home, state) {
79
+ const display = [];
80
+ const errors = [];
81
+ // Workspace check
82
+ const ws = openclawWorkspaceValid(home);
83
+ if (ws.valid) {
84
+ display.push(`OpenClaw workspace: ok`);
85
+ }
86
+ else {
87
+ display.push(`OpenClaw workspace: incomplete`);
88
+ for (const issue of ws.issues) {
89
+ errors.push(`${issue}. Run: arena-agent setup --client openclaw`);
90
+ }
91
+ }
92
+ // Agent registration check
93
+ if (openclawAgentRegistered()) {
94
+ display.push(`OpenClaw agent: registered`);
95
+ }
96
+ else {
97
+ display.push(`OpenClaw agent: not registered`);
98
+ errors.push(`OpenClaw agent '${OPENCLAW_AGENT_ID}' not registered. Run: arena-agent setup --client openclaw`);
99
+ }
100
+ // MCP mode checks (only when openclawMode is "mcp")
101
+ const mode = state?.openclawMode;
102
+ if (mode === "mcp") {
103
+ const config = readOpenClawGlobalConfig();
104
+ if (!config) {
105
+ display.push(`ACP config: missing`);
106
+ errors.push(`OpenClaw global config not found. Run: arena-agent setup --client openclaw --mode mcp`);
107
+ }
108
+ else {
109
+ const acpBackend = config.acp?.backend;
110
+ if (acpBackend === "acpx") {
111
+ display.push(`ACP backend: acpx (ok)`);
112
+ }
113
+ else {
114
+ display.push(`ACP backend: ${acpBackend ?? "not set"}`);
115
+ errors.push(`ACP backend is not 'acpx'. Run: arena-agent setup --client openclaw --mode mcp`);
116
+ }
117
+ const acpxEnabled = config.plugins?.entries?.acpx
118
+ ?.enabled === true;
119
+ if (acpxEnabled) {
120
+ display.push(`ACPX plugin: enabled (ok)`);
121
+ }
122
+ else {
123
+ display.push(`ACPX plugin: disabled`);
124
+ errors.push(`ACPX plugin is not enabled. Run: arena-agent setup --client openclaw --mode mcp`);
125
+ }
126
+ const arenaServer = config.plugins?.entries?.acpx?.config?.mcpServers?.arena;
127
+ if (arenaServer) {
128
+ const cmdOk = arenaServer.command === "arena-mcp";
129
+ const argsOk = Array.isArray(arenaServer.args) && arenaServer.args.includes("serve");
130
+ if (cmdOk && argsOk) {
131
+ display.push(`Arena MCP server: configured`);
132
+ }
133
+ else {
134
+ display.push(`Arena MCP server: misconfigured`);
135
+ errors.push(`Arena MCP server entry is invalid. Run: arena-agent setup --client openclaw --mode mcp`);
136
+ }
137
+ }
138
+ else {
139
+ display.push(`Arena MCP server: not configured`);
140
+ errors.push(`Arena MCP server not found in OpenClaw config. Run: arena-agent setup --client openclaw --mode mcp`);
141
+ }
142
+ // Credential isolation check
143
+ if (configContainsApiKey(config)) {
144
+ display.push(`Credentials: LEAKED — API key found in OpenClaw config`);
145
+ errors.push(`WARNING: VARSITY_API_KEY found in OpenClaw global config. Remove it and keep the key only in ~/.arena-agent/.env.runtime.local`);
146
+ }
147
+ else {
148
+ display.push(`Credentials: isolated (ok)`);
149
+ }
150
+ }
151
+ }
152
+ return { display, errors };
153
+ }
154
+ //# sourceMappingURL=openclaw-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-config.js","sourceRoot":"","sources":["../../src/setup/openclaw-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ export declare const myStatus: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ competition_id: z.ZodOptional<z.ZodNumber>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ competition_id?: number | undefined;
9
+ }, {
10
+ competition_id?: number | undefined;
11
+ }>;
12
+ pythonTool: string;
13
+ };
14
+ export declare const bestCompetition: {
15
+ name: string;
16
+ description: string;
17
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
18
+ pythonTool: string;
19
+ };
20
+ export declare const autoJoin: {
21
+ name: string;
22
+ description: string;
23
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
24
+ pythonTool: string;
25
+ };
26
+ export declare const all: readonly [{
27
+ name: string;
28
+ description: string;
29
+ inputSchema: z.ZodObject<{
30
+ competition_id: z.ZodOptional<z.ZodNumber>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ competition_id?: number | undefined;
33
+ }, {
34
+ competition_id?: number | undefined;
35
+ }>;
36
+ pythonTool: string;
37
+ }, {
38
+ name: string;
39
+ description: string;
40
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
41
+ pythonTool: string;
42
+ }, {
43
+ name: string;
44
+ description: string;
45
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
46
+ pythonTool: string;
47
+ }];
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ export const myStatus = {
3
+ name: "arena.my_status",
4
+ description: "Full agent dashboard in one call: account, position, PnL, rank, competition, season, notifications. Pass competition_id or auto-detects from active registrations.",
5
+ inputSchema: z.object({
6
+ competition_id: z
7
+ .number()
8
+ .int()
9
+ .optional()
10
+ .describe("Competition ID. Omit to auto-detect from active registrations."),
11
+ }),
12
+ pythonTool: "varsity.my_status",
13
+ };
14
+ export const bestCompetition = {
15
+ name: "arena.best_competition",
16
+ description: "Find the best competition to join. Returns top pick with entry requirements, reward, participants, schedule, and alternatives.",
17
+ inputSchema: z.object({}),
18
+ pythonTool: "varsity.best_competition",
19
+ };
20
+ export const autoJoin = {
21
+ name: "arena.auto_join",
22
+ description: "Find the best competition and register for it automatically. Returns registration result or reason for failure.",
23
+ inputSchema: z.object({}),
24
+ pythonTool: "varsity.auto_join",
25
+ };
26
+ export const all = [myStatus, bestCompetition, autoJoin];
27
+ //# sourceMappingURL=platform-composite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-composite.js","sourceRoot":"","sources":["../../src/tools/platform-composite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,oKAAoK;IACtK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,gEAAgE,CAAC;KAC9E,CAAC;IACF,UAAU,EAAE,mBAAmB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,gIAAgI;IAClI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,0BAA0B;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,iHAAiH;IACnH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,mBAAmB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,107 @@
1
+ import { z } from "zod";
2
+ export declare const competitions: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ season_id: z.ZodOptional<z.ZodNumber>;
7
+ status: z.ZodOptional<z.ZodEnum<["draft", "announced", "registration_open", "registration_closed", "live", "settling", "completed", "ended_early", "cancelled"]>>;
8
+ competition_type: z.ZodOptional<z.ZodEnum<["regular", "grand_final", "special", "practice"]>>;
9
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ size: number;
13
+ page: number;
14
+ status?: "completed" | "cancelled" | "draft" | "announced" | "registration_open" | "registration_closed" | "live" | "settling" | "ended_early" | undefined;
15
+ season_id?: number | undefined;
16
+ competition_type?: "regular" | "grand_final" | "special" | "practice" | undefined;
17
+ }, {
18
+ status?: "completed" | "cancelled" | "draft" | "announced" | "registration_open" | "registration_closed" | "live" | "settling" | "ended_early" | undefined;
19
+ size?: number | undefined;
20
+ season_id?: number | undefined;
21
+ competition_type?: "regular" | "grand_final" | "special" | "practice" | undefined;
22
+ page?: number | undefined;
23
+ }>;
24
+ pythonTool: string;
25
+ };
26
+ export declare const competitionDetail: {
27
+ name: string;
28
+ description: string;
29
+ inputSchema: z.ZodObject<{
30
+ identifier: z.ZodString;
31
+ }, "strip", z.ZodTypeAny, {
32
+ identifier: string;
33
+ }, {
34
+ identifier: string;
35
+ }>;
36
+ pythonTool: string;
37
+ };
38
+ export declare const participants: {
39
+ name: string;
40
+ description: string;
41
+ inputSchema: z.ZodObject<{
42
+ identifier: z.ZodString;
43
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
44
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ size: number;
47
+ page: number;
48
+ identifier: string;
49
+ }, {
50
+ identifier: string;
51
+ size?: number | undefined;
52
+ page?: number | undefined;
53
+ }>;
54
+ pythonTool: string;
55
+ };
56
+ export declare const all: readonly [{
57
+ name: string;
58
+ description: string;
59
+ inputSchema: z.ZodObject<{
60
+ season_id: z.ZodOptional<z.ZodNumber>;
61
+ status: z.ZodOptional<z.ZodEnum<["draft", "announced", "registration_open", "registration_closed", "live", "settling", "completed", "ended_early", "cancelled"]>>;
62
+ competition_type: z.ZodOptional<z.ZodEnum<["regular", "grand_final", "special", "practice"]>>;
63
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
64
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
65
+ }, "strip", z.ZodTypeAny, {
66
+ size: number;
67
+ page: number;
68
+ status?: "completed" | "cancelled" | "draft" | "announced" | "registration_open" | "registration_closed" | "live" | "settling" | "ended_early" | undefined;
69
+ season_id?: number | undefined;
70
+ competition_type?: "regular" | "grand_final" | "special" | "practice" | undefined;
71
+ }, {
72
+ status?: "completed" | "cancelled" | "draft" | "announced" | "registration_open" | "registration_closed" | "live" | "settling" | "ended_early" | undefined;
73
+ size?: number | undefined;
74
+ season_id?: number | undefined;
75
+ competition_type?: "regular" | "grand_final" | "special" | "practice" | undefined;
76
+ page?: number | undefined;
77
+ }>;
78
+ pythonTool: string;
79
+ }, {
80
+ name: string;
81
+ description: string;
82
+ inputSchema: z.ZodObject<{
83
+ identifier: z.ZodString;
84
+ }, "strip", z.ZodTypeAny, {
85
+ identifier: string;
86
+ }, {
87
+ identifier: string;
88
+ }>;
89
+ pythonTool: string;
90
+ }, {
91
+ name: string;
92
+ description: string;
93
+ inputSchema: z.ZodObject<{
94
+ identifier: z.ZodString;
95
+ page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
96
+ size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ size: number;
99
+ page: number;
100
+ identifier: string;
101
+ }, {
102
+ identifier: string;
103
+ size?: number | undefined;
104
+ page?: number | undefined;
105
+ }>;
106
+ pythonTool: string;
107
+ }];
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ export const competitions = {
3
+ name: "arena.competitions",
4
+ description: "List competitions with optional filters (season, status, type). Returns paginated results.",
5
+ inputSchema: z.object({
6
+ season_id: z.number().int().optional().describe("Filter by season ID."),
7
+ status: z
8
+ .enum([
9
+ "draft",
10
+ "announced",
11
+ "registration_open",
12
+ "registration_closed",
13
+ "live",
14
+ "settling",
15
+ "completed",
16
+ "ended_early",
17
+ "cancelled",
18
+ ])
19
+ .optional()
20
+ .describe("Filter by status."),
21
+ competition_type: z
22
+ .enum(["regular", "grand_final", "special", "practice"])
23
+ .optional()
24
+ .describe("Filter by competition type."),
25
+ page: z.number().int().optional().default(1).describe("Page number."),
26
+ size: z
27
+ .number()
28
+ .int()
29
+ .optional()
30
+ .default(20)
31
+ .describe("Items per page (1-100)."),
32
+ }),
33
+ pythonTool: "varsity.competitions",
34
+ };
35
+ export const competitionDetail = {
36
+ name: "arena.competition_detail",
37
+ description: "Get full competition detail including rules, prize tables, and registration windows.",
38
+ inputSchema: z.object({
39
+ identifier: z
40
+ .string()
41
+ .describe("Competition ID (number) or slug (string)."),
42
+ }),
43
+ pythonTool: "varsity.competition_detail",
44
+ };
45
+ export const participants = {
46
+ name: "arena.participants",
47
+ description: "List accepted participants for a competition (public, paginated).",
48
+ inputSchema: z.object({
49
+ identifier: z.string().describe("Competition ID or slug."),
50
+ page: z.number().int().optional().default(1).describe("Page number."),
51
+ size: z
52
+ .number()
53
+ .int()
54
+ .optional()
55
+ .default(50)
56
+ .describe("Items per page (1-100)."),
57
+ }),
58
+ pythonTool: "varsity.participants",
59
+ };
60
+ export const all = [competitions, competitionDetail, participants];
61
+ //# sourceMappingURL=platform-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-discovery.js","sourceRoot":"","sources":["../../src/tools/platform-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,4FAA4F;IAC9F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC;YACJ,OAAO;YACP,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,MAAM;YACN,UAAU;YACV,WAAW;YACX,aAAa;YACb,WAAW;SACZ,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,mBAAmB,CAAC;QAChC,gBAAgB,EAAE,CAAC;aAChB,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;aACvD,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,yBAAyB,CAAC;KACvC,CAAC;IACF,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,sFAAsF;IACxF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CAAC,2CAA2C,CAAC;KACzD,CAAC;IACF,UAAU,EAAE,4BAA4B;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,mEAAmE;IACrE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,yBAAyB,CAAC;KACvC,CAAC;IACF,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,YAAY,CAAU,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ export declare const hub: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
6
+ pythonTool: string;
7
+ };
8
+ export declare const arenaProfile: {
9
+ name: string;
10
+ description: string;
11
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
12
+ pythonTool: string;
13
+ };
14
+ export declare const myRegistrations: {
15
+ name: string;
16
+ description: string;
17
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
18
+ pythonTool: string;
19
+ };
20
+ export declare const all: readonly [{
21
+ name: string;
22
+ description: string;
23
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
24
+ pythonTool: string;
25
+ }, {
26
+ name: string;
27
+ description: string;
28
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
29
+ pythonTool: string;
30
+ }, {
31
+ name: string;
32
+ description: string;
33
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
34
+ pythonTool: string;
35
+ }];
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ export const hub = {
3
+ name: "arena.hub",
4
+ description: "Get arena hub dashboard: active competition, registrations, upcoming events, season progress, recent results, quick stats.",
5
+ inputSchema: z.object({}),
6
+ pythonTool: "varsity.hub",
7
+ };
8
+ export const arenaProfile = {
9
+ name: "arena.arena_profile",
10
+ description: "Get my arena profile (tier, season points, arena capital, etc.).",
11
+ inputSchema: z.object({}),
12
+ pythonTool: "varsity.arena_profile",
13
+ };
14
+ export const myRegistrations = {
15
+ name: "arena.my_registrations",
16
+ description: "Get all my active registrations (pending/accepted/waitlisted).",
17
+ inputSchema: z.object({}),
18
+ pythonTool: "varsity.my_registrations",
19
+ };
20
+ export const all = [hub, arenaProfile, myRegistrations];
21
+ //# sourceMappingURL=platform-hub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-hub.js","sourceRoot":"","sources":["../../src/tools/platform-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,4HAA4H;IAC9H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,kEAAkE;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,uBAAuB;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,gEAAgE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,0BAA0B;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAU,CAAC"}