@varsity-arena/agent 0.1.3 → 0.2.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 (64) 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 +35 -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/client-configs.d.ts +22 -1
  14. package/dist/setup/client-configs.js +137 -0
  15. package/dist/setup/client-configs.js.map +1 -1
  16. package/dist/setup/openclaw-config.d.ts +45 -0
  17. package/dist/setup/openclaw-config.js +154 -0
  18. package/dist/setup/openclaw-config.js.map +1 -0
  19. package/dist/tools/platform-composite.d.ts +47 -0
  20. package/dist/tools/platform-composite.js +27 -0
  21. package/dist/tools/platform-composite.js.map +1 -0
  22. package/dist/tools/platform-discovery.d.ts +107 -0
  23. package/dist/tools/platform-discovery.js +61 -0
  24. package/dist/tools/platform-discovery.js.map +1 -0
  25. package/dist/tools/platform-hub.d.ts +35 -0
  26. package/dist/tools/platform-hub.js +21 -0
  27. package/dist/tools/platform-hub.js.map +1 -0
  28. package/dist/tools/platform-leaderboard.d.ts +95 -0
  29. package/dist/tools/platform-leaderboard.js +49 -0
  30. package/dist/tools/platform-leaderboard.js.map +1 -0
  31. package/dist/tools/platform-live.d.ts +71 -0
  32. package/dist/tools/platform-live.js +27 -0
  33. package/dist/tools/platform-live.js.map +1 -0
  34. package/dist/tools/platform-market.d.ts +112 -0
  35. package/dist/tools/platform-market.js +58 -0
  36. package/dist/tools/platform-market.js.map +1 -0
  37. package/dist/tools/platform-notifications.d.ts +76 -0
  38. package/dist/tools/platform-notifications.js +37 -0
  39. package/dist/tools/platform-notifications.js.map +1 -0
  40. package/dist/tools/platform-predictions.d.ts +118 -0
  41. package/dist/tools/platform-predictions.js +44 -0
  42. package/dist/tools/platform-predictions.js.map +1 -0
  43. package/dist/tools/platform-profile.d.ts +181 -0
  44. package/dist/tools/platform-profile.js +92 -0
  45. package/dist/tools/platform-profile.js.map +1 -0
  46. package/dist/tools/platform-registration.d.ts +71 -0
  47. package/dist/tools/platform-registration.js +27 -0
  48. package/dist/tools/platform-registration.js.map +1 -0
  49. package/dist/tools/platform-seasons.d.ts +47 -0
  50. package/dist/tools/platform-seasons.js +23 -0
  51. package/dist/tools/platform-seasons.js.map +1 -0
  52. package/dist/tools/platform-social.d.ts +72 -0
  53. package/dist/tools/platform-social.js +36 -0
  54. package/dist/tools/platform-social.js.map +1 -0
  55. package/dist/tools/platform-system.d.ts +70 -0
  56. package/dist/tools/platform-system.js +34 -0
  57. package/dist/tools/platform-system.js.map +1 -0
  58. package/dist/util/home.d.ts +2 -0
  59. package/dist/util/home.js +5 -1
  60. package/dist/util/home.js.map +1 -1
  61. package/dist/util/paths.d.ts +10 -1
  62. package/dist/util/paths.js +12 -1
  63. package/dist/util/paths.js.map +1 -1
  64. package/package.json +8 -5
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Arena Agent Dashboard — lightweight HTTP server.
3
+ *
4
+ * Serves a single-page web dashboard showing:
5
+ * - Kline chart with buy/sell markers
6
+ * - Equity curve
7
+ * - AI reasoning log per round
8
+ *
9
+ * Data comes from the Python MCP bridge (live API) and local
10
+ * transition JSONL files (AI reasoning history).
11
+ */
12
+ import { createServer as createHttpServer, } from "node:http";
13
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
14
+ import { dirname, resolve } from "node:path";
15
+ import { fileURLToPath } from "node:url";
16
+ import { PythonBridge } from "../python-bridge.js";
17
+ const __dirname = dirname(fileURLToPath(import.meta.url));
18
+ export function startDashboard(opts) {
19
+ const { arenaRoot, port, competitionId, transitionsPath } = opts;
20
+ const bridge = new PythonBridge(arenaRoot);
21
+ const htmlPath = resolve(__dirname, "index.html");
22
+ if (!existsSync(htmlPath)) {
23
+ throw new Error(`Dashboard HTML not found at ${htmlPath}. Run \`npm run build\` first.`);
24
+ }
25
+ const html = readFileSync(htmlPath, "utf-8");
26
+ const server = createHttpServer(async (req, res) => {
27
+ res.setHeader("Access-Control-Allow-Origin", "*");
28
+ res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
29
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
30
+ if (req.method === "OPTIONS") {
31
+ res.writeHead(204);
32
+ res.end();
33
+ return;
34
+ }
35
+ const url = new URL(req.url ?? "/", `http://localhost:${port}`);
36
+ if (url.pathname === "/" || url.pathname === "/index.html") {
37
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
38
+ res.end(html);
39
+ return;
40
+ }
41
+ if (url.pathname.startsWith("/api/")) {
42
+ await handleApi(url, res, bridge, competitionId, transitionsPath);
43
+ return;
44
+ }
45
+ res.writeHead(404);
46
+ res.end("Not Found");
47
+ });
48
+ server.listen(port, "127.0.0.1", () => {
49
+ console.log(`Arena Dashboard: http://localhost:${port}`);
50
+ if (competitionId) {
51
+ console.log(`Competition: ${competitionId}`);
52
+ }
53
+ if (transitionsPath) {
54
+ console.log(`Transitions: ${transitionsPath}`);
55
+ }
56
+ });
57
+ }
58
+ function jsonResponse(res, data, status = 200) {
59
+ res.writeHead(status, { "Content-Type": "application/json" });
60
+ res.end(JSON.stringify(data));
61
+ }
62
+ async function handleApi(url, res, bridge, defaultCompetitionId, transitionsPath) {
63
+ const endpoint = url.pathname.replace("/api/", "");
64
+ const compId = Number(url.searchParams.get("competition_id")) || defaultCompetitionId;
65
+ try {
66
+ switch (endpoint) {
67
+ case "config":
68
+ jsonResponse(res, {
69
+ competition_id: defaultCompetitionId ?? null,
70
+ transitions_path: transitionsPath ?? null,
71
+ });
72
+ return;
73
+ case "klines": {
74
+ const result = await bridge.callTool("varsity.klines", {
75
+ symbol: url.searchParams.get("symbol") ?? "BTCUSDT",
76
+ interval: url.searchParams.get("interval") ?? "5m",
77
+ size: Number(url.searchParams.get("size") ?? "300"),
78
+ });
79
+ jsonResponse(res, result);
80
+ return;
81
+ }
82
+ case "account": {
83
+ if (!compId) {
84
+ jsonResponse(res, { error: "competition_id required" }, 400);
85
+ return;
86
+ }
87
+ const result = await bridge.callTool("varsity.live_account", {
88
+ competition_id: compId,
89
+ });
90
+ jsonResponse(res, result);
91
+ return;
92
+ }
93
+ case "trades": {
94
+ if (!compId) {
95
+ jsonResponse(res, { error: "competition_id required" }, 400);
96
+ return;
97
+ }
98
+ const result = await bridge.callTool("varsity.live_trades", {
99
+ competition_id: compId,
100
+ });
101
+ jsonResponse(res, result);
102
+ return;
103
+ }
104
+ case "position": {
105
+ if (!compId) {
106
+ jsonResponse(res, { error: "competition_id required" }, 400);
107
+ return;
108
+ }
109
+ const result = await bridge.callTool("varsity.live_position", {
110
+ competition_id: compId,
111
+ });
112
+ jsonResponse(res, result);
113
+ return;
114
+ }
115
+ case "competition": {
116
+ const id = url.searchParams.get("id") ?? String(compId ?? "");
117
+ if (!id) {
118
+ jsonResponse(res, { error: "id required" }, 400);
119
+ return;
120
+ }
121
+ const result = await bridge.callTool("varsity.competition_detail", {
122
+ identifier: id,
123
+ });
124
+ jsonResponse(res, result);
125
+ return;
126
+ }
127
+ case "transitions": {
128
+ const transitions = readTransitions(transitionsPath);
129
+ const limit = Number(url.searchParams.get("limit") ?? "100");
130
+ jsonResponse(res, transitions.slice(-limit));
131
+ return;
132
+ }
133
+ default:
134
+ jsonResponse(res, { error: `Unknown endpoint: ${endpoint}` }, 404);
135
+ }
136
+ }
137
+ catch (err) {
138
+ const msg = err instanceof Error ? err.message : String(err);
139
+ jsonResponse(res, { error: msg }, 500);
140
+ }
141
+ }
142
+ function readTransitions(path) {
143
+ if (!path)
144
+ return [];
145
+ // If path is a directory, find the most recent .jsonl file
146
+ let filePath = path;
147
+ if (existsSync(path)) {
148
+ try {
149
+ const stat = readFileSync(path); // will throw if directory
150
+ void stat;
151
+ }
152
+ catch {
153
+ // It's a directory — find latest .jsonl
154
+ const files = readdirSync(path)
155
+ .filter((f) => f.endsWith(".jsonl") && f.startsWith("transitions"))
156
+ .sort();
157
+ if (files.length > 0) {
158
+ filePath = resolve(path, files[files.length - 1]);
159
+ }
160
+ else {
161
+ return [];
162
+ }
163
+ }
164
+ }
165
+ if (!existsSync(filePath))
166
+ return [];
167
+ try {
168
+ const content = readFileSync(filePath, "utf-8").trim();
169
+ if (!content)
170
+ return [];
171
+ return content
172
+ .split("\n")
173
+ .filter(Boolean)
174
+ .map((line) => JSON.parse(line));
175
+ }
176
+ catch {
177
+ return [];
178
+ }
179
+ }
180
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/dashboard/serve.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Arena Trade MCP Server
2
+ * Arena MCP Server
3
3
  *
4
- * Thin TypeScript MCP server that delegates trading operations to the
4
+ * Thin TypeScript MCP server that delegates operations to the
5
5
  * Python arena_agent runtime via a stdio child process bridge.
6
6
  */
7
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
package/dist/index.js CHANGED
@@ -1,32 +1,63 @@
1
1
  /**
2
- * Arena Trade MCP Server
2
+ * Arena MCP Server
3
3
  *
4
- * Thin TypeScript MCP server that delegates trading operations to the
4
+ * Thin TypeScript MCP server that delegates operations to the
5
5
  * Python arena_agent runtime via a stdio child process bridge.
6
6
  */
7
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
9
  import { PythonBridge } from "./python-bridge.js";
10
10
  import { findArenaRoot } from "./util/paths.js";
11
+ // Runtime tools (original 4)
11
12
  import * as marketState from "./tools/market-state.js";
12
13
  import * as competitionInfo from "./tools/competition-info.js";
13
14
  import * as tradeAction from "./tools/trade-action.js";
14
15
  import * as lastTransition from "./tools/last-transition.js";
16
+ // Native tools
15
17
  import * as runtimeStart from "./tools/runtime-start.js";
16
18
  import * as runtimeStop from "./tools/runtime-stop.js";
19
+ // Platform API tools
20
+ import { all as marketDataTools } from "./tools/platform-market.js";
21
+ import { all as discoveryTools } from "./tools/platform-discovery.js";
22
+ import { all as registrationTools } from "./tools/platform-registration.js";
23
+ import { all as leaderboardTools } from "./tools/platform-leaderboard.js";
24
+ import { all as profileTools } from "./tools/platform-profile.js";
25
+ import { all as socialTools } from "./tools/platform-social.js";
26
+ import { all as notificationTools } from "./tools/platform-notifications.js";
27
+ import { all as systemTools } from "./tools/platform-system.js";
28
+ import { all as hubTools } from "./tools/platform-hub.js";
29
+ import { all as seasonTools } from "./tools/platform-seasons.js";
30
+ import { all as liveTools } from "./tools/platform-live.js";
31
+ import { all as predictionTools } from "./tools/platform-predictions.js";
32
+ import { all as compositeTools } from "./tools/platform-composite.js";
17
33
  export function createServer(arenaRoot) {
18
34
  const root = arenaRoot ?? findArenaRoot();
19
35
  const bridge = new PythonBridge(root);
20
36
  const server = new McpServer({
21
- name: "arena-trade",
22
- version: "0.1.0",
37
+ name: "arena-agent",
38
+ version: "0.2.0",
23
39
  });
24
40
  // --- Forwarded tools (Python bridge) ---
25
41
  const forwardedTools = [
42
+ // Runtime tools
26
43
  marketState,
27
44
  competitionInfo,
28
45
  tradeAction,
29
46
  lastTransition,
47
+ // Platform API tools
48
+ ...marketDataTools,
49
+ ...discoveryTools,
50
+ ...registrationTools,
51
+ ...leaderboardTools,
52
+ ...profileTools,
53
+ ...socialTools,
54
+ ...notificationTools,
55
+ ...systemTools,
56
+ ...hubTools,
57
+ ...seasonTools,
58
+ ...liveTools,
59
+ ...predictionTools,
60
+ ...compositeTools,
30
61
  ];
31
62
  for (const tool of forwardedTools) {
32
63
  server.tool(tool.name, tool.description, tool.inputSchema.shape, async (args) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { resolve } from "node:path";
2
5
  import { commandAvailable } from "./bootstrap-python.js";
3
6
  export function probeBackend(backend) {
4
7
  if (backend === "rule") {
@@ -171,13 +174,20 @@ function probeOpenClaw() {
171
174
  });
172
175
  const output = `${helpResult.stdout ?? ""}${helpResult.stderr ?? ""}`.trim();
173
176
  if (helpResult.status === 0) {
177
+ const agentDir = resolve(homedir(), ".openclaw", "agents", "arena-trader");
178
+ const agentRegistered = existsSync(agentDir);
179
+ const confidence = agentRegistered ? "medium" : "low";
180
+ const agentNote = agentRegistered
181
+ ? ""
182
+ : ". Agent 'arena-trader' not registered — run: arena-agent setup --client openclaw";
174
183
  return {
175
184
  backend: "openclaw",
176
185
  available: true,
177
186
  ready: true,
178
- confidence: "medium",
179
- summary: "ready (openclaw agent help succeeded)",
180
- details: output || "openclaw agent --help exited successfully.",
187
+ confidence,
188
+ summary: `ready (openclaw agent help succeeded${agentNote})`,
189
+ details: (output || "openclaw agent --help exited successfully.") +
190
+ (agentRegistered ? "" : `\nAgent directory missing: ${agentDir}`),
181
191
  };
182
192
  }
183
193
  return fallbackProbe("openclaw", ["--help"], "agent help failed");
@@ -1 +1 @@
1
- {"version":3,"file":"backend-probe.js","sourceRoot":"","sources":["../../src/setup/backend-probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-probe.js","sourceRoot":"","sources":["../../src/setup/backend-probe.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
+ import type { ManagedAgent } from "../util/home.js";
1
2
  export declare function setupClaudeCode(arenaRoot: string): string;
3
+ export declare function setupClaudeCodeUser(arenaRoot: string): string;
2
4
  export declare function setupClaudeDesktop(arenaRoot: string): string;
3
5
  export declare function setupCursor(arenaRoot: string): string;
4
- export declare const CLIENT_SETUP: Record<string, (root: string) => string>;
6
+ export declare function setupGemini(arenaRoot: string): string;
7
+ export declare function setupCodex(arenaRoot: string): string;
8
+ /**
9
+ * Pure function: merge arena MCP server into Codex config.toml content.
10
+ * Removes any existing [mcp_servers.arena] and [mcp_servers.arena.*]
11
+ * sections, then appends the correct block.
12
+ */
13
+ export declare function mergeCodexToml(content: string, arenaRoot: string): string;
14
+ export declare function setupOpenClaw(arenaRoot: string, options?: {
15
+ mode?: string;
16
+ }): string;
17
+ export declare const CLIENT_SETUP: Record<string, (root: string, options?: {
18
+ mode?: string;
19
+ }) => string>;
20
+ interface WiredEntry {
21
+ backend: string;
22
+ configPath: string;
23
+ }
24
+ export declare function autoWireMcpForAgent(home: string, agent: ManagedAgent, detectedBackends: ManagedAgent[]): WiredEntry[];
25
+ export {};
@@ -1,6 +1,8 @@
1
1
  import { writeFileSync, readFileSync, existsSync, mkdirSync } from "node:fs";
2
2
  import { resolve, dirname } from "node:path";
3
3
  import { homedir } from "node:os";
4
+ import { ensureOpenClawTradingAgent } from "./openclaw-agent.js";
5
+ import { mergeArenaMcpServer, readOpenClawGlobalConfig, writeOpenClawGlobalConfig, openclawGlobalConfigPath, } from "./openclaw-config.js";
4
6
  function mergeConfig(path, serverName, entry) {
5
7
  let existing = {};
6
8
  if (existsSync(path)) {
@@ -17,6 +19,7 @@ function mergeConfig(path, serverName, entry) {
17
19
  mkdirSync(dirname(path), { recursive: true });
18
20
  writeFileSync(path, JSON.stringify(existing, null, 2) + "\n");
19
21
  }
22
+ // ── Claude Code (project-local .mcp.json) ──────────────────────────
20
23
  export function setupClaudeCode(arenaRoot) {
21
24
  const configPath = resolve(arenaRoot, ".mcp.json");
22
25
  mergeConfig(configPath, "arena", {
@@ -27,6 +30,18 @@ export function setupClaudeCode(arenaRoot) {
27
30
  });
28
31
  return configPath;
29
32
  }
33
+ // ── Claude Code (user-scope ~/.claude.json) ─────────────────────────
34
+ export function setupClaudeCodeUser(arenaRoot) {
35
+ const configPath = resolve(homedir(), ".claude.json");
36
+ mergeConfig(configPath, "arena", {
37
+ type: "stdio",
38
+ command: "arena-mcp",
39
+ args: ["serve"],
40
+ env: { ARENA_ROOT: arenaRoot },
41
+ });
42
+ return configPath;
43
+ }
44
+ // ── Claude Desktop ──────────────────────────────────────────────────
30
45
  export function setupClaudeDesktop(arenaRoot) {
31
46
  const platform = process.platform;
32
47
  let configDir;
@@ -44,6 +59,7 @@ export function setupClaudeDesktop(arenaRoot) {
44
59
  });
45
60
  return configPath;
46
61
  }
62
+ // ── Cursor ──────────────────────────────────────────────────────────
47
63
  export function setupCursor(arenaRoot) {
48
64
  const configPath = resolve(arenaRoot, ".cursor", "mcp.json");
49
65
  mergeConfig(configPath, "arena", {
@@ -53,9 +69,130 @@ export function setupCursor(arenaRoot) {
53
69
  });
54
70
  return configPath;
55
71
  }
72
+ // ── Gemini CLI (~/.gemini/settings.json) ────────────────────────────
73
+ export function setupGemini(arenaRoot) {
74
+ const configPath = resolve(homedir(), ".gemini", "settings.json");
75
+ mergeConfig(configPath, "arena", {
76
+ command: "arena-mcp",
77
+ args: ["serve"],
78
+ env: { ARENA_ROOT: arenaRoot },
79
+ });
80
+ return configPath;
81
+ }
82
+ // ── Codex CLI (~/.codex/config.toml) ────────────────────────────────
83
+ export function setupCodex(arenaRoot) {
84
+ const configPath = resolve(homedir(), ".codex", "config.toml");
85
+ mkdirSync(dirname(configPath), { recursive: true });
86
+ let content = "";
87
+ if (existsSync(configPath)) {
88
+ try {
89
+ content = readFileSync(configPath, "utf-8");
90
+ }
91
+ catch {
92
+ // Overwrite if unreadable
93
+ }
94
+ }
95
+ writeFileSync(configPath, mergeCodexToml(content, arenaRoot), "utf-8");
96
+ return configPath;
97
+ }
98
+ /**
99
+ * Pure function: merge arena MCP server into Codex config.toml content.
100
+ * Removes any existing [mcp_servers.arena] and [mcp_servers.arena.*]
101
+ * sections, then appends the correct block.
102
+ */
103
+ export function mergeCodexToml(content, arenaRoot) {
104
+ const lines = content.split("\n");
105
+ const filtered = [];
106
+ let inArenaSection = false;
107
+ for (const line of lines) {
108
+ const trimmed = line.trim();
109
+ if (/^\[/.test(trimmed)) {
110
+ inArenaSection = /^\[mcp_servers\.arena(?:\..*)?\]$/.test(trimmed);
111
+ }
112
+ if (!inArenaSection) {
113
+ filtered.push(line);
114
+ }
115
+ }
116
+ // Trim trailing blank lines
117
+ while (filtered.length > 0 && filtered[filtered.length - 1].trim() === "") {
118
+ filtered.pop();
119
+ }
120
+ const base = filtered.length > 0 ? filtered.join("\n") + "\n" : "";
121
+ const escaped = arenaRoot.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
122
+ const section = [
123
+ "",
124
+ "[mcp_servers.arena]",
125
+ 'command = "arena-mcp"',
126
+ 'args = ["serve"]',
127
+ "",
128
+ "[mcp_servers.arena.env]",
129
+ `ARENA_ROOT = "${escaped}"`,
130
+ "",
131
+ ].join("\n");
132
+ return base + section;
133
+ }
134
+ // ── OpenClaw ────────────────────────────────────────────────────────
135
+ export function setupOpenClaw(arenaRoot, options) {
136
+ const mode = options?.mode ?? "cli";
137
+ ensureOpenClawTradingAgent(arenaRoot);
138
+ if (mode === "mcp") {
139
+ const existing = readOpenClawGlobalConfig();
140
+ const merged = mergeArenaMcpServer(existing, arenaRoot);
141
+ writeOpenClawGlobalConfig(merged);
142
+ return openclawGlobalConfigPath();
143
+ }
144
+ return resolve(arenaRoot, "openclaw", "arena-trader");
145
+ }
146
+ // ── Client setup registry ───────────────────────────────────────────
56
147
  export const CLIENT_SETUP = {
57
148
  "claude-code": setupClaudeCode,
58
149
  "claude-desktop": setupClaudeDesktop,
59
150
  cursor: setupCursor,
151
+ gemini: setupGemini,
152
+ codex: setupCodex,
153
+ openclaw: setupOpenClaw,
60
154
  };
155
+ export function autoWireMcpForAgent(home, agent, detectedBackends) {
156
+ const wired = [];
157
+ const wireOne = (label, fn) => {
158
+ try {
159
+ const configPath = fn();
160
+ wired.push({ backend: label, configPath });
161
+ }
162
+ catch {
163
+ // Don't fail init if MCP wiring fails
164
+ }
165
+ };
166
+ switch (agent) {
167
+ case "claude":
168
+ wireOne("Claude Code", () => setupClaudeCodeUser(home));
169
+ break;
170
+ case "gemini":
171
+ wireOne("Gemini CLI", () => setupGemini(home));
172
+ break;
173
+ case "codex":
174
+ wireOne("Codex CLI", () => setupCodex(home));
175
+ break;
176
+ case "openclaw":
177
+ // Workspace already handled by ensureOpenClawTradingAgent in init.
178
+ // Also wire MCP so arena.* tools are available inside OpenClaw.
179
+ wireOne("OpenClaw", () => {
180
+ const existing = readOpenClawGlobalConfig();
181
+ const merged = mergeArenaMcpServer(existing, home);
182
+ writeOpenClawGlobalConfig(merged);
183
+ return openclawGlobalConfigPath();
184
+ });
185
+ break;
186
+ case "auto":
187
+ // Wire all detected backends except OpenClaw MCP (requires explicit opt-in)
188
+ for (const b of detectedBackends) {
189
+ if (b === "openclaw")
190
+ continue;
191
+ wired.push(...autoWireMcpForAgent(home, b, []));
192
+ }
193
+ break;
194
+ // "rule" → no MCP wiring needed
195
+ }
196
+ return wired;
197
+ }
61
198
  //# sourceMappingURL=client-configs.js.map
@@ -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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"}
@@ -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;